Свойства управления буфером трафаретов для отображения определенных пикселей на экране.
Близкий "родственник" z-bufferа, т.е. это тоже буфер.
Который может рисовать только определенные участки объектов.
Ужасно могущественное волхование способное приятно (или не очень) удивлять!
Стенсил буфер (Stencil Buffer — буфер шаблона или буфер трафарета) — это дополнительный буфер, соответствующий размеру выводимого кадра, то есть каждому пикселю изображения на экране соответствует свое значение в стенсил буфере. Каждый раз когда точка рисуется на экран, то кроме тестов, вроде сравнения с глубиной в Z-буфере, она проходит еще и стенсил тест. То есть, например, можно сказать — точка рисуется, только если в стенсиле значение больше единицы. С другой стороны, можно сказать, как изменить значение стенсила после того как пиксель в этом месте отрисуется. (С)
An NiStencilProperty allows the application to control the use of a stencil buffer in rendering.
It also includes a draw-mode setting to allow applications to set the culling mode of a set of geometry.
ПРИМЕЧАНИЕ!
Для ОпенМВ (все билды) (0.51 включительно)!
Stencil Ref не должно превышать 255!
Т.е. установка значения выше 255 приводит к отказу в обслуживании, модель перестает правильно работать.
Capo(strоhic) из команды ОпенМВ, писал; это завязано на ограничение OpenGl и (по видимости) не может быть расширено.
Также!
Нифскоп линейки 2.0 (по видимости) выставляет значение:
Stencil Mask = 0, а не 4294967295 (-1)
Что также может приводить к нарушению работы моделей под OpenMW движком!
Т.е. если планируется создавать модель под ОпенМВ не устанавливайте Stencil Ref выше 255 и проверяйте значение Stencil Mask, оно должно равняться минус один (-1), а не быть равным нулю (=0).
Для Ванильного Морровинда, значение Stencil Ref может принимать любое значение до 65535, а Stencil Ref может быть равным нулю.
Хотя, если не планируется использовать какие-то особенно сложные техники, сохраняйте значение, как равное -1 (4294967295).
Основное использование стенсилов (свойств трафарета) в МВ, до недавнего времени, ограничивалось отрисовкой оболочки объекта с его обратной стороны.
Т.е. без необходимости создавать для нее дополнительные полигоны руками в 3д редакторе.
Что позволяло сократить время на создание модели и кол-во полигонов оной.
Однако, продвинутые техники использования Трафарета, позволяют создавать много более интересные вещи!
В т.ч. делать дыры в стенах не нарушая геометрии оных.
Стенсильные свойства позволяет создавать маски взаимодействующие между собой.
А также, корректирующие работу z-буфера с флагами 0 и 2!
Т.е. буфера трафаретов обладают весьма богатым потенциалом!
Правильные ореолы вокруг объектов ни под каким ракурсом не налезающих на основные сетки? Да!
Объекты видимые только на фоне других объектов? Да!
Отображение только участков объектов? Да!
Объекты скрытые на фоне других? Да!
Отображение текстуры объекта на обе стороны поверхности? Это уже много лет как да, да :)
И так далее.
Увы, в каждой бочке меду, есть своя ложка дехтю(С)
Так и здесь есть известное число подводных камней.
Это новые данные! 05 2020.
Спасибо уважаемому Greatness7 за внимательность!
Т.к. "ключ" к этому лежал на поверхности, но, как бы в стороне.
Подробные описания свойств трафарета были найдены в руководствах по работе с OpenGL программированием!
Важно!
- Для правильной работы требуется включение в реестре параметра Stencil.
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Bethesda Softworks\Morrowind
(в разных версиях win OS путь может отличаться от указанного)
- На видео картах Радеон (АТИ АМД) могут быть проблемы!
Т.е. без включения этого значения в реестре, стенсильные свойства не будут работать!
Важно!
Возможно, для NV и ATI видео карт настройки трафарета могут быть различны!
Т.е. что нормально работает на NV, может показать отрицательный результат на ATI.
Обратное, возможно, также верно.
Примечание.
Если отключить использование дефолтных шейдеров (через лаунчер игры, или напрямую в реестре).
Объекты использующие трафареты смогут нормально работать в локациях содержащих воду.
Иначе, придется дополнительно бить в бубен и впадать в "транс" (дачтобихшорматязвилитомуподобное)!
Примечание.
Свойства трафарета в локальных моделях нарушаются действием игровой воды!
Имеющей эти же свойства.
Для решения этой проблемы используется МВСЕ 2.0 , или долгие танцы с бубном в поисках подходящих значений в локальном файле.
Т.е. если в файл добавить объект (шейп) с дополнительными свойствами трафарета, проблему с водой, можно успешно решать!
Добавление в Нифскопе.
- свободно.
Заметка с примерами "продвинутых" настроек, см. здесь.
Создание в 3д МАХ.
- не поддержано.
Полноценную поддержку завезли только в 1.0 версии официального плагина.
Для 4.0 формата ниф файлов, все модули экспорта - в пролете.
Краткие описания настроек в общем.
Теоретическая статья по работе с трафаретом в OpGl среде.
Также, см. здесь. Это небольшой урок на тему. Язык аглицкий.
Скриншоты.
Примечания.
- Не требуется.