NiRendererSpecificProperty - notes
Находятся в одной группе с прочими свойствами.
· NiProperty
¨ NiAlphaProperty
¨ NiDitherProperty
¨ NiFogProperty
¨ NiMaterialProperty
¨ NiRendererSpecificProperty
¨ NiShadeProperty
¨ NiSpecularProperty
Официальная справка отмечает возможность назначения шейдеров именно посредством этих свойств.
Однако, относит это к 4.2 версии движка.
Т.е. в том виде в котором указано, для МВ это не будет работать.
Однако, эти свойства, все-таки, можно видеть в игре, см. далее.
Встречается в игре, если вызвать
SSG (в консоли).
Т.е. непосредственно во время сеанса игры.
Вероятно, именно эта запись (как-то) влияет на создание шейдеров воде.
В игре применяется глобально, движком и, только к ноде отвечающей за создание поверхности воды.
|
|
Скенеграф вызванный непосредственно в игре.
|
В Редакторе по Ф10.
|
В редакторе, если вызывать SSG - вода не имеет этой записи, но в игровой версии SSG, запись есть.
Редактор не поддерживает отображение шейдеров на воде, даже если включить запись об этом в реестре.
Хотя в коде редактора, эта запись и имеется, равно как и стринг в реестре.
Теоретическое предположение:
Возможность использовать локальные шейдеры, действительно может существовать.
Вероятно, именно NiRendererSpecificProperty могут оказаться ключом.
В пользу этого говорит этот старый скриншот, предрелизных времен Игры.
Если это не особо "наглый" фотошоп конечно...
Примечание.
После добавления в Nif.xml файл такого блока:
<niobject name="NiRendererSpecificProperty" abstract="0" inherit="NiProperty">
<add name="Flags" type="Flags"></add>
</niobject>
Становится возможным добавить в ниф файл:
Игра не вылетает, но и ничего заметного не происходит тоже.
SSG показывает эти свойства. Но без каких либо дополнений.
Возможно, нужны еще строки в которых можно будет указать некие дополнительные параметры. (?)
Либо ссылка на данные для рендеринга, которые и должны создавать шейдер.
Об этом нет данных.
Должны быть эти строки, или нет.
Более детальное изучения движка в этом месте, а равно оригинальной справки к нему, могло бы прояснить ситуацию.
Примечание.
Проводились некоторые эксперименты, с различными записями в экстра дате, а также с добавлением прочих свойств.
Равно и посредством МВСЕ прямо в игровом сеансе.
Результат - отрицательный.
Не получилось натянуть шейдер воды на избранные объекты.
Примечание.
В ОпМВ - не используется.
Т.е. от слова совсем.
Нет ни в коде, ни в идеях команды, что это вообще такое и с чем это едят.
Выдержка из оригинальной справки. (NDL Gamebryo 1.1)
The NiRendererSpecificProperty object is designed to allow each renderer to define an interface that can allow advanced applications to take advantage of features that can only be supported by one (or a few) renderer(s). Such features might include pixel shaders, vertex shaders, specialized texturing effects, etc. The property itself does not expose these renderer-specific interfaces, as it is up to the renderers themselves to expose these values via renderer-specific property data objects.
Creating and Attaching a NiRendererExtraData
NiRendererExtraData objects can be created and attached to objects just as they were in NetImmerse 4.2.2. They should be attached to a NiDX8PropertyData or NiDX9PropertyData object, which is added to an NiRendererSpecificProperty object, which is then placed onto an object in the scene graph.