Zh/Lighting: Difference between revisions

From Valve Developer Community
< Zh
Jump to navigation Jump to search
m (fixed a pair of broken links (which were also broken in the English version).)
m (obsolete language category)
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{lang|Lighting|title=灯光}}
{{lang|Lighting|title=灯光}}
{{Abstract Mapping:zh-cn}}
{{Abstract Mapping:zh-cn}}


== 向导 ==
== 向导 ==
[[Image:Proper lighting example.png|right|thumb|一个拥有充足光线的房间的例子]]
[[File:Proper lighting example.png|right|thumb|一个拥有充足光线的房间的例子]]
* [[Adding Light|添加灯光]] - 一个关于如何设置一个基础的[[light]]实体的新手教程。
* {{L|Adding Light|添加灯光}} - 一个关于如何设置一个基础的{{L|light}}实体的新手教程。
* [[Intermediate Lighting|中级照明]] - 一个关于如何更详细地处理光源的教程。
* {{L|Intermediate Lighting|中级照明}} - 一个关于如何更详细地处理光源的教程。
* [[Advanced Lighting|高级照明]]
* {{L|Advanced Lighting|高级照明}}
* [[Constant-Linear-Quadratic Falloff|恒流线性二次衰减]] - 一个易于阅读的老CLQ光衰减系统的解释。
* {{L|Constant-Linear-Quadratic Falloff|恒流线性二次衰减}} - 一个易于阅读的老CLQ光衰减系统的解释。
* [[HDR]] - 高动态范围照明。
* {{L|HDR}} - 高动态范围照明。


== 类型 ==
== 类型 ==
=== 静态光源 ===
=== 静态光源 ===


{{tip:zh-cn|静态光源被编译为[[Lightmap|光照贴图]],它照亮[[brush|固体]][[model|模型]],以及[[Cubemaps]], 提供静态[[reflection|反射]]
{{tip|静态光源被编译为{{L|Lightmap|光照贴图}},它照亮{{L|brush|固体}}{{L|model|模型}},以及{{L|Cubemaps}}, 提供静态{{L|reflection|反射}}


它对渲染器来说是[[free|空闲]]的,因为附加的静态光在一开始就已经被处理了。}}
它对渲染器来说是{{L|free|空闲}}的,因为附加的静态光在一开始就已经被处理了。}}


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


=== 静态光接收器 ===
=== 静态光接收器 ===


;[[Brush|固体]]
;{{L|Brush|固体}}
:这个[[Hammer Face Edit Dialog|Hammer面编辑对话框]]工具'[[Lightmap Scale|光照贴图规模]]'可以用来控制如何锐化或柔化固体表面的光照贴图 - 在高对比度区域之间效果最明显,比如阴影。请注意,增加额外的光源不会显著影响性能,减少光照规模(如提高分辨率),将会直接增加地图文件的大小和内存使用。
:这个{{L|Hammer Face Edit Dialog|Hammer面编辑对话框}}工具'{{L|Lightmap Scale|光照贴图规模}}'可以用来控制如何锐化或柔化固体表面的光照贴图 - 在高对比度区域之间效果最明显,比如阴影。请注意,增加额外的光源不会显著影响性能,减少光照规模(如提高分辨率),将会直接增加地图文件的大小和内存使用。
;[[prop_static]]
;{{L|prop_static}}
:不同于其它模型实体,prop_static是静态发光的:一个光照值存储给每一个[[vertex|顶点]],以及模型的[[collision mesh|碰撞网络]] (或者,可选的[[reference mesh|参考网络]]),被用来计算光照贴图阴影。
:不同于其它模型实体,prop_static是静态发光的:一个光照值存储给每一个{{L|vertex|顶点}},以及模型的{{L|collision mesh|碰撞网络}} (或者,可选的{{L|reference mesh|参考网络}}),被用来计算光照贴图阴影。
:有以下选项:
:有以下选项:
:*<code>disableshadows</code> - 不要投射光照贴图阴影
:*<code>disableshadows</code> - 不要投射光照贴图阴影
Line 41: Line 40:


