照明

From Valve Developer Community
Jump to: navigation, search
English

Dota2中照明的处理方式是延迟光照(deferred lighting model),而且是动态的效果。此外照明是不需要编译的。

env_global_light

这个变量控制着地图的全局光照,这里的有些设置是全局性的,其他的变量则被ent_dota_lightinfo控制着。

镜面角度 Specular Angle (Y Z X) 控制镜面角度 (默认值: 64 283 0)
高光功率 Specular Power 0 = 无限宽衰减, 较高的值 = 更清晰的衰减 (默认值:14)
视野 FOV 光照投射的视角区域。采用较低的值,能保证更远距离的光照和更清晰的阴影 (默认值:5)
NearZ 距离 NearZ Distance 这个值控制着距离玩家较近的阻隔平面的距离 (默认值:4)
纹理名称 Texture Name 云体阴影材质 (默认路径: ...effects/light_clouds_00)
启用阴影 Enable Shadows 禁用/启用阴影
云体尺寸 Cloud Scale 这个控制着云的规模和大小 (默认值:6500)
云1 速度 Cloud 1 Speed 云1材质的移动速度(默认:120)
云1 方向 Cloud 1 Direction 云1 材质运动方向 (默认值:0 165 0)
云2 速度 Cloud 2 Speed 云2材质的移动速度 (默认值:80)
云2 方向 Cloud 2 Direction 云2 材质运动方向 (默认值:0 145 0)

ent_dota_lightinfo

控制着一个个局部区域的光照设置,每张地图里都包含一个env_global_light和env_fog_controller 实体文件,他们控制的内容基本都可以由ent_dota_lightinfo entities进行平行控制。 想想在Dota2地图上从天辉穿梭到夜魇时那些变化的光照效果,这个功能在这其中发挥出了巨大的作用,而且地图上不同的光照效果也正是大家所需要的。 在一个地图上能存在多个光照实体,任意两个或者多个光照的外圈半径重叠起来时,会产生平均过渡,但是内圈半径的效果则不会相互干扰。

颜色 Color 定向的光照颜色
环绕 Ambient 对物体边缘照明
阴影尺寸 Shadow Scale 任何采用“英雄着色器” (比如:英雄,NPC,小兵)的物体,都会产生不透明阴影
地面阴影尺寸 Shadow Ground Scale 对任何采用multiblend和global_lit_simple着色器的物体(比如支柱,地面等)产生阴影
高度雾 Height Fog 现在自定义地图中还不支持此功能--被迷雾笼罩的地面的不透明度(0为完全透明,Dota2地图默认为0.09)
FOW 暗度 FoW Darkness 战争迷雾增加不透明性。
FoW 颜色 RGB FoW Color RGB 战色谜雾由这些单独的RGB值的加权平均值定义 (例如:R0 G2 B2)
天空盒名称 Skybox Name 尚不支持 - 添加局部的天空盒图片
天空盒色调 Skybox Tint 尚不支持 - 调整局部天空盒图片的色彩
内径 Inner Radius ent_dota_lightinfo 的内圈半径 (注意! 这不能和任一 ent_dota_lightinfo 实体进行叠加)
外径 Outer Radius ent_dota_lightinfo 的外圈半径范围,摄像机一旦穿过这个半径,如果没有什么切断摄像机的位置,光照就会受到相邻ent_dota_lightinfo 或env_global_light 实体的控制 。
提示:如果在自定义地图中,战争迷雾已经完全变黑,摄像机已经超过了附近ent_dota_lightinfo的外圈半径,那就把半径调大或者再加一个控制器。

env_deferred_light

创建一个小的、无阴影效果的光照,类似于一个点光照,这个光照实体可以从它的源点产生光线出来。通常用于火炬,火焰等。

性能注意事项(Performance Considerations)

添加延迟光照到自定义地图上之后,需要明白:光照堆叠多了就会对性能造成一定损伤。"r_deferred_simple_light 2"无疑是一个可以提升性能的好工具, 它可以在游戏中显示光照的半径,并且添加上颜色进行显示,如果一个地方的颜色已经变绿,那就意味着这个地方堆叠的光照已经够多了,需要减少这个地方重叠的光照半径,以减少对整体光照效果的透支。