Небольшие факи по Skyrim Special Edition

Аватара пользователя
VALKNUT
Администратор
Сообщения: 1112
Зарегистрирован: 13 апр 2015, 16:06
Откуда: СССР, г.Новороссийск
Gender: Male - Male

Небольшие факи по Skyrim Special Edition

Сообщение #61 VALKNUT » 25 дек 2016, 19:25

@perture писал(а):Источник Покаж ножичеГ.

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

Небольшие факи по Skyrim Special Edition

Сообщение #62 @perture » 18 янв 2017, 17:33

Черный вьюпорт в Creation Kit SE


Одна из возможных причин черного вьюпорта в Creation Kit SE - конфликты шейдеров, связанные с некорректными данными Tangents и Bitangents в геометрии моделей. Эти данные рассчитываются из нормалей и UV развертки при экспорте моделей из 3D редактора либо в NifSkope. С нормалями проблем не встречал, а вот UV развертка зачастую бывает некорректна, что и вызывает проблемы. И если NifSkope еще как то справляется с расчетом, то Nif-плагин может экспортировать некорректные данные, что в итоге приводит к черному вьюпорту.

Теперь обо всём по порядку.

С точки зрения алгоритма расчета Tangents и Bitangents некорректной может оказаться любая развертка, у которой хотя бы два вертекса в одном треугольнике имеют одинаковые UV координаты. Для примера рассмотрим ванильную модель wrintwallstrdoor01custom01. У дверного проёма напрочь отсутствует развертка

Отсутствие развертки в ванильной модели
Изображение

При этом Tangents и Bitangents всё же как то рассчитаны, и хотя имеют хаотичные направления, ошибок не вызывают, находясь в допустимых диапазонах

Ванильные Tangents
Изображение

Если эту модель реэкспортировать Nif-плагином, то данные Tangents и Bitangents выходят за пределы допустимых значений, что можно видеть в NifSkope как значение nan, и как следствие, получим черный вьюпорт при размещении модели в игровом мире

Tangents экспортированные Nif-плагином и вызывающие черный вьюпорт
Изображение

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

Tangents обновленные в Nifskope
Изображение

P.S. В качестве анонса. В грядущем большом обновлении Nif-плагина будет добавлено несколько новых функций из библиотеки Havok, в том числе и алгоритм расчета Tangents и Bitangents, самый адекватный из известных мне

Tangents рассчитанные инструментами Havok
Изображение
"Не спорьте с идиотами! Вы опуститесь до их уровня, а там они вас задавят своим опытом!" ©

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

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

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