Просто путь рендера кастомной модели

Версия Minecraft
1.6.4
355
2
17
Может кто подсказать самый просто путь регистра рендера для кастомной модели?
Простой блок, как камень, только в формате OBJ. Или прям вот обязательно для каждого "уникального" рендера создавать пустые TileEntity?
 
Только вот такая тема, что если применять Scale в этом рендере, то моделька пропадает, совершенно никак не сжимается. Как можно еще сжать?

Java:
    {
        Tessellator tessellator = Tessellator.instance;
        tessellator.draw();
        tessellator.setBrightness(world.getLightBrightnessForSkyBlocks(x, y, z, block.getLightValue(world, x, y, z)));

        GL11.glPushMatrix();
        
        GL11.glTranslated(x, y, z);
        GL11.glTranslated(0.5F, 0.0F, 0.5F);
------> GL11.glScaled(0.9F, 0.9F, 0.9F);
        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        Minecraft.getMinecraft().renderEngine.bindTexture(block.texture);
        block.model.renderAll();
        
        GL11.glPopMatrix();

        tessellator.startDrawingQuads();
        Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture);
        return true;
    }
 
@fane4qa, это ISimpleBlockRenderingHandler, там стандартно используется тесселятор, причём он включён на отрисовку полигонов. Если не завершить отрисовку, то будет ошибка в консоле, что типа ещё раз включать отрисовку полигона нельзя. И т.п. по смыслу.
 
Это да, без завершения отрисовки tessellator.draw(); оно не рисуется. И Gl11.CallList тоже как-то не рисуется тут. Но раз этот метод обновляется не часто, то не так критично. Но все же вопрос как уменьшить модель в таком рендере?
 
Попробуй сначала чуть чуть изменять рендер, в аргументы скейла передавай 0.99F, и посмотри как повлияет. Есть такая фича, что с уменьшением размера модели уменьшается и шаг glTranslatef на каждую из осей
 
Есть такая фича, что с уменьшением размера модели уменьшается и шаг glTranslatef на каждую из осей
А потому что порядок изменения матриц очень важен и от этого будет зависеть конечный результат.
Правильно делать так: сначала нужно изменить размер(glScale), потом прокрутить(glRotate) и лишь потом сдвинуть(glTranslate).
Пример из реал лайфа:
1. Сделай шаг вперед и повернись влево.
2. Повернись влево и сделай шаг вперед.
Ты окажешься в совершенно разных точках)
 
Java:
    {
        Tessellator tessellator = Tessellator.instance;
        tessellator.draw();
        tessellator.setBrightness(world.getLightBrightnessForSkyBlocks(x, y, z, block.getLightValue(world, x, y, z)));

        GL11.glPushMatrix();

        float scale = 0.0625F;
        GL11.glTranslatef(x + 0.5F, y - 15, z + 0.5F);
        GL11.glScaled(scale, scale, scale);

        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        Minecraft.getMinecraft().renderEngine.bindTexture(block.texture);
        block.model.renderAll();

        GL11.glPopMatrix();

        tessellator.startDrawingQuads();
        Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture);
        return true;
    }

Получилось вот так, но как это черт-побери работает) Центральный блок стоит на координатах 0, 0. Плюсвые координаты ставятся нормально, а вот минусовые со сдвигом, но в каждый раз все больше, ибо на -400 их вообще не видно.

YmEaKYXIwLg3zm.png
 
Я же написал вверху порядок изменения матрицы, ты все равно делаешь по-своему...
Ну я сделал до того как ты написал. Вертеть то по каком принципу? На что опираясь? Я видел нечто подобное но в TESR и там опорой поворотов были стороны TileEntity, а в 1.6.4 их нет.
 
Пример из реал лайфа:
1. Сделай шаг вперед и повернись влево.
2. Повернись влево и сделай шаг вперед.
Ты окажешься в совершенно разных точках)
хпхпхпх, даже не читая тему фолкена, можно понять как это работает)) главное понимать, что конкретно и как делает твой код
 
Ну я сделал до того как ты написал. Вертеть то по каком принципу? На что опираясь? Я видел нечто подобное но в TESR и там опорой поворотов были стороны TileEntity, а в 1.6.4 их нет.
GL11.glTranslatef(x + 0.5F, y - 15, z + 0.5F);
GL11.glScaled(scale, scale, scale);
Но ты выше упорно продолжаешь делать наоборот.
Местами поменяй, должно помочь.
 
Но ты выше упорно продолжаешь делать наоборот.
Местами поменяй, должно помочь.
Ну так говорю же, я сделал ранее, просто пост отправил позже.
Если меняю местами, происходит вот такое:

В TESR у меня все нормально, а вот в ISimpleBlockRenderingHandler все как-то плохо.
(Сами блоки так и стоят на белых квадратах)
Rmzx95dIYVp36A.png
 
Назад
Сверху