×
Меню
Индекс

NiLight примечания

 
Источники вертексного освещения объектов могут конфликтовать с МГЕ ХЕ, если в нем включена опция по пиксельного (PPL) освещения объектов.
Покрайней мере верно для Spot и Point типов.
Ambient и Direct,  как пишут, работают стабильнее.
Что позволяет использовать их для компенсации недостатка яркости материала.
 
Также, в продвинутых вариантах эффект - требует большого кол-во полигонов на поверхность!
На модели из 1 полигона, эффект не возможно локализовать.
Актуально, в основном для Spot и Point эффектов.
 
Примечание.
Нифскоп НЕ умеет показывать эффект повертексного освещения объектов!
Для этого следует использовать SceneImmerseViewer, однако, он показывает далеко не все.
 
Примечание.
Источники света могут работать только локально в приделах своего ниф файла и не оказывают влияния на игровую сцену!
Однако игровые источники света будут оказывать эффект на такие модели.
При помощи МВСЕ 2.Х их можно добавлять в любым модели в игровой сцене.
Т.е. создавать эффекты непосредственно в игре.
 
Примечание.
Источники света могут работать, как локально на отдельную ноду, так и глобально на все содержимое ниф файла.
 
Примечание.
Только для NiSpotLight
Cutoff Angle 5 Exponent 190
Пример значения позволяющего получить четкое пятно света.
Конечно, глобального эффекта не окажет и игрока не подсветит, но "лазер шоу", или некое квестовое действие устроить можно.
Либо... Странные двемерские прожектора медленно двигающие свои лучи по стенам древних залов...
А если добавить к этому возможности MWSE 2.1 то это действо может интерактивно подсвечивать объекты попадающие на линию луча.
Т.е. теперь есть такая возможность! Подсветить игрока и все прочее, что попадет под луч.
Это может применяться как с повертесным освещением, так и с текстурными эффектами.
Покрайней мере некоторые тесты уважаемого Greatness7 показали такую возможность!
Единственное, что печально, в режиме MGE PPL все это великолепие может не захотеть работать. (((
 
Примечание.
Стандартными  средствами, также можно получить некоторую интерактивность работы!
Конечно в приделах локального ниф файла.
Для этого, родительскую ноду источника света нужно превратить в Billboard.
Тогда, источник света будет поворачиваться "лицом" к игроку, что приведет к перемещению пятна света по модели вслед за движением игрока.
Хорошо подходит для больших помещений, но можно использовать и на небольших объектах.
 
 
Примечание.
Не более 8ми источников света на одну поверхность!
Ограничение DX8-9.
При этом, игровые источники света будут гасить эффекты от "фонариков" настроенных в ниф файлах.
Т.е. следует учитывать, если в ниф файле уже есть эти эффекты, то добавления рядом с ними в игре, иных источников освещения, будет входить в этот лимит.
Также см. здесь!
 
Примечание (по 3д МАХ).
Источники света могут работать в двух режимах:
- повертексное освещение объектов. Собственно это и есть свет.
Это именно работа света по сетчатой оболочке объекта, как таковое.
Однако оно требует большого числа полигонов, о чем было писано выше!
 
- и наложение текстуры для имитации работы света по объекту.
А это, менее ресурсоемкое подобие создающее обычный текстурный эффект.
Т.е. при экспорте, источник света будет преобразован в текстурный эффект.
 
Примечание.
Для анимации вращения\смещения в 3д МАХ, требуется присоединить (Select&Link) светильник к какому-нибудь "физическому" объекту.
Затем анимировать именно этот объект.
Т.е. свет должен входить в состав niNode к которой при экспорте будет применен Кейфрейм контроллер.
Сам по себе, источник света, может не восприниматься модулями экспорта в качестве физического объекта, отчего не получить контроллера анимации передвижений.
 
Если же, эффекты были добавлены непосредственно в Нифскопе, возможно добавление контроллеров анимации движения непосредственно в сами эффекты.
Но лучше добавить эффекты в состав Ноды, которой и добавлять анимации.
 
Примечание.
Если "физический объект", к которому назначен "фонарик", пометить как Billboard (в ТЕСэкспортере) то можно получить некоторую интерактивность, без добавления контроллеров анимации.
См. примечание выше на этой странице.
 
Примечание.
Источники света могут применяться в качестве легкого способа наложения VertexPainta.
Т.е. позволяют подсвечивать модель с определенного ракурса.
Эффект оказывает глобальное действие для всех объектов в сцене ниф файла.
Если нужны какие-то уникальные настройки для отдельных деталей, следует использовать экспорт выделенного, а затем склеить в нифскопе.
Либо применять на объект Exlude\Include Tools. Это позволяет выбирать источники света воздействующие на тот, или иной объект в сцене.
Также, эффект, можно запечь в цвет вертексов, а затем удалить сам источник освещения.
Используя Assign vertex color во вкладке утилит.
Это может оказаться весьма полезным для Нифтулз модуля, который не умеет корректно экспортировать эффекты освещения.
 
Примечание.
Как можно видеть, разные типы лампочек, по разному реагируют на кол-во полигонов модели...
 
 
NiSpotLight особенно чувствителен к кол-ву полигоов.
Не смотря на удвоение полигонов,
120 против 64х,
"лесенка" все одно остается слишком заметной.
 
NiDirectionalLight наименее чувствителен к их кол-ву.
 
 
Примечание.
Если нода в детях которой указаны световые (и текстурные) эффекты находится вне корня файла, то эффекты не будут работать!
Т.е. если в разделе эффектов нод находящихся, как и положено, в корне файла, прописаны некоторые эффекты находящиеся за приделами корня файла.
Т.е. эффекты также должны находится внутри корня файла!
Эффект находится, как в детях корневой ноды, так и в разделе эффектов. Это правильные настройки.
Эффект располагается внутри корня файла.
Здесь, эффект хотя и прописан в эффектах корневой ноды, но фактически находится вне корня файла, состоя в детях другой ноды.
Здесь эффект не будет работать! Настройки неправильные!
 
 
Примечание общее по работе освещения в игре.
Параметр Specular Color для всех локальных, т.е. в ниф файлах, источников света будет сброшен игрой на 1.000 0.000 0.000
Т.е. все настройки цвета, в этом слоте, будут обнулены!
При этом, если вызвать
SSG и посмотреть игровые светильники, которые игра создает сама, то, можно видеть изменяемые значения в этой строке!
Т.е. светильники вполне себе используют этот слот!
 
Вообще все, связанное с этим слотом цвета, заблокировано от изменений в определенных графиках сцены, но в других, вполне используется.
Т.е. игра из шкуры вон лезет, только бы не включить спекулярный цвет на поверхностях выбранных модмейкерами.
И одной "низкополигональностью которая плохо подходит для рисования бликов"(с), как кажется, становится сложно объяснить столь комплексный и сложный подход в борьбе с этим слотом цвета в освещении и в материале (ниф файлов).
Здесь, либо, кто-то из создателей игры, имел какую-то принципиальную ненависть ко всему связанному со спекулярным бликом, либо спекулярный цвет используется для решения каких-то специфических задач.
О чем "намекает" ниже следующее.
 
Примечание по игровым "лампочкам"!
Игра использует спекулярный цвет светильника для сохранения радиуса его влияния!
радиус 5
радиус 100
радиус 500
настройка в редакторе.
Это скриншоты игровой "лампочки", где смена радиуса приводит к изменению параметра kSpec, что и есть спекулярный цвет.
Хотя, по идее, за мощность, а как следствие и за радиус влияния, должен отвечать fDimmer, но на практике, этого не происходит!
 
fAtten2 = Quadratic Attenuation в ниф файлах.
Значение fAtten2, также будет меняется в зависимости от мощности указанной в радиусе, т.е. kSpec и fAtten2 прямо связаны между собой.
 
Примечание.
За переключение значений fAtten0 и fAtten1 отвечает Мв.ини файл!
Но при этом, значение fAtten2, активно всегда и будет также меняться!
Т.е. оно всегда используется, вне зависимости от выбранного типа освещения в .ини файле.
 
[LightAttenuation]
UseLinear=0
UseQuadratic=0
UseConstant=0
UseQuadratic=0
UseConstant=0
UseQuadratic=0
UseConstant=0
UseQuadratic=0
UseConstant=0
UseQuadratic=0
UseConstant=0
UseLinear=0
UseConstant=1
ConstantValue=2.0
UseLinear=1
LinearMethod=4
LinearValue=2.0
LinearRadiusMult=1.0
UseLinear=1
LinearMethod=4
LinearValue=1.0
LinearRadiusMult=1.0
UseLinear=1
LinearMethod=2
LinearValue=1.0
LinearRadiusMult=1.0
UseLinear=1
LinearMethod=2
LinearValue=1.0
LinearRadiusMult=5.0
UseQuadratic=1
QuadraticMethod=4
QuadraticValue=40.01
QuadraticRadiusMult=2.0
Если все параметры в Мв.ини файле выбраны как: UseConstant=0, UseQuadratic=0, UseLinear=0.
То fAtten2 не поменяет своего значения.
UseQuadratic=1 подразумевает более сложные вычисления, которые однако, идут одной строкой в fAtten2.
 
Hrnchamd писал по этом поводу:
Specular color is not used by the renderer, but the radius information is saved there by the game to use later when checking if a light is in range of an object.
It just a hack to store radius, because the renderer doesn't directly use radius.
Т.е. использование слота спекулярного цвета в игре, используется для сохранения значения радиуса освещения.
Сам по себе, спекулярный цвет, не используется.
 
Примечание.
NiSpotLight - отмечался интересный момент, возможно случайный конечно... Т.к. повторные тесты не дали результата.
При добавлении этого эффекта в файл с достаточно большой поверхностью и значительным удалением источника света от нее, игрок блокировал ее освещение, если оказывался между источником света и поверхностью.
Выглядело так, словно игрок оказывал интерактивное воздействие на эффект.
О размерах поверхности см. тут.
Возможно работает не только для Spot, но и для прочих источников света. Директ и Пойнт.
Так или иначе, эффект имел место быть. С чем связано было - не определено.
 

Выдержка из оригинальной справки. (NDL Gamebryo 1.1)
 
Distance Attenuation equation
Gamebryo uses the following equation to calculate the intensity of a point light at a given point in space:
Where Iorig is the original intensity, Ifinal is the final intensity, d is the world-space distance from the light location to the given point, and C, L, and Q are the constant, linear, and quadratic attenuation factors, respectively.
 
 
Distance Attenuation
Point lights and spotlights also support distance-based attenuation (ambient lights and directional lights do not attenuate over distance). The exact attenuation formula may vary from renderer to renderer, but Gamebryo uses an attenuation parameterization scheme that is somewhat renderer independent. The attenuation of a particular light is specified using a full quadratic. The intensity of the light (ambient and diffuse components) is multiplied by the following factor:
where A, B, and C are specified as a parameters of the light (the constant, linear and quadratic attenuation factors, respectively), and d is the world-space distance from the light location to the vertex. Any of A, B or C may be 0. To disable distance attenuation, applications should set A=1, B=0 and C=0.