AviaSkins.Forums

Вернуться   AviaSkins.Forums > Основные разделы > Ил-2 Штурмовик: Забытые Сражения

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.09.2015, 03:14   #11
NB79
Местный
 
Регистрация: 12.07.2015
Сообщений: 417
По умолчанию

Спасибо, конечно, за спасибо! Но!

Есть большая ж. Даже так - Ж! Группы сглаживания в Иловских мешах не сохраняются!

Для того, чтобы ускорить загрузку моделей в игре, иловский меш уже содержит все необходимые, предварительно рассчитанные нормали. Т.е., в таком подходе большой плюс в том, что у тебя все необходимые данные просто грузятся в буферы и отдаются на отрисовку. Не надо на этапе загрузки моделей рассчитывать нормали (а это занимает время и требует определённых манипуляций с данными). Разработчики не ставили целью возможность восстановить модель из своего формата, им это не нужно было, у них модели и так были в наличии. А вот скорость загрузки моделей и простата манипуляций с ними для них важна.

Я уже давно ломаю голову над тем, как можно из имеющихся данных попробовать восстановить группы сглаживания. К сожалению простых и надёжных способов для этого нет. И открытых алгоритмов для этого, похоже тоже нет. Беглым просмотром в гугле я ничего толкового на эту тему не нашел, даже намёков на решение. Придётся придумывать самостоятельно, а это очень трудоёмкая и непростая задача. Не знаю, буду ли я этим вообще заниматься. Было бы хотя бы годное описание мат аппарата для этой задачи, хоть можно было бы оценить во что это выливается. У меня опыта в решении такого рода задач нет. Как я уже говорил, 3Д я раньше вообще не занимался.

Сложность в том, что группа сглаживания задаёт некоторые области для которых нормали должны рассчитываться определённым, заданым автором модели, образом. И группа, как раз, и содержит в себе эти параметры. И в иловском меше, кроме уже рассчитанных нормалей, следов этого определения нет. А нормаль - это уже результат вычислений по заданным в группе правилам. Значит надо проходить по всем полигонам и каким-то образом определять степень искривления поверхности, группировать полученные данные определённым образом и потом пытаться понять является ли некоторая группа полигонов обеденённой в одну группу сглаживания, либо нет. В принципе, наименее сложно выделить группы полигонов (для плоских поверхностей), у которых сглаживание было отключено, у них все нормали принадлежащих им вершин в замкнутой поверхности смотрят в одну сторону и параллельны. Но даже это без гарантии, по крайней мере у меня нет сейчас уверенности в том, что это не будет искажать результат.

Вот такие пироги.

Последний раз редактировалось NB79; 14.09.2015 в 03:30.
NB79 вне форума   Ответить с цитированием
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 09:48. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Рейтинг@Mail.ru