2016年4月29日 星期五

工具材質 - Areaportal


使用Areaportal優化地圖
AreaportalOccluder有點像,差別在...
想像Areaportal是把區域內的東西遮蔽,
Occluder是把Occluder面對的東西遮蔽。

不同的特性是:
Occluder只能遮蔽模型,
Areaportal能遮蔽固體與模型。
(這裡所指的固體就是Brush)

講白話一點,這2種材質就是告知遊戲引擎,
那邊的東西被牆擋住,我根本看不見!

不使用優化材質的結果:
我明明看不見,卻讓我全部看到,
遊戲引擎勢必要全部渲染來讓你看到,
結果增加了玩家端的負擔,FPS也必然下降。

1. 使用Areaportal材質,必須搭配func_areaportal這項功能。


2. 我製作了2間一樣的房間,並開了一個門,
    裡面放了模型與Brush製作的箱子。


3. 但是我只在右邊的房間放Areaportal,


4. 測試地圖時,在控制台打上,mat_wireframe 1,
    這樣你可以很清楚的看見,有無Areaportal的差異性。



5. 如果你做出很多門的格局,例如:3個門
    那就必須依照地圖格局去做封閉的動作。
    並不是有開孔就封住,你必須自己辨別這個區域該怎麼封。
    


6. 放置錯誤地方的Areaportal會造成編譯地圖出現錯誤警告。
    錯誤使用Areaportal範例:
    多開一個孔,沒有封閉它。


7. 錯誤使用Areaportal範例:
    多做一個Areaportal。


    可以依照編譯出來的錯誤號碼,去尋找該錯誤固體。
    使用View -> Go to Brush Number(Ctrl+Shift+G)



8. 錯誤使用Areaportal範例:
    編譯顯示一堆錯誤。
    這時的號碼只是顯示某Areaportal附近並沒有完整的封閉。
    此時必須自行尋找該區域的錯誤位置。


Areaportal 使用時機、用法
當地圖已完成,你必須到地圖內尋找必須優化的地點,
也有可能測試的結果,這張地圖根本不必使用Areaportal。
在控制台打上,
mat_wireframe 1
mat_wireframe 2
mat_wireframe 3
三種即時渲染畫面。

Areaportal 必須放置在Brush的面上,厚度通常與Brush切齊。
假設開了一個門,門的範圍內有Models與func_detail,
你必須跳過這2個項目,把Areaportal完整的封閉在Brush內。


Valve更詳細的說明 - func_areaportal

沒有留言:

張貼留言