.obj нормали

Версия Minecraft
1.7.10
1,111
47
420
Крч так, я сделал модельку .obj в блэндере и засунул ее в майнкрафт. Вершинки отображаются великолепно, но вот с нормалями видимо что то не так. Вообщем все черное какие бы текстурки или цвета я не накладывал.
Код:
public class RenderAbsorbentSphere extends TileEntitySpecialRenderer {
    private IModelCustom model = AdvancedModelLoader.loadModel(new ResourceLocation("sm", "objects/sphere.obj"));

    @Override
    public void renderTileEntityAt(TileEntity p_147500_1_, double p_147500_2_, double p_147500_4_, double p_147500_6_, float p_147500_8_) {
        glPushMatrix();

        glBindTexture(GL_TEXTURE_2D, -1);
        glTranslated(p_147500_2_, p_147500_4_, p_147500_6_);
        glColor4d(1, 0.7, 0.7, 1);
        //bindTexture(new ResourceLocation("sm", "textures/glass.png"));
        model.renderAll();
        glPopMatrix();
    }
}

Сразу скажу что в .obj файле нормали присутствуют.
 
1,111
47
420
CoomingSoon написал(а):
Насколько знаю, в майнкрафте не читаются нормали. Это неточно, проверь, если
glBindTexture(GL_TEXTURE_2D, -1); зачем?

Если нормали не читаются это печально, придется свое писать. 
glBindTexture(GL_TEXTURE_2D, -1); зачем?
Ну просто отвязываю текстуру, какие проблемы?


Код:
else if (currentLine.startsWith("vn "))
                {
                    Vertex vertex = parseVertexNormal(currentLine, lineCount);
                    if (vertex != null)
                    {
                        vertexNormals.add(vertex);
                    }
                }
Читает он нормали. Косяк в чем то другом. Более того я вырубил в рэндере освещение все равно все черное. Попробую отрубить материал. Авось поможет!

UPD Не помогло. Жду ответов.
 

mod

156
2
12
нормали есть, но только в нормальных шейдерах, и да, они - текстуры, накладывающиеся поверх обычных, но в место цвета, дают тени, так что я хз, что ты там засунул в 3Д МОДЕЛЬ! ГДЕ БОЛЬШЕ ПОЛИГОНОВ НЕТ НЕ ЧЕГО В ПРИНЦИПЕ
 
1,111
47
420
Ты щас рофлишь что ли?
1) По поводу шейдеров. Я понимаю если б мы говорили об андроиде или эпле с их без альтернативным OpenGL ES. Но мы то можем просто юзнуть Tesselator.setNormal(float, float, float).
2) Как это в obj нет нормалей?о_О А что же такое vn тогда?


P.S. Я знаю что такое нормаль. Шейдеров под андроид писал много и разных.


P.P.S. Сразу не заметил. Всмысле нормаль это текстура? Нормаль это нормализованный вектор.


Ладненько, я как всегда решил свою проблему сам=). Проблема была в том что моя модель была внутри блока который не прозрачный.
 

mod

156
2
12
тебе ща 3дешник говорит:
OBJ- ОТКРОЙ В БЛОКНОТЕ, УВИДИШЬ ТОЛЬКО ГРАНИ И ПОЛИГОНЫ, В ВИДЕ КООРДИНАТ!
и да, шейдеры, я имею в виду НОРМАЛЬНЫЕ! те, что поддерживаются в ОПТИ ФАЙНЕ! те, что в моде- способ отображения, тени, И ВСЁ!
НОРМАЛИ в 3д графике - 
image.png



и ещё раз, что бы убедить ся, что все поняли, вот это НОРМАЛИ!!! (0:58)- [video=youtube]https://youtu.be/VXznMATJPG8?t=58[/video]
 
808
3
124
Код:
    public static class McsaVertex {
        public Vector3f position;
        public Vector2f textureCoords; //may be null (if no texcoords exported)
        public Vector3f normal; // may, but should not be null (if no normals exported)
        public Vector3f tangent; // may be null (if no tangents exported)
        public Vector3f bitangent; // may be null (if no tangents exported)
        public float[] weights; //may be null (if no animation exported)
        public byte[] boneIndices; //may be null (if no animation exported)
    }
Вот блин, оказывается в моделях только координаты граней и полигонов, а я какую-то фигню туда  пишу :(
 
1,111
47
420
mod написал(а):
тебе ща 3дешник говорит:
OBJ- ОТКРОЙ В БЛОКНОТЕ, УВИДИШЬ ТОЛЬКО ГРАНИ И ПОЛИГОНЫ, В ВИДЕ КООРДИНАТ!
и да, шейдеры, я имею в виду НОРМАЛЬНЫЕ! те, что поддерживаются в ОПТИ ФАЙНЕ! те, что в моде- способ отображения, тени, И ВСЁ!
НОРМАЛИ в 3д графике - 
image.png



и ещё раз, что бы убедить ся, что все поняли, вот это НОРМАЛИ!!! (0:58)- [video=youtube]https://youtu.be/VXznMATJPG8?t=58[/video]



Почувствуй разницу между нормалью(вектор из 3 double или матрица 1x3 понимай как хочешь) и картой нормалей(просто удобное представление нормалей). Я не знаю нахрен мне нужна твоя карта, если все прописано в .obj.

По поводу obj. Открываю я его значит и, прикинь, там не только вершины и полигоны, а еще и 
 - vn 
 - f
 - vt
 - o
 - g
Как думаешь, что это все значит?

По поводу твоего видео и теней на нем, мне уже надоело что либо писать, так что просто отрисуй что-нибудь в майне без OptiFine и без нормалей, а потом с нормалями. 

З.Ы. Ты щас реально позоришь свою подпись.


Лол, здешник, спасибо, орнул.
 

mod

156
2
12
сделай, давай тогда, нормали, давай


так, а теперь в последний раз напишу, потом тупо забиваю на этот спор:
1) НОРМАЛЬ, сумка, это ТЕНЬ!
2)карта нормалей - доп. тени, накладывающиеся вместе с основным рендером, а то как они наложатся, определяют НОРМАЛЬНЫЕ МАПЫ! 
3)
сперва почитай вики, ибо то, что ты в obj нашёл, это: 
image.png

а ща разжую: ТО, КАК МАП НА ПОЛИГОН ЛЯЖЕТ!!!!!!!!!


а теперь тупо фейспалм
 
Сверху