Zh/Lighting: Difference between revisions

From Valve Developer Community
< Zh
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 110: Line 110:
*基础的光源实体不会伴随着可见的物体出现(如灯泡)。为此,你需要一个道具。请查看[[HL2 light props|HL2光源道具]]获取列表。
*基础的光源实体不会伴随着可见的物体出现(如灯泡)。为此,你需要一个道具。请查看[[HL2 light props|HL2光源道具]]获取列表。
*基础光源实体不会伴随着"光晕"出现,即便你希望在大雾或朦胧的区域看到它们。要实现这一点,无论是编译还是运行地图都要启用[[HDR]],或者添加一个[[point_spotlight]](除非需要否则设置动态光照为"关")或者[[env_lightglow]]实体。
*基础光源实体不会伴随着"光晕"出现,即便你希望在大雾或朦胧的区域看到它们。要实现这一点,无论是编译还是运行地图都要启用[[HDR]],或者添加一个[[point_spotlight]](除非需要否则设置动态光照为"关")或者[[env_lightglow]]实体。
*除非你运行[[vrad]](或等价的)否则地图将不会发光 。除非地图[[leak|无泄漏],否则Vrad无法正确运行,也无法计算出真实的光照反射。
*除非你运行[[vrad]](或等价的)否则地图将不会发光 。除非地图[[leak|无泄漏]],否则Vrad无法正确运行,也无法计算出真实的光照反射。
*一些贴图提供它们自己的光,可以使用模组目录里的<code>[[lights.rad]]</code>,或者使用<code>sourcesdk/bin</code>里的那个就可以做到。
*一些贴图提供它们自己的光,可以使用模组目录里的<code>[[lights.rad]]</code>,或者使用<code>sourcesdk/bin</code>里的那个就可以做到。
*移动基于物体的固体,它们的发光方式也不会改变。它们的光照只会根据它们在Hammer里的位置来计算。(比如,一个在黑暗房间里的固体,将其带到高亮房间里,它也不会变亮。)
*移动基于物体的固体,它们的发光方式也不会改变。它们的光照只会根据它们在Hammer里的位置来计算。(比如,一个在黑暗房间里的固体,将其带到高亮房间里,它也不会变亮。)

Revision as of 18:47, 17 April 2013

Template:Otherlang2

概括性的地图制作(en)系列 讨论你的想法——帮助我们写你需要的文章和想法

弹药 | 生物 | 蚁狮 | 光束和激光 | 线缆和绳子 | 动态的天空与云雾 | 颜色理论 | 战斗 | 联合军 | Compression (Source 1) | | 尘土、雾、烟 | 升降机 | 关卡转换 | 环境光效、太阳、天气、室外 | 爆炸 | 火焰 | 植被 | 玻璃和窗户 | Headcrab | Health | 梯子 | 光效 | 优化] | 物理 | 视网膜扫描仪 | 声效和音乐 | 特效 | 地形 | 火车 | 机枪塔 | | Weapons | 僵尸

向导

一个拥有充足光线的房间的例子

类型

静态光源

Template:Tip:zh-cn

light:一个静态的,全方位的点光源。(例如一个裸灯泡或火焰。)
light_spot:一个静态的,单向点光源。(如火炬或手电筒),圆锥形光束角度不能超过90°。
light_environment:提供两种光源:
  • 一种是从天空盒所有面漫反射出来的'环境'光(表示来自云里的反射光以及一般的大气层)
  • 一种是只投向一个方向的定向'亮度'光(相当于太阳光或月光)
都是从使用它的地图的toolsskybox材质发射出来的。参见天空盒
env_particlelight:点亮由env_smokestack产生的颗粒。颗粒并没有受正常照明。使用(不超过)这些中的2个,使得(仅限这个实体)env_smokestack颗粒出现以反映环境照明。
发光贴图
固体应用表面发光的材质(在game_dir/lights.rad中定义)会在一个180°的椎体里投射体积光。

静态光接收器

固体
这个Hammer面编辑对话框工具'光照贴图规模'可以用来控制如何锐化或柔化固体表面的光照贴图 - 在高对比度区域之间效果最明显,比如阴影。请注意,增加额外的光源不会显著影响性能,减少光照规模(如提高分辨率),将会直接增加地图文件的大小和内存使用。
prop_static
不同于其它模型实体,prop_static是静态发光的:一个光照值存储给每一个顶点,以及模型的碰撞网络 (或者,可选的参考网络),被用来计算光照贴图阴影。
有以下选项:
  • disableshadows - 不要投射光照贴图阴影
  • disablevertexlighting - 只为实体模型存储一个光照值。
  • disableselfshadowing - 防止实体从自身投射阴影。
  • ignorenormals - 忽略法线的顶点数据来计算照明。这对叶子之类的东西非常有用,还有其他薄法线网络。

