Так легко?)GloomyFolken написал(а):Проще, наверное, скопипастить себе форджевский лоадер и заменить оригинальный на свою модификацию (AdvancedModelLoader.registerModelHandler()). Потом нужно прикрутить использование дисплей листов. Работать они должны как-то так:svk написал(а):Так поможете?
Подскажите как это сделать? С чего начать?
1) Прикрутить использование dispay list'ов к загрузчику форджа. Плюсы такого решения: не надо париться с текстурами и степень отвратительности кода в итоге будет ниже. Минусы: нужно немного разобраться с openGL и нужно либо модифицировать фордж, либо копи-пастить оттуда код.
1) При загрузке меша создается и компилируется дисплей лист, его айди записывается в объект меша
2) А в render() как-нибудь так:Код:GL11.glGenLists(1); GL11.glNewList(this.displayListId, GL11.GL_COMPILE); this.render(); GL11.glEndList();
3) Еще хорошо после загрузки всех мешей в модели было бы очищать списки вершина, нормалей, текстурных координат (в WavefrontObject) и фейсов (в GroupObject), потому что все это добро занимает немало оперативки и содержит кучу объектов, которые замедляют сборщик мусора.Код:if (this.displayListId == 0){ //содержимое GroupObject.render() } else { GL11.glCallList(this.displayListId); }
Хм, то-есть я тупо могу скопипастить с 1.8. код, для решения этой задачки?Oldestkon написал(а):А ещё по-хорошему было бы выкинуть нафиг всю deprecated-ную функциональщину и перейти на VBO. Тем более, что с 1.8 используется как раз эта модель данных.
А эти ваши display-listы недалеко от immediate mode ушли.
Слушай, раз всё так легко, можешь код дать?)GloomyFolken написал(а):Проще, наверное, скопипастить себе форджевский лоадер и заменить оригинальный на свою модификацию (AdvancedModelLoader.registerModelHandler()). Потом нужно прикрутить использование дисплей листов. Работать они должны как-то так:svk написал(а):Так поможете?
Подскажите как это сделать? С чего начать?
1) Прикрутить использование dispay list'ов к загрузчику форджа. Плюсы такого решения: не надо париться с текстурами и степень отвратительности кода в итоге будет ниже. Минусы: нужно немного разобраться с openGL и нужно либо модифицировать фордж, либо копи-пастить оттуда код.
1) При загрузке меша создается и компилируется дисплей лист, его айди записывается в объект меша
2) А в render() как-нибудь так:Код:GL11.glGenLists(1); GL11.glNewList(this.displayListId, GL11.GL_COMPILE); this.render(); GL11.glEndList();
3) Еще хорошо после загрузки всех мешей в модели было бы очищать списки вершина, нормалей, текстурных координат (в WavefrontObject) и фейсов (в GroupObject), потому что все это добро занимает немало оперативки и содержит кучу объектов, которые замедляют сборщик мусора.Код:if (this.displayListId == 0){ //содержимое GroupObject.render() } else { GL11.glCallList(this.displayListId); }
Мде.liner1 написал(а):Потскажите у меня eclips ругаеться на renderAll() в версии 1.6.4.
Просто скажи мне, что такое renderAllliner1 написал(а):Потскажите почему eclips ругается на renderAll в версии 1.6.4