Comments 18
Когда писали игрушку для айфона, тоже сначала юзали 3DS, но потом перешли к PVR. 3DS-библиотека (lib3ds) оказалась немного глючной (не совсем корректно считались нормали), пришлось самим дописывать код, который корректировал нормали, чтобы на модельке не было артефактов. C PVR вроде таких проблем не было.
+1
Вычисление нормали путем усреднения прилежащих нормалей является в корне не верным способом,
для это есть чанк CHUNK_SMOOTHG и алгоритм восстановления нормалей для рендера там намного сложнее
для это есть чанк CHUNK_SMOOTHG и алгоритм восстановления нормалей для рендера там намного сложнее
+1
Да, я знаю, я сразу так и написал в самом начале, что не использую это. А вот заглушка для этого чанка у меня таки есть, если поделитесь кодом для неё — буду благодарен.
0
1) В документации 3smax сдк есть пример того как вычислять нормали docs.autodesk.com/3DSMAX/15/ENU/3ds-Max-SDK-Programmer-Guide/
2) Также надо не забывать что некоторые рендер вертексы будут дублироваться из за того, что у одного и того же вертекса может быть больше одной нормали — соответственно надо будет еще и индекс буфер менять
2) Также надо не забывать что некоторые рендер вертексы будут дублироваться из за того, что у одного и того же вертекса может быть больше одной нормали — соответственно надо будет еще и индекс буфер менять
+1
И это еще не все — нормали складывать надо правильно docs.autodesk.com/3DSMAX/15/ENU/3ds-Max-SDK-Programmer-Guide/
0
Прошу прощения по этим ссылкам только сам сдк
Вот полные ссылки
docs.autodesk.com/3DSMAX/15/ENU/3ds-Max-SDK-Programmer-Guide/files/GUID-9B83270D-1D20-4613-AB35-5EE9832C162E.htm
docs.autodesk.com/3DSMAX/15/ENU/3ds-Max-SDK-Programmer-Guide/files/GUID-0FCB4578-77F8-4F05-99CD-349E85F13639.htm
Вот полные ссылки
docs.autodesk.com/3DSMAX/15/ENU/3ds-Max-SDK-Programmer-Guide/files/GUID-9B83270D-1D20-4613-AB35-5EE9832C162E.htm
docs.autodesk.com/3DSMAX/15/ENU/3ds-Max-SDK-Programmer-Guide/files/GUID-0FCB4578-77F8-4F05-99CD-349E85F13639.htm
+1
По сути, у меня как раз получается складывание, взвешенное по площади (второй приём): суммирую-то я ненормализованные вектора, а векторное произведение двух рёбер как раз даст направление, умноженное на площадь треугольника.
0
Спасибо за ссылки.
Собственно, именно из-за пункта 2 я всё это и не делал.
Собственно, именно из-за пункта 2 я всё это и не делал.
0
Добавил код восстановления нормалей в соответствии с группами сглаживания.
0
Статья хорошая, претензий нет. Хочется только добавить, что для промышленных целей лучше использовать формат, который можно целиком скопировать в видео-память (GL vertex buffer). К чему все эти парсинги выполнять каждый раз бедному ARM процессору, если можно подготовить данные заранее? :)
+3
Да уж, зачем засовывать в мобильное приложение файл с кучей лишней информации? :) Лучше написать плагин под используемый 3д пакет, который вытащет и запишет только то, что нужно.
0
Sign up to leave a comment.
Загрузка файлов .3DS на Android