Черные квадраты в СК и игре

Аватара пользователя
@perture
Администратор
Сообщения: 1265
Зарегистрирован: 13 апр 2015, 13:09
Откуда: Россия::Астрахань
Gender: Male - Male

Черные квадраты в СК и игре

Сообщение #1 @perture » 29 май 2018, 03:20

Некоторые модели вызывают появление черных квадратов (или даже всего окна рендера) в СК и игре.

Изображение Изображение

Природа их заключается в некорректных значениях тангенсов и бинормалей. В свою очередь эти некорректные значения возникают при экспорте моделей из 3ds Max старыми версиями Nif-плагина. Проблемными оказываются те вершины, которые имеют некорректную UV развертку, поскольку значения текстурных координат используются при расчете тангенсов и бинормалей. В большинстве случаев две или более вершины имеют одни и те же координаты.

Изображение Изображение

Как это исправить? В идеале, устранить источник проблемы, то есть исправить UV развертку. Но это занятие непростое, из нескольких тысяч вершин найти несколько с совпадающими координатами. Визуально этого может быть даже и не видно, надо писать скрипт для сравнения координат.

Так же можно обновить тангенсы и бинормали в программе NifSkope, но нет гарантий в результате. А в последней версии как будто эти массивы перепутаны. После обновления тангенсы имеют направление бинормалей, и наоборот. И надо разобраться, какие из них правильные.

Изображение Изображение
"Не спорьте с идиотами! Вы опуститесь до их уровня, а там они вас задавят своим опытом!" ©
Аватара пользователя
@perture
Администратор
Сообщения: 1265
Зарегистрирован: 13 апр 2015, 13:09
Откуда: Россия::Астрахань
Gender: Male - Male

Черные квадраты в СК и игре

Сообщение #2 @perture » 03 июн 2018, 08:03

@perture писал(а):ИсточникПосле обновления тангенсы имеют направление бинормалей, и наоборот. И надо разобраться, какие из них правильные.


Проблема вроде прояснилась. Суть её кроется в том, что тангенсы и бинормали перепутаны в нифскопе и библиотеке NifLib. В ниф-плагине я добавил расчет тангенсов и бинормалей с помощью функции из библиотеки Havok, поскольку она даёт самый адекватный результат. Однако, из-за означенной путаницы тангенсы присваивались бинормалям, а бинормали тангенсам. В следующей версии плагина это будет исправлено.
"Не спорьте с идиотами! Вы опуститесь до их уровня, а там они вас задавят своим опытом!" ©

Вернуться в «Технические вопросы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет пользователей и 4 гостя