我試圖在WebGL中模擬像glPolygonMode(GL_BACK, GL_LINE)
這樣的東西。我可以使用模式LINES
而不是TRIANGLES
進行繪製,但我無法看到WebGL如何自動確定某個特定的細分是否朝後,因爲細分不會面向任何位置。根據「法線」剔除線條和點
爲了解決這個問題,我將原始三角形的法線傳遞給着色器。在通常的模型視圖變換(旋轉,縮放,平移)下計算變換很容易;那麼我只是通過逆的轉置來乘以法線。根據正常點進入屏幕還是外出,我可以決定是否剔除線段。
但是,這是不完全正確的。我還需要投影矩陣的逆矩陣來考慮透視失真。
我使用CanvasMatrix4.frustum()
或CanvasMatrix4.ortho()
函數來獲得投影矩陣。是否有公式或函數可用於它們的反轉?
或者,有沒有更好的方法來模擬像glPolygonMode(GL_BACK, GL_LINE)
這樣的東西?
您可能喜歡[此解決方案](http://codeflow.org/entries/2012/aug/02/easy-wireframe-display-with-barycentric-coordinates/) – gman
我嘗試了一種類似於重心的解決方案,但在使用胖線時,我看不出它像'GL_LINE'多邊形模式。它看起來像部分滿臉,但很奇怪。 – user2554330