=== 动态光源 ===
=== 动态光源 ===
{{tip:zh-cn|动态光源是在运行中计算的,所以渲染起来很"[[expensive|费劲]]"}}
{{tip|动态光源是在运行中计算的,所以渲染起来很"{{L|expensive|费劲}}"}}


[[Image:Shadowmap.jpg|thumb|180px|[[env_projectedtexture]]过道的照明。]]
[[File:Shadowmap.jpg|thumb|180px|{{L|env_projectedtexture}}过道的照明。]]


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


=== 动态阴影 ===
=== 动态阴影 ===


{{tip:zh-cn|动态阴影只能由世界的[[model|模型]]投射出来(NPC,物理道具等),并且只能投射到[[brush|固体]]表面(来自静态和动态光源)。它们是在运行时计算,所以它们相当粗糙并且渲染起来相对比较[[showbudget|费劲]]。}}  
{{tip|动态阴影只能由世界的{{L|model|模型}}投射出来(NPC,物理道具等),并且只能投射到{{L|brush|固体}}表面(来自静态和动态光源)。它们是在运行时计算,所以它们相当粗糙并且渲染起来相对比较{{L|showbudget|费劲}}。}}  


{{warning:zh-cn|这些都不是真正的阴影,它们是从远处的投射者投来的程序(在代码中生成的)贴图。在Left 4 Dead(求生之路),Portal 2(传送门2)以及Alien Swarm(异型丛生),阴影的方向是在每个实体的基础上计算出来的,取决于距离实体最近的光。但不在Source2006/2007模组里,除非你应用[[Dynamic RTT shadow angles in Source 2007|Source2007里的动态DTT阴影角]]到你的模组。}}
{{warning|这些都不是真正的阴影,它们是从远处的投射者投来的程序(在代码中生成的)贴图。在Left 4 Dead(求生之路),Portal 2(传送门2)以及Alien Swarm(异型丛生),阴影的方向是在每个实体的基础上计算出来的,取决于距离实体最近的光。但不在Source2006/2007模组里,除非你应用{{L|Dynamic RTT shadow angles in Source 2007|Source2007里的动态DTT阴影角}}到你的模组。}}


{{warning:zh-cn|动态阴影有时候会射穿墙或地板,暴露玩家或物体的位置。如果你遇到这种情况,使用[[info_no_dynamic_shadow]]来解决这个问题。}}
{{warning|动态阴影有时候会射穿墙或地板,暴露玩家或物体的位置。如果你遇到这种情况,使用{{L|info_no_dynamic_shadow}}来解决这个问题。}}


{{note:zh-tw|只有当没有在[[QC]]里定义shadowlod的情况下,阴影才会由视觉网络"投射"出来。阴影的LOD只有低细节的网络,用于生成阴影。这些不适用于阴影地图制作(手电,[[env_projectedtexture]]。) }}
{{Note|只有当没有在{{L|QC}}里定义shadowlod的情况下,阴影才会由视觉网络"投射"出来。阴影的LOD只有低细节的网络,用于生成阴影。这些不适用于阴影地图制作(手电,{{L|env_projectedtexture}}。) }}


{{note:zh-tw|当它们重叠的时候,动态阴影不要互相或者与光源贴图融合。这可能会产生不良的“倍增”的效果,例如一个放置在物理道具桌子上的物理道具。你可以在动态实体上启用或禁用阴影来解决这个问题。}}
{{Note|当它们重叠的时候,动态阴影不要互相或者与光源贴图融合。这可能会产生不良的“倍增”的效果,例如一个放置在物理道具桌子上的物理道具。你可以在动态实体上启用或禁用阴影来解决这个问题。}}


