2012-07-30 82 views
0

我知道用奇數個頂點顛倒三角形條的方向我可以顛倒頂點; ABCDE成爲EDCBA。如何用偶數個頂點倒轉三角形條?

但是,這似乎不適用於具有偶數個頂點的三角形條。

我已經嘗試了一些我已經閱讀過的有關在線的技術,但是,他們中沒有一個看起來可行。

我已經嘗試將ABCDEF轉換爲BADCFE,但是,當渲染時,我在網格中遇到了奇怪的故障。

我也讀過,只是翻轉B和C應該工作,但渲染仍然不會翻轉後續三角形的方向。

是否可以通過僅改變條的索引來顛倒三角形帶的方向與偶數個頂點?

我只能訪問此時頂點的二進制索引列表,所以我不能添加退化三角形,或者改變列表中索引的數量。

回答

0

您無法更改任意長度的三角形條的纏繞順序。您只能更改奇數長度條帶的纏繞順序。不是沒有改變地帶本身。

考慮這條:

Triangle strip

如果切換中間頂點對(我原來的算法,我刪除)的順序,你得到的三角形(使用當前號碼):

(0,2,1),(2,1,4),(1,4,3),...

通知第二個三角形:2,1,4這是一個完全不同的三角形;這不是真的在這個地帶。也不是1,4,3.

這個出現去工作,因爲它覆蓋相同的區域。但它實際上並不奏效,因爲它繪製了一組不同的三角形。值將以不同的方式插值,結果將是錯誤的。也許不是明顯是錯,但錯了。

沒有任何算法可以採用任意三角形條並反轉其排列順序。根據它們的性質,三角帶受到它們的纏繞順序的約束,並且不能在任何情況下逆轉它。

這就是爲什麼API有辦法簡單地扭轉預期的纏繞順序。你剛纔提到:

我的項目涉及黑客攻擊過程中文件馬里奧賽車Wii

爲什麼不把他們的三角帶,用他們的纏繞,並把它們變成一個三角形列表代替繪圖一條。這樣,您就可以更輕鬆地更改數據中的繞組。

+0

尼科爾,感謝您的意見。我發現了其他資源,這些資源說重複一個平坦三角形的第一個頂點來引入退化三角形,然後倒轉條中剩餘的三角形。將它們變成三角形列表的問題是,目前,我無法更改文件的大小。不過,我現在要看看是否有可能這樣做,我可以做到這一點。謝謝你的幫助! – 2012-08-01 02:11:40

+0

@Eidola:你不必改變文件。做它作爲加載過程的一部分。 – 2012-08-01 02:59:39

+0

我正在黑客文件,然後由Wii加載。我無法控制加載過程,只有二進制文件本身。 – 2012-08-01 04:03:05

0

在試條上添加一個退化三角形,然後將其倒轉。

+0

我早就停止了這個項目的工作,很驚訝地看到另一個帖子在這裏。 雖然你的回答是正確的,但並不是那麼簡單,因爲我正在處理二進制斑點,所以沒有地方堅持退化的三角形。 我最後不得不加載軌道文件,解析文件,創建新的三角形條並重寫一個新的文件......它工作。 :) – 2013-12-24 21:54:20