求生之路地图制作吧 关注:1,187贴子:4,889
  • 10回复贴,共1

【教程】灯光

只看楼主收藏回复



1楼2014-08-07 17:54回复

    像这张图


    2楼2014-08-07 17:55
    回复
      2025-06-07 04:35:36
      广告
      静态光源
      小技巧: 静态光源被编译为光照贴图,它照亮固体和模型,以及Cubemaps, 提供静态反射。 它对渲染器来说是空闲的,因为附加的静态光在一开始就已经被处理了。
      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 - 忽略法线的顶点数据来计算照明。这对叶子之类的东西非常有用,还有其他薄法线网络。


      3楼2014-08-07 17:56
      回复
        动态光源
        小技巧: 动态光源是在运行中计算的,所以渲染起来很"费劲"
        light_dynamic
        :一个简单的,单向的,可移动的,可开关和可调整的动态光。
        point_spotlight:一个在它射中的表面产生动态的聚光灯效果的动态光源。
        npc_spotlight:一个聚光灯NPC,类似于point_spotlight,但是拥有追踪目标的能力。
        env_projectedtexture
        一个拥有贴图的灯而不是纯色的动态光,而且还有逼真的动态阴影。影响所有的表面,它可以接受照明,而且可以用于第二章里玩家的手电。


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


          5楼2014-08-07 17:57
          回复
            丁达尔效应
            丁达尔效应是因为光在透明介质中通过悬浮颗粒(胶体)产生的散射而形成的。比如大雾里的车大灯。
            光晕(发光动画)效果:
            env_sprite - 一个实体,用于创建全方位的光晕或眩光效果。
            env_lightglow - 一个不对称的发光体(对于高对比度的区域)。
            env_sun - 添加一个高亮的haloed给天空盒,来表示太阳或月亮的位置。
            光束(体积光)效果:
            固体贴图:models/effects/vol_light001
            固体贴图:models/effects/vol_light002
            模型models/Effects/vol_light.mdl - 用于prop_static。
            参见渲染模式,特别是世界空间发光。


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


              7楼2014-08-07 17:58
              回复
                控制台命令
                mat_fullbright <0-2>
                0是正常的照明。
                1是全亮的灯光,一切都是100%地发光。
                2在橙盒里已经有了说明,并且是"仅照明"。它使用纯无色替换了所有贴图图像,让你看到究竟是什么在发光,其位置和方式。


                8楼2014-08-07 17:58
                回复
                  2025-06-07 04:29:36
                  广告

                  mat_fullbright 2. 白色高亮的物理道具看起来像是bug;其实当它们在运动的时候算是正常的。


                  9楼2014-08-07 17:59
                  回复
                    本教程来自valve开发软件官网


                    10楼2014-08-07 17:59
                    回复
                      请问一下light放置后有光影错误怎么办


                      IP属地:重庆来自Android客户端11楼2021-12-10 02:37
                      回复