{{note:zh-tw|动态阴影支持半透明。如果你的模型有不同程度的不透明度,它可以表现在阴影上。[http://img4.imageshack.us/img4/3627/parttrans.png 在这里可以看得到]。}}
{{Note|动态阴影支持半透明。如果你的模型有不同程度的不透明度,它可以表现在阴影上。[http://img4.imageshack.us/img4/3627/parttrans.png 在这里可以看得到]。}}


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


Line 73: Line 72:
[[Wikipedia:Tyndall effect|丁达尔效应]]是因为光在透明介质中通过悬浮颗粒(胶体)产生的散射而形成的。比如大雾里的车大灯。
[[Wikipedia:Tyndall effect|丁达尔效应]]是因为光在透明介质中通过悬浮颗粒(胶体)产生的散射而形成的。比如大雾里的车大灯。
* [[Wikipedia:Halo_(optical_phenomenon)|光晕]](发光动画)效果:  
* [[Wikipedia:Halo_(optical_phenomenon)|光晕]](发光动画)效果:  
:*[[env_sprite]] - 一个实体,用于创建全方位的光晕或眩光效果。
:*{{L|env_sprite}} - 一个实体,用于创建全方位的光晕或眩光效果。
:*[[env_lightglow]] - 一个不对称的发光体(对于高对比度的区域)。
:*{{L|env_lightglow}} - 一个不对称的发光体(对于高对比度的区域)。
:*[[env_sun]] - 添加一个高亮的haloed给[[Skybox|天空盒]],来表示太阳或月亮的位置。
:*{{L|env_sun}} - 添加一个高亮的haloed给{{L|Skybox|天空盒}},来表示太阳或月亮的位置。
* [[Wikipedia:Light beam|光束]](体积光)效果:
* [[Wikipedia:Light beam|光束]](体积光)效果:
:*固体贴图:<code>models/effects/vol_light001</code>  
:*固体贴图:<code>models/effects/vol_light001</code>  
:*固体贴图:<code>models/effects/vol_light002</code>
:*固体贴图:<code>models/effects/vol_light002</code>
:*模型<code>models/Effects/vol_light.mdl</code> - 用于[[prop_static]]
:*模型<code>models/Effects/vol_light.mdl</code> - 用于{{L|prop_static}}
* 参见[[Render Modes|渲染模式]],特别是[[Render Modes#World Space Glow (9)|世界空间发光]]''。
* 参见{{L|Render Modes|渲染模式}},特别是[[Render Modes#World Space Glow (9)|世界空间发光]]''。


== 公开的值 ==
== 公开的值 ==
;汽车大灯
;汽车大灯
亮度(Brightness)<code>231 223 192</code> {{note:zh-tw|从L4D2 SDK中获取的}}
亮度(Brightness)<code>231 223 192</code> {{Note|从L4D2 SDK中获取的}}
;17号城的白天
;17号城的白天
:亮度<code>237 218 143 800</code>
:亮度<code>237 218 143 800</code>
Line 100: Line 99:
:亮度<code>159 237 215</code>
:亮度<code>159 237 215</code>
:环境N/A
:环境N/A
欲知跟[[skybox|天空盒]]材质相搭配的值,请查看[[Sky List|天空列表]]
欲知跟{{L|skybox|天空盒}}材质相搭配的值,请查看{{L|Sky List|天空列表}}


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


== [[Console command|控制台命令]] ==
== {{L|Console command|控制台命令}} ==


[[Image:Mat fullbright 2.jpg|thumb|<code>mat_fullbright 2</code>. 白色高亮的物理道具看起来像是bug;其实当它们在运动的时候算是正常的。]]
[[File:Mat fullbright 2.jpg|thumb|<code>mat_fullbright 2</code>. 白色高亮的物理道具看起来像是bug;其实当它们在运动的时候算是正常的。]]


;<code>mat_fullbright <0-2></code>
;<code>mat_fullbright <0-2></code>
Line 121: Line 120:


== 参见 ==
== 参见 ==
* [[HL2 light props|HL2光照道具]]
* {{L|HL2 Light Props|HL2光照道具}}
* [[Color theory (level design)|色彩理论(关卡设计)]]
* {{L|Color theory (level design)|色彩理论(关卡设计)}}
* [[List_of_entities#Light_entities|光源实体]] - 一个光源实体的列表。
* [[List_of_entities#Light_entities|光源实体]] - 一个光源实体的列表。
* [[Intermediate_Lighting|中级照明]]
* {{L|Intermediate_Lighting|中级照明}}
* [[Advanced_Lighting|高级照明]]
* {{L|Advanced_Lighting|高级照明}}
* [[Window lighting|窗口照明]] - 教你如何模拟太阳光折射穿过窗口。
* {{L|Window lighting|窗口照明}} - 教你如何模拟太阳光折射穿过窗口。


== 外部链接 ==
== 外部链接 ==
Line 139: Line 138:
-->
-->


[[Category:Level Design:zh-cn]]
{{ACategory|Level Design}}
[[Category:Hubs:zh-cn]]
{{ACategory|Hubs}}
[[Category:Lighting:zh-cn]]
{{ACategory|Lighting}}
[[Category:Chinese]]
[[Category:Chinese]]

Latest revision as of 04:18, 22 August 2024

English (en)Español (es)Русский (ru)中文 (zh)Translate (Translate)
概括性的地图制作系列 讨论你的想法——帮助我们写你需要的文章和想法

弹药 | 生物 | 蚁狮 | 光束和激光 | 线缆与绳索 | 动态的天空与云雾 | 色彩理论 | 战斗 | 联合军 | 压缩(起源 1) | | 尘土、雾、烟 | 升降机 | 关卡转换 | 环境光效、太阳、天气、室外 | 爆炸 | 火焰 | 植被 | 玻璃和窗户 | 猎头蟹 | 生命值 | 梯子 | 光效 | 优化 | 物理 | 视网膜扫描仪 | 声效和音乐 | 特效 | 地形 | 火车 | 炮塔 | | 武器 | 僵尸

向导

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

类型

静态光源

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

静态光接收器

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

动态光源

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

动态阴影

Tip.png提示:动态阴影只能由世界的模型(en)投射出来(NPC,物理道具等),并且只能投射到固体(en)表面(来自静态和动态光源)。它们是在运行时计算,所以它们相当粗糙并且渲染起来相对比较费劲(en)
Warning.png警告:这些都不是真正的阴影,它们是从远处的投射者投来的程序(在代码中生成的)贴图。在Left 4 Dead(求生之路),Portal 2(传送门2)以及Alien Swarm(异型丛生),阴影的方向是在每个实体的基础上计算出来的,取决于距离实体最近的光。但不在Source2006/2007模组里,除非你应用Source2007里的动态DTT阴影角(en)到你的模组。
Warning.png警告:动态阴影有时候会射穿墙或地板,暴露玩家或物体的位置。如果你遇到这种情况,使用info_no_dynamic_shadow(en)来解决这个问题。
Note.png注意:只有当没有在QC(en)里定义shadowlod的情况下,阴影才会由视觉网络"投射"出来。阴影的LOD只有低细节的网络,用于生成阴影。这些不适用于阴影地图制作(手电,env_projectedtexture(en)。)
Note.png注意:当它们重叠的时候,动态阴影不要互相或者与光源贴图融合。这可能会产生不良的“倍增”的效果,例如一个放置在物理道具桌子上的物理道具。你可以在动态实体上启用或禁用阴影来解决这个问题。
Note.png注意:动态阴影支持半透明。如果你的模型有不同程度的不透明度,它可以表现在阴影上。在这里可以看得到
shadow_control(en):一个点实体,用于控制动态阴影预测地图,包括最大距离投射,方向投射,以及锐利度/散漫度。
info_no_dynamic_shadow(en):一个点实体,用来列出哪些固体(en)表面不接收动态阴影。
prop_physics(en)实体:拥有一个"shadowcastdist"键值,来设置这个物体投射多远的动态阴影。
prop_dynamic(en)实体:拥有一个"disableshadows"键值,以及"enableshadows"和"disableshadows"输入来控制动态阴影投射。
NPC实体:拥有prop_dynamic阴影控制,再加上一个"disablereceiveshadows"
待完善: to prevent...?

丁达尔效应

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

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

公开的值

汽车大灯

亮度(Brightness)231 223 192

Note.png注意:从L4D2 SDK中获取的
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

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

注意

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

控制台命令(en)

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

参见

外部链接