Свойства управления буфером трафаретов для отображения определенных пикселей на экране.
Близкий "родственник" 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.
Основное использование стенсилов (свойств трафарета) в МВ, до недавнего времени, ограничивалось отрисовкой оболочки объекта с его обратной стороны.
Т.е. без необходимости создавать для нее дополнительные полигоны руками в 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 версии официального плагина.
Все модули в пролете.
Краткие описания настроек в общем.
Теоретическая статья по работе с трафаретом в OpGl среде.
Небольшой урок на эту тему. Язык аглицкий.
Скриншоты.
Примечания.
- Не требуется.