灯光创建指南
要点
使用光照时的关键规则是仔细检查源放置结果。光源的半径应足以照亮房间或区域的必要部分,但不能超过合理的限制。例如,使用专为小型警卫室设计的光源来照亮大型机库是不合适的。
光源
光源模板位于<project_name>/prog目录下的lights.blk文件中。例如,在基于 daNetGame 的项目中,可以在此处找到它:
<project_name>/prog/gameBase/content/common/gamedata/templates/lights.blk
有关光源设置的详细信息,请参阅 灯光 一文。
要点:
对于每个新的视觉模型,创建并配置一个新的光源,在光源名称中包含视觉模型的名称(如果需要,还包括光半径等功能参数)。
更喜欢使用 spot 灯而不是 omni 灯。
光源可以通过任务编辑器(游戏中的
F12)进行调整。这些更改不会保存,但可以立即预览。要更改一天中的时间,请使用基于浏览器的工具 Var Editor。
在配置光源时平衡亮度和最大半径。
如果创建用于室外的 omni (在
envi_probe之外),请确保禁用light__use_box参数;否则,光源不会在外部渲染。如果可能,请避免激活阴影。
如果启用了阴影,则它们应仅应用于静态对象。如有必要,动态对象可能具有唯一的光源。
始终在游戏中检查阴影,因为在某些情况下,启用的阴影可能会降低场景质量,具体取决于光源相对于视觉模型的位置。
如果光源的视觉模型可以被销毁,请在光源模板中添加
destroyable_with_rendinst:tag参数。如果光源仅在夜间激活(例如,路灯),请将参数
light__nightly:b=yes添加到模板中。
IES 纹理
有关创建 IES 纹理的详细信息,请参阅 光度学灯光 一文。不要犹豫,生成多个 IES 纹理。根据光源和/或视觉模型命名它们。
闪烁的光源
有关闪烁光源的更多信息,请参阅 闪烁的灯光 文章。
要正确设置闪烁的光源,必须创建以下实体:
闪烁的光源。
Note
这与光源不同;有关详细信息,请参阅 文章。
带有动画控制器的动态视觉模型。
将动态模型的 animChar 链接到闪烁源的模板。如果动态模型可以被销毁,请不要忘记指定 destructibility。
一个 gameObj 模板,用于将动态模型的 animChar 链接到闪烁源。
光源。
将光源与闪烁光源链接的模板。
将光源链接到闪烁光源的 gameObj 模板。
一个由两个游戏对象组成的复合文件:一个用于将闪烁源链接到动态模型,另一个用于将闪烁源链接到光源。
视觉模型
这是指光源的几何模型,例如灯、聚光灯、手电筒或光源的任何其他视觉表示。
考虑光源是否需要闪烁。对于应急灯、火把和大多数灯(因为许多灯可能具有闪烁的变体),请创建具有自发光表面的动力学模型,并在必要时创建渲染实例基。将视觉模型分为渲染实例和动态模型背后的逻辑及其准备工作在 Flickering Lights 一文中进行了详细说明。
发射强度
发射强度没有确切的值,因为它取决于反照率、发射掩码和发射表面的大小等因素。单独配置发射强度,请记住,值越低通常越好。过度发射会破坏摄像机的适应能力,并对游戏体验产生负面影响。
有关配置发射的更多详细信息,请参见 本文。
GameObj
See also
有关更多信息,请参阅 gameObjects.
为光源和动态视觉模型创建 gameObj。例如,在基于 daNetGame 的项目中,它们位于以下位置:
<project_name>/develop/assets/common/gameRes/gameObjects
为方便起见,请确保在 gameObj 中定义一个参考模型。例如:
ref_dynmodel:t="lamppost_d_glass_flicker_dynmodel"
这是在 daEditor 中显示几何体所必需的。
限制框
限制框 是一个用于切断光线的 gameObj。对于不投射阴影的光源,需要它来防止光线穿过墙壁。通常,它不会包含在包含光源的复合文件中,而是手动放置在该位置或添加到整个建筑物的复合文件中。
对象命名为:
omni_light_restriction_box.gameObj.blk
Composite
复合 文件可以使用相同的视觉模型,但具有不同的光源。在这种情况下,请确保在复合文件名中包含光源功能。始终在包含光源的合成图像的名称中指定半径,例如:
factory_lamp_a_flicker_10m_cmp.composit.blk
包含光源的复合材料可能包括:
RendInst – static base,可以是可破坏的,并包含销毁逻辑。
描述光源或将光源链接到闪烁光源的 GameObj 模板。
GameObj 模板,以防光源具有闪烁变体。
用于切断光线的 限制框 ,尽管它通常单独放置,不包括在与光源的合成中。
放置光源
请记住在放置光源时考虑光半径。同一光源不能同时照亮小房间和大大厅。 这将使大厅照明不足或导致小房间过度照明。过高的亮度不仅会破坏视觉沉浸感,还会破坏游戏体验。