2014-04-16 77 views
0

我想在旋轉的多維數據集面朝遠離相機時交換紋理;檢測這些面並不完全等效,但非常類似於隱藏面去除。是否有可能掛鉤內置背面剔除功能/深度緩衝區來確定這一點,特別是如果我想將其擴展到更復雜的多邊形?掛鉤隱藏表面去除/背面剔除以交換WebGL中的紋理?

有一個簡單的解決方案使用點產品描述here,但我想知道是否有可能掛鉤到現有的功能。

回答

0

我不認爲你可以掛鉤到內部的WebGL處理,但即使有可能它不會是你最好的方式。這樣做需要您的GPU以三角形爲基礎切換當前紋理,與內部緩存混淆等,一般情況下 - 我們的GPU不喜歡if命令。

但是,您可以使用第一個紋理渲染網格並啓用面部剔除,然後將剔除面部方向設置爲相反並使用第二個紋理渲染網格。通過這種方式,您可以在正面和背面三角形上獲得不同的紋理。

正如我想到的 - 如果你有一個correct網格,使用面部剔除,你不應該有任何區別,因爲你永遠不會看到背面,所以唯一有用的方法是透明網格或不是如此正確封閉的網格,比如廣告牌。如果你想在透明度中使用這種方法,那麼你需要仔細選擇正確的渲染順序。