这篇条目有关 Source引擎。如需详情,点击这里。

env_cubemap

From Valve Developer Community
< Zh
Jump to navigation Jump to search
English (en)Deutsch (de)Français (fr)한국어 (ko)Português do Brasil (pt-br)Русский (ru)中文 (zh)中文(臺灣) (zh-tw)Translate (Translate)
一个反射球的例子,包含了一个静态模型(白车)、一个图标和一些印花。注意物理模型(绿车)不会出现在反射球中,因为它不是静态的。
Env cubemap.png

env_cubemap是一个内部的(en)点实体(en),可在所有的 起源 起源 游戏中使用。 当执行buildcubemaps(en)控制台命令时,该实体指定反射球(en)相机拍摄的位置。有$envmap(en)材质(en)会使用离它最近的反射球作为反射影像。

Note.png注意:这是一个内部实体。 当地图由VBSP编译时,它将被处理然后被删除:当地图运行时它不存在
Note.png注意:反射球会包含静态道具、发光图标、印花(如血迹和玩家的喷漆)、你在第一人称模式中手电的光照。所以在生成反射球的时候请关掉手电,否则你所照的地方在反射球里面也会变亮。

键值

反射品质的对比。
反射球大小(cubemapsize) <choices>
反射球的分辨率。注意:分辨率在实际游戏中会是你选择的分辨率的六倍,因此高的分辨率会带来非常大的文件!

¹ - 要渲染分辨率高于256x256的反射球,见(en)

固体面(sides) <sidelist(en)>
可选的强制固体面,强制它们以这个面而非最近的面作为反射球产生的位置。要选择面,按下Pick键,然后在3D视图中选中它们。按住 Ctrl 切换这个面的选中状态。

高分辨率的反射球

4k.jpg

关闭Smart Edit,键入10或更大的值。这将把分辨率设为2的更高次幂(512×512、1024×1024等)。

Warning.png警告:反恐精英:全球攻势里面试图生成1024x1024的反射球会导致引擎错误。
Note.png注意:制作反射球要求你的屏幕各方向分辨率至少是反射球的4倍。如果你的屏幕不够大,制作的时候请使用动态超分辨率(DSR)。
Note.png注意:高分辨率的反射球可能会大大增加地图的文件体积。因此,如果你考虑文件体积、多人地图下载时间的话,应将之偶尔用于镜子、大理石表面之类的纹理。

放置

声明反射球的应用范围很简单,只要在地图的某个区域里放一个env_cubemap实体即可。当地图使用VBSP(en)编译的时候,固体表面会自动与最近的env_cubemap关联并使用它所生成的反射球(反射球也可以应用于特定的固体表面,在反射球的属性中设置);运动的实体会动态地改变所使用的反射球。为了美观和性能,恰当地选择反射球的位置是很重要的。

反射球有几种固定的作用,应据此放置。一些反射球是给静态固体表面的反射用的。另外一些是给玩家和NPC(en)实体的。其余的是给非玩家反射实体的。为了确保视觉和性能的利益最大化,最优的env_cubemap实体放置要与这些作用相对应。以下是一些简单的做法:

  • 如果反射球是给NPC或玩家用的,env_cubemap实体,应该放在地面上方,眼睛的高度(通常是Hammer中64单位)。这样,从玩家的角度看反射球就会最准确地反映世界。
Tip.png提示:有一个方法是在地面上到处复制粘贴env_cubemap实体,使用Hammer的实体报告功能选择所有env_cubemap实体,然后用变换工具Ctrl+M将它们向上移动64单位。
  • 如果反射球是给静态固体表面的反射用的,env_cubemap实体应该与所有固体表面保持一定距离(例如Hammer中16单位)。
  • 视觉上有对比的区域需要不同的反射球。例如一个亮黄色灯光的走廊挨着一个暗蓝色灯光的房间,那么它们就需要不同的反射球。没有两个env_cubemap实体的话,其中一个区域的固体、实体上的反射和镜面高光看起来会不正常。
  • 地点的改变,如房间到房间、房间到外面、有大量视觉变化的地点改变,需要在连接点两边等距离地各放一个env_cubemap实体。例如,房间两边离门洞各16单位。这样,反射球才能平滑地在地点之间过渡,避免反射球把外界反映到房间里面,反之亦然。
  • 设置在非常黑暗的区域的反射球,以及可玩区域以外的反射球,都可以采用很低的分辨率。暗的反射球充其量反射几个光点,采用低的分辨率不会造成多大视觉上的差异。

制作反射球

关于通用和各游戏专用的反射球制作,见反射球(en)页面。

参见

weapon_cubemap