Как убрать перемену цвета и убрать пропадание 3д модели

Версия Minecraft
1.7.10
1,038
57
229
Ну... пора и мне помочь, я помню что исправлял это всё, ну и возможно это кому то ещё пригодится.
Работаю на созданием 3д мода, который добавит возможно загружать 3д модели сделанные в Blender, ну и позже появится поддержка анимации.
А после всех махинаций, я выложу это в открытый доступ)



рисую через tesellator

a97401a051.jpg


отсюда попадаем сюда
Java:
ModelInfo modelInfo = model.sub_models.get(i);
GL11.glBindTexture(GL11.GL_TEXTURE_2D, modelInfo.textureIndex);

tessellator.startDrawing(GL_TRIANGLES);
tessellator.setBrightness(255);
tessellator.setColorOpaque_F(1.0F, 1.0F, 1.0F);

for(int f=0;modelInfo.vertices.size(); f++)
{
tessellator.addVertexWithUV(modelInfo.vertices.get(f).x, modelInfo.vertices.get(f).y, modelInfo.vertices.get(f).z, modelInfo.uvs.get(f).x, 1-modelInfo.uvs.get(f).y);
...
}

tessellator.draw();


Код:
[{
    "object":
    {
        "name": "Cube2",
        "textures":
        [
            {
                "name": "lamp.png",
                "vertex": [[0.686990,0.686990,-0.937642], [0.313010,0.686990,-0.937642], [0.313010,0.313010,-0.937642], [0.313010,0.313010,-0.937642], [0.686990,0.313010,-0.937642], [0.686990,0.686990,-0.937642], [0.686990,0.313010,-0.999866], [0.686990,0.313010,-0.937642], [0.313010,0.313010,-0.937642], [0.313010,0.313010,-0.937642], [0.313010,0.313010,-0.999866], [0.686990,0.313010,-0.999866], [0.313010,0.313010,-0.999866], [0.313010,0.313010,-0.937642], [0.313010,0.686990,-0.937642], [0.313010,0.686990,-0.937642], [0.313010,0.686990,-0.999866], [0.313010,0.313010,-0.999866], [0.686990,0.686990,-0.999866], [0.686990,0.686990,-0.937642], [0.686990,0.313010,-0.937642], [0.686990,0.313010,-0.937642], [0.686990,0.313010,-0.999866], [0.686990,0.686990,-0.999866], [0.313010,0.686990,-0.999866], [0.313010,0.686990,-0.937642], [0.686990,0.686990,-0.937642], [0.686990,0.686990,-0.937642], [0.686990,0.686990,-0.999866], [0.313010,0.686990,-0.999866], [0.610549,0.610549,-0.640709], [0.389450,0.610549,-0.640709], [0.389450,0.389450,-0.640709], [0.389450,0.389450,-0.640709], [0.610549,0.389450,-0.640709], [0.610549,0.610549,-0.640709], [0.610549,0.389450,-0.937409], [0.610549,0.389450,-0.640709], [0.389450,0.389450,-0.640709], [0.389450,0.389450,-0.640709], [0.389450,0.389450,-0.937409], [0.610549,0.389450,-0.937409], [0.389450,0.389450,-0.937409], [0.389450,0.389450,-0.640709], [0.389450,0.610549,-0.640709], [0.389450,0.610549,-0.640709], [0.389450,0.610549,-0.937409], [0.389450,0.389450,-0.937409], [0.610549,0.610549,-0.937409], [0.610549,0.610549,-0.640709], [0.610549,0.389450,-0.640709], [0.610549,0.389450,-0.640709], [0.610549,0.389450,-0.937409], [0.610549,0.610549,-0.937409], [0.389450,0.610549,-0.937409], [0.389450,0.610549,-0.640709], [0.610549,0.610549,-0.640709], [0.610549,0.610549,-0.640709], [0.610549,0.610549,-0.937409], [0.389450,0.610549,-0.937409]],
                "face": [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],
                "uv": [[0.500894,0.998695], [0.125035,0.998695], [0.125035,0.625495], [0.125035,0.625495], [0.500894,0.625495], [0.500894,0.998695], [0.501250,0.562030], [0.501250,0.622502], [0.126524,0.622502], [0.126524,0.622502], [0.126524,0.562030], [0.501250,0.562030], [0.062538,0.999076], [0.120509,0.999076], [0.120509,0.625425], [0.120509,0.625425], [0.062538,0.625425], [0.062538,0.999076], [0,0.625425], [0.058010,0.625425], [0.058010,0.999076], [0.058010,0.999076], [0,0.999076], [0,0.625425], [0.126524,0.499529], [0.126524,0.560002], [0.501250,0.560002], [0.501250,0.560002], [0.501250,0.499529], [0.126524,0.499529], [1.000679,0.499145], [0.750249,0.499145], [0.750249,0.250045], [0.750249,0.250045], [1.000679,0.250045], [1.000679,0.499145], [0.750047,0.186764], [0.750047,0.500033], [0.501070,0.500033], [0.501070,0.500033], [0.501070,0.186764], [0.750047,0.186764], [0.498896,0.184431], [0.498896,0.499720], [0.749307,0.499720], [0.749307,0.499720], [0.749307,0.184431], [0.498896,0.184431], [0.749307,0.184431], [0.749307,0.499720], [0.498896,0.499720], [0.498896,0.499720], [0.498896,0.184431], [0.749307,0.184431], [0.501070,0.186764], [0.501070,0.500033], [0.750047,0.500033], [0.750047,0.500033], [0.750047,0.186764], [0.501070,0.186764]],
                "normal": [[0.0,-0.0,1.0], [0.0,-0.0,1.0], [0.0,-1.0,0.0], [0.0,-1.0,0.0], [-1.0,-0.0,0.0], [-1.0,-0.0,0.0], [1.0,-0.0,0.0], [1.0,-0.0,0.0], [0.0,1.0,0.0], [0.0,1.0,0.0], [0.0,-0.0,1.0], [0.0,-0.0,1.0], [0.0,-1.0,0.0], [0.0,-1.0,0.0], [-1.0,-0.0,0.0], [-1.0,-0.0,0.0], [1.0,-0.0,0.0], [1.0,-0.0,0.0], [0.0,1.0,0.0], [0.0,1.0,0.0]]
            },
            {
                "name": "lamp.png",
                "vertex": [[0.624594,0.624594,-0.624606], [0.375405,0.624594,-0.624606], [0.375405,0.375405,-0.624606], [0.375405,0.375405,-0.624606], [0.624594,0.375405,-0.624606], [0.624594,0.624594,-0.624606], [0.624594,0.375405,-0.797069], [0.624594,0.375405,-0.624606], [0.375405,0.375405,-0.624606], [0.375405,0.375405,-0.624606], [0.375405,0.375405,-0.797069], [0.624594,0.375405,-0.797069], [0.375405,0.375405,-0.797069], [0.375405,0.375405,-0.624606], [0.375405,0.624594,-0.624606], [0.375405,0.624594,-0.624606], [0.375405,0.624594,-0.797069], [0.375405,0.375405,-0.797069], [0.624594,0.624594,-0.797069], [0.624594,0.624594,-0.624606], [0.624594,0.375405,-0.624606], [0.624594,0.375405,-0.624606], [0.624594,0.375405,-0.797069], [0.624594,0.624594,-0.797069], [0.375405,0.624594,-0.797069], [0.375405,0.624594,-0.624606], [0.624594,0.624594,-0.624606], [0.624594,0.624594,-0.624606], [0.624594,0.624594,-0.797069], [0.375405,0.624594,-0.797069], [0.375405,0.624594,-0.938175], [0.375405,0.624594,-0.797069], [0.624594,0.624594,-0.797069], [0.624594,0.624594,-0.797069], [0.624594,0.624594,-0.938175], [0.375405,0.624594,-0.938175], [0.624594,0.624594,-0.938175], [0.624594,0.624594,-0.797069], [0.624594,0.375405,-0.797069], [0.624594,0.375405,-0.797069], [0.624594,0.375405,-0.938175], [0.624594,0.624594,-0.938175], [0.375405,0.375405,-0.938175], [0.375405,0.375405,-0.797069], [0.375405,0.624594,-0.797069], [0.375405,0.624594,-0.797069], [0.375405,0.624594,-0.938175], [0.375405,0.375405,-0.938175], [0.624594,0.375405,-0.938175], [0.624594,0.375405,-0.797069], [0.375405,0.375405,-0.797069], [0.375405,0.375405,-0.797069], [0.375405,0.375405,-0.938175], [0.624594,0.375405,-0.938175]],
                "face": [20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],
                "uv": [[1.000679,0.999144], [0.750249,0.999144], [0.750249,0.750045], [0.750249,0.750045], [1.000679,0.750045], [1.000679,0.999144], [0.750047,0.843398], [0.750047,1.000033], [0.501070,1.000033], [0.501070,1.000033], [0.501070,0.843398], [0.750047,0.843398], [0.749307,0.842076], [0.749307,0.999720], [0.498896,0.999720], [0.498896,0.999720], [0.498896,0.842076], [0.749307,0.842076], [0.498896,0.842076], [0.498896,0.999720], [0.749307,0.999720], [0.749307,0.999720], [0.749307,0.842076], [0.498896,0.842076], [0.501070,0.843398], [0.501070,1.000033], [0.750047,1.000033], [0.750047,1.000033], [0.750047,0.843398], [0.501070,0.843398], [0.501070,0.686764], [0.501070,0.843398], [0.750047,0.843398], [0.750047,0.843398], [0.750047,0.686764], [0.501070,0.686764], [0.498896,0.684431], [0.498896,0.842076], [0.749307,0.842076], [0.749307,0.842076], [0.749307,0.684431], [0.498896,0.684431], [0.749307,0.684431], [0.749307,0.842076], [0.498896,0.842076], [0.498896,0.842076], [0.498896,0.684431], [0.749307,0.684431], [0.750047,0.686764], [0.750047,0.843398], [0.501070,0.843398], [0.501070,0.843398], [0.501070,0.686764], [0.750047,0.686764]],
                "normal": [[0.0,-0.0,0.999999], [0.0,-0.0,0.999999], [0.0,-1.0,0.0], [0.0,-1.0,0.0], [-1.0,-0.0,0.0], [-1.0,-0.0,0.0], [1.0,-0.0,0.0], [1.0,-0.0,0.0], [0.0,1.0,0.0], [0.0,1.0,0.0], [0.0,1.0,0.0], [0.0,1.0,0.0], [1.0,-0.0,0.0], [1.0,-0.0,0.0], [-1.0,-0.0,0.0], [-1.0,-0.0,0.0], [0.0,-1.0,0.0], [0.0,-1.0,0.0]]
            }
        ]
    }
}]
 
