2013-12-12 61 views
0

比方說,我有一個具有以下兩個三角形的元件:不同座標系下的模型OpenGL ES如何轉換?

<triangle A="1018;655;0" B="1018;655;61,5" C="1030;655;61,5" /> 
<triangle A="1030;655;0" B="1077;655;0" C="1030;655;61,5" /> 

每個三角形有3個頂點其中0 1200之間和

由值現在我喜歡在OpenGL ES 2可視化這些元素

我現在正在做的是,尋找最大的價值,並通過這個值來分割所有的元素,以獲得0和1之間的新值。每個三角形的這個值,我的渲染器能夠可視化物體。

我不認爲這是正確的方法。

我得到了以下矩陣:模型,視圖,投影。我的計算機圖形課程是在一段時間之前,但是不可能使用默認的三角值並從對象空間到視圖/世界空間進行特定的轉換?

有什麼好的解決方案可用?或者我必須提供值介於0和1之間的對象,而我的方法是正確的方法。

回答

1

這取決於你在使用什麼。如果使用glOrtho(與glFrustum相反),則只需插入較大的值作爲參數,通常使用屏幕座標。

至於截錐體(更可能在你的情況),你仍然可以做同樣的事情,但你會改變視野(你會增加它的視角)。所以爲了保持這一切,你應該擴大模型或簡單地把它放在很遠的地方。請注意,將它放在很遠的地方可能需要增加平截頭體調用中的zFar參數。

通常情況下,你得到的模型對於你的場景來說要麼大到小,要麼是過小,但這不是簡單的矩陣調用無法處理的。所有你需要做的就是在繪製模型之前推動模型矩陣並縮放(glScalef),然後在繪製調用之後彈出它。這樣你應該得到想要的效果,其餘的代碼是完整的。

+0

感謝您的回覆。我也這麼想! – Frame91