动态光源

Template:Tip:zh-cn

env_projectedtexture过道的照明。
light_dynamic
:一个简单的,单向的,可移动的,可开关和可调整的动态光。
point_spotlight:一个在它射中的表面产生动态的聚光灯效果的动态光源。
npc_spotlight:一个聚光灯NPC,类似于point_spotlight,但是拥有追踪目标的能力。
env_projectedtexture
一个拥有贴图的灯而不是纯色的动态光,而且还有逼真的动态阴影。影响所有的表面,它可以接受照明,而且可以用于第二章里玩家的手电

动态阴影

Template:Tip:zh-cn

Template:Warning:zh-cn

Template:Warning:zh-cn

Template:Note:zh-tw

Template:Note:zh-tw

Template:Note:zh-tw

shadow_control:一个点实体,用于控制动态阴影预测地图,包括最大距离投射,方向投射,以及锐利度/散漫度。
info_no_dynamic_shadow:一个点实体,用来列出哪些固体表面不接收动态阴影。
prop_physics实体:拥有一个"shadowcastdist"键值,来设置这个物体投射多远的动态阴影。
prop_dynamic实体:拥有一个"disableshadows"键值,以及"enableshadows"和"disableshadows"输入来控制动态阴影投射。
NPC实体:拥有prop_dynamic阴影控制,再加上一个"disablereceiveshadows"
待完善: to prevent...?

丁达尔效应

丁达尔效应是因为光在透明介质中通过悬浮颗粒(胶体)产生的散射而形成的。比如大雾里的车大灯。

  • 光晕(发光动画)效果:
  • env_sprite - 一个实体,用于创建全方位的光晕或眩光效果。
  • env_lightglow - 一个不对称的发光体(对于高对比度的区域)。
  • env_sun - 添加一个高亮的haloed给天空盒,来表示太阳或月亮的位置。
  • 光束(体积光)效果:
  • 固体贴图:models/effects/vol_light001
  • 固体贴图:models/effects/vol_light002
  • 模型models/Effects/vol_light.mdl - 用于prop_static

公开的值

汽车大灯

亮度(Brightness)231 223 192 Template:Note:zh-tw

17号城的白天
亮度237 218 143 800
环境(Ambience)190 201 220 100
莱温霍姆的夜晚
亮度175 230 239 50
环境43 45 57 5
联合军的灯
亮度147 226 240 3000
环境N/A
钨灯泡
亮度254 216 146
环境N/A
荧光灯
亮度159 237 215
环境N/A

欲知跟天空盒材质相搭配的值,请查看天空列表

注意

  • 命名一个光源会使其更加"昂贵"(需要消耗更多资源)。仅当你需要的时候才命名光源。多个光源共享一个名字比起使用不同的名字要"便宜"得多。
  • light_dynamic非常"昂贵",而且在某些系统上甚至不会出现。
  • 基础的光源实体不会伴随着可见的物体出现(如灯泡)。为此,你需要一个道具。请查看HL2光源道具获取列表。
  • 基础光源实体不会伴随着"光晕"出现,即便你希望在大雾或朦胧的区域看到它们。要实现这一点,无论是编译还是运行地图都要启用HDR,或者添加一个point_spotlight(除非需要否则设置动态光照为"关")或者env_lightglow实体。
  • 除非你运行vrad(或等价的)否则地图将不会发光 。除非地图无泄漏,否则Vrad无法正确运行,也无法计算出真实的光照反射。
  • 一些贴图提供它们自己的光,可以使用模组目录里的lights.rad,或者使用sourcesdk/bin里的那个就可以做到。
  • 移动基于物体的固体,它们的发光方式也不会改变。它们的光照只会根据它们在Hammer里的位置来计算。(比如,一个在黑暗房间里的固体,将其带到高亮房间里,它也不会变亮。)

控制台命令

mat_fullbright 2. 白色高亮的物理道具看起来像是bug;其实当它们在运动的时候算是正常的。
mat_fullbright <0-2>
0是正常的照明。
1是全亮的灯光,一切都是100%地发光。
2在橙盒里已经有了说明,并且是"仅照明"。它使用纯无色替换了所有贴图图像,让你看到究竟是什么在发光,其位置和方式。

参见

外部链接