Последнее редактирование:
1,038
57
229
Как всё просто, спс.

чтобы блок нормально освещался (а не постоянно светлым будто светится)
Java:
float brightness = tileEntity.blockType.getMixedBrightnessForBlock(tileEntity.getWorldObj(), tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord);
tessellator.startDrawing(GL_TRIANGLES);
tessellator.setColorOpaque_F(brightness, brightness, brightness);
...
tessellator.draw();

чтобы прям слепил глаза ночами (но при этом не был лампочкой)
Java:
int skyLight = tileEntity.getWorldObj().getLightBrightnessForSkyBlocks(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord, 0);
int modulousModifier = skyLight % 65536;
int divModifier = skyLight / 65536;
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) divModifier, modulousModifier);

А чтобы блок не пропадал, просто делаем его границы по ширине блока (или больше)
setBlockBounds(0F, 0, 0F, 1F, 1F, 1F);
 

timaxa007

Модератор
5,831
409
672
Пожалуйста.
Я думаю, что нет (для блока). Лучше использовать для рендера TileEntity большей области, нужно вписать в свой TileEntity:
Java:
@SideOnly(Side.CLIENT)
@Override
public AxisAlignedBB getRenderBoundingBox() {
    return AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1D, yCoord + 1D, zCoord + 1D);
}
С нужными значениями.
 
1,038
57
229
В следующем месяце готовьтесь, вы сможете подключить этот мод и работать с 3д моделями, анимировать как душе угодно. Хоть 3д блоки, хоть своих 3д персонажей. И создавать самые крутецкие моды во всём мире, даже пендосов уделаете, я туда пока не буду выкладвать))
Ох заживём.. :eek: (скорее учитесь работать в blender :p)

Анимация будет через код, покажу и расскажу.
Потом займусь нормальными проводами, трубами, энергией. Которые не будут заваливать ваши сервера, а работать чистенько и аккуратненько, а самое главное, не будут жрать ресурсы каждый тик.
Моды будут для 1.7.10 и 1.12.2, так что думаю охвачу всех.
 
Последнее редактирование:
Сверху