env_cubemap

From Valve Developer Community
Jump to: navigation, search
English Deutsch Français Русский 简体中文 
Env cubemap.png
env_cubemap是一個內部點實體,可用於所有Source遊戲。 當buildcubemaps指令執行時,用來指定反射球產生的位置。物件有使用$envmap材質會使用離他最近的反射球當作反射的影像。
Note.png 注意:這是一個內部實體。 當地圖由VBSP編譯時,它將被處理然後被刪除:當地圖運行時它不存在

鍵值

反射品質的對比。1x1完全不會反射,所以沒有包含。
反射球大小(cubemapsize) <choices>
反射球的解析度。請記得你選擇的解析度實際會乘以6倍,因此高的解析度會帶來非常大的檔案!
  • 0: 預設(通常是 32x32,看是什麼遊戲)
  • 1: 1x1
  • 2: 2x2
  • 3: 4x4
  • 4: 8x8
  • 5: 16x16
  • 6: 32x32
  • 7: 64x64
  • 8: 128x128
  • 9: 256x256
  • 10: 512x512 ¹ !FGD
  • 11: 1024x1024 ¹ !FGD
  • 12: 2048x2048 ¹ !FGD

¹ - 要渲染解析度高於256x256的反射球,見

塊狀面體(sides) <sidelist>
促使實體使用你所選擇的面體而非他四周的影像作為反射球產生的位置。要指定面體,按下Pick鍵,在3D view的視窗點選面體。按Ctrl切換這個面體的選中狀態。

高解析度的反射球

4k.jpg

關閉Smart Edit,鍵入10或更大的值。這將把解析度設為2的更高次冪(512×512、1024×1024等)。

Note.png 注意:製作反射球要求你的熒幕各方向解析度至少是反射球的4倍。如果你的熒幕不夠大,製作的時候請使用動態超解析度(DSR)。
Note.png 注意:高解析度的反射球可能會大大增加地圖的檔案體積。因此,如果你考慮檔案體積、多人地圖下載時間的話,應將之偶爾用於鏡子、大理石表面之類的紋理。

放置

聲明反射球的應用範圍很簡單,只要在地圖裡面放一個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單位。這樣,反射球才能平滑地在地點之間過渡,避免反射球把外界反映到房間裡面,反之亦然。

製作反射球

關於通用和各遊戲專用的反射球製作,見反射球頁面。

參見

weapon_cubemap