×
Меню
Индекс

NiRenderedTexture примечания

 
Базовое примечание по самому объекту, как он есть в игре.
- имеет проблемы с отображением прозрачных объектов, что можно видеть на аватаре игрока в меню, если используется, например, шлем с ореолом, или "фонарик". Вместо свечения будет показан пак полигонов без текстур.
Впрочем, возможно, это какой-то "частный" глюк не связанный с этим объектом на прямую.
При создании зеркал средствами МВСЕ, подобное не отмечается. Ореолы отражаются исправно.
- не использует мип-уровни. Это лимит движка, не создающего на лету, мип-уровни для такой текстуры.
 
Устаревшие данные за 2020-22ой.
Сам по себе объект (NiRenderedTexture) может быть свободно внедрен в ниф файлы и даже показать некоторый эффект от своего присутствия.
Его можно увидеть по SSG, а также по добавленной поверхности прозрачности.
Но к сожалению, получить полноценный снимок сцены - не удается.
Вероятно по причине не возможности правильно настроить размер текстуры, за что должен отвечать другой элемент движка.
Да и в целом, объект не предназначается для такого, локального, использования.
Возможно, рендер в текстуру следует прописывать в шейдерных инструкциях, которые, также, не работают, в этой версии движка, в желаемом объеме.
За 2021ый год проводилось множество различных тестов, но кроме получения добавленной прозрачности, ничего нового найти не удалось.
Фактически, это некоторого рода баг - поверхность хотя и становится прозрачной, но не получает альфа свойств.
Что хорошо видно по графику сцены (SSG) а также в захваченных из памяти игры моделях.
При этом, все признаки добавления именно альфа свойств на лицо, в т.ч. мерцание полигонов при наложении альфа на альфу.
 
Примечание.
Можно указать, как свойства объекта!
Т.е. если прописать NiRenderedTexture в качестве niProperties (*Либо в качестве экстра даты), то можно увидеть их в графике сцены (SSG).
В таком режиме и, если в сцене ниф файла, нет камеры - стабильно добавляет прозрачность целевому объекту.
Если прописать в один из текстурных слотов - поверхность объекта будет залита белым фоном.
Если в сцене есть камера - результат будет плавающим. Поверхность может становится, как прозрачной, так и терять оную, после перезагрузки ячейки.
 
Примечание.
NiRenderedTexture не содержит никаких дополнительных полей.
Т.е. не имеет разделов для своей детальной настройки непосредственно в ниф файле.
И в целом, этот объект, предназначается, только для "динамического" создания посредством вывозов движка во время сеанса игры.
 
Пространное примечание с картинками.
О том, что все таки бывает, если попытаться внедрить этот элемент в ниф файл.
 
Зеркала в игре!
Так или иначе, но в 2023ем, был написан код для МВСЕ, позволяющий создавать этот объект в сцене!
Т.е. по средствам предварительно настроенного ниф файла и скриптом МВСЕ, непосредственно в игре, можно получать зеркала!
 
Примеры работающих зеркал, полученные посредством МВСЕ в 2023ем году, здесь.

Примечание (2020).
Хрчамд писал:

Mr.007
NiRenderedTexture is active?
have we chance to make Camera effects or realtime "reflection" ?
 
Hrnchamd
You need to write code for that.
 
Mr.007
with MWSE or MGE shaders using it's will be possible?
Gamebryo documentation have a small example of this code...
 
Hrnchamd
Not really, because rendering the world is very expensive.
If the render target camera is not near the player there is no guarantee the world is loaded there.
Finally no MGE additions like distant land, sky scatter or per-pixel lighting in render targets.
Same reason games use SSR shaders instead of real reflections.
 
NullCascade и Greatness7 писали:
30.05.2020
NiRenderedTexture doesn't really do any binary loading. Doesn't make sense to.
It's supposed to be dynamically cregenerated.
Regardless, it does no custom loading and is meant to represent a dynamic, non-loaded canvas.
 
Greatness7
NiRenderedTexture doesnt override LoadBinary method, so including it in a nif at all isn't going to be useful
in theory it could support having a Renderer/Camera/etc all set up and positioned to automatically work on load. but i doubt it
 
NullCascade
The load binary entry for the vtable is just a generic NiObjectNET load.
So nothing is handled. We'd have to write our own to support it.
 
Greatness7
i read the An Example of Updating an NiRenderedTexture page and it sounds fun
well if you had showed any teaser of it working i would def remember ??
iirc the renderer stuff was really confusing because of some major updates they did between versions
but gotta go sleep now already stayed up way too long

 Выдержка из оригинальной справки. (NDL Gamebryo 1.1)
 
NiRenderedTexture represents textures whose contents are generated dynamically by rendering a scene with a renderer. These textures are commonly used for such effects as mirrors, reflections, and closed-circuit television cameras. Note that not all renderers can support these types of textures, and as a result the creation function may return NULL.
 
NiRenderedTexture objects represent texture images created by rendering a scene. The resulting rendered scene is not drawn directly to the screen, but rather is used as a texture image in the rendering of another scene. As a result, NiRenderedTextures are an inherently dynamic form of texturing, allowing for very advanced effects, such as reflections, dynamic shadows and closed-circuit television cameras.
 
Mipmapping and Rendered Textures
Currently, no renderers can support mipmapped rendered textures.