env_cubemap

env_cubemap是一個內部點實體,可用於所有Source遊戲。 當buildcubemaps
指令執行時,用來指定反射球產生的位置。物件有使用$envmap
的材質會使用離他最近的反射球當作反射的影像。
Contents
鍵值
- 反射球大小(cubemapsize)
<choices>
- 反射球的解析度。請記得你選擇的解析度實際會乘以6倍,因此高的解析度會帶來非常大的檔案!
¹ - 要渲染解析度高於256x256的反射球,見下。
- 塊狀面體(sides)
<sidelist>
- 促使實體使用你所選擇的面體而非他四周的影像作為反射球產生的位置。要指定面體,按下Pick鍵,在3D view的視窗點選面體。按Ctrl切換這個面體的選中狀態。
高解析度的反射球
關閉Smart Edit,鍵入10或更大的值。這將把解析度設為2的更高次冪(512×512、1024×1024等)。


放置
聲明反射球的應用範圍很簡單,只要在地圖裡面放一個env_cubemap
實體即可。當地圖用VBSP編譯的時候,固體表面會自動與最近的env_cubemap
關聯並使用它所生成的反射球(反射球也可以應用於特定的固體表面,在反射球的屬性中設置);運動的實體會動態地改變所使用的反射球。為了美觀和性能,恰當地選擇反射球的位置是很重要的。
反射球有幾種固定的作用,應據此放置。一些反射球是給靜態固體表面的反射用的。另外一些是給玩家和NPC實體的。其餘的是給非玩家反射實體的。為了確保視覺和性能的利益最大化,最優的env_cubemap
實體放置要與這些作用相對應。以下是一些簡單的做法:
- 如果反射球是給NPC或玩家用的,
env_cubemap
實體,應該放在地面上方,眼睛的高度(通常是Hammer中64單位)。這樣,從玩家的角度看反射球就會最準確地反映世界。

env_cubemap
實體,使用Hammer的實體報告功能選擇所有env_cubemap
實體,然後用變換工具Ctrl+M將它們向上移動64單位。- 如果反射球是給靜態固體表面的反射用的,
env_cubemap
實體應該與所有固體表面保持一定距離(例如Hammer中16單位)。 - 視覺上有對比的區域需要不同的反射球。例如一個亮黃色燈光的走廊挨著一個暗藍色燈光的房間,那麼它們就需要不同的反射球。沒有兩個
env_cubemap
實體的話,其中一個區域的固體、實體上的反射和鏡面高光看起來會不正常。 - 地點的改變,如房間到房間、房間到外面、有大量視覺變化的地點改變,需要在連接點兩邊等距離地各放一個
env_cubemap
實體。例如,房間兩邊離門洞各16單位。這樣,反射球才能平滑地在地點之間過渡,避免反射球把外界反映到房間裡面,反之亦然。
製作反射球
關於通用和各遊戲專用的反射球製作,見反射球頁面。