2012-05-05 82 views
-1

假設我在OpenGL中有一個透視圖並選擇給定深度處的一個點。假設它在z = -10。我怎麼知道這個點有哪些實際的x座標和y座標?擁有正視圖很容易,因爲每個深度都是一樣的。但從一個角度來看:我如何找到這些x-y值?OpenGL透視x-y座標到正交

回答

0

您提供的座標基本上是「世界」座標 - 即在您構建的虛擬世界中存在事物的地方。換句話說,你使用的座標總是正交的。例如,如果我打算做一個房子的3D模型,我可以設置它,所以我在實際的腳上工作,所以當我可以畫一條從0,0到0,10的線條到代表正好10英尺長的東西。無論我是否近距離觀看,這將保持10英尺,因此它充滿了我的視野,或者從很長的一段距離,所以它只有幾個像素長。

只有在顯示對象時才進行透視變換。我根本不會將它輸入到系統中。

如果您要求計算某個對象的屏幕座標,那麼可以。通常的做法是用gluUnProject。至少在我的經驗中,你最終需要做到這一點相對不尋常。

有一次您關心的是當您使用鼠標在屏幕上選擇某些東西時。雖然它的可能用gluUnProject做,OpenGL有一個選擇模式專門用於這種目的,它的工作得很好。

+0

謝謝你的回答傑裏。背景目標實際上是在這裏陳述:http://stackoverflow.com/questions/10457834/how-do-i-apply-proper-perspective-to-this-opengl-es-texture/10458680#10458680,並抱歉beeing不清楚,它是iPad的iOS應用程序,因此OpenGL版本實際上是嵌入式系統。正如你所說,這個問題與使用鼠標(通過觸摸)選擇一個區域並找出頂點實際具有哪個座標有關。你知道gluUnProject是否仍然適用於ES嗎? – Nicke

+0

@Nicke:它不是內置的,但至少有一個獨立的[re-implementation](http://softwareprodigy.blogspot.com/2009/08/gluunproject-for-iphone-opengl-es.html)。 –

+0

嗯,想更多。它仍然可能不是我要求的東西。可以說,z值對於我在顯示屏上選擇的給定點是已知的。那麼問題應該只是某種投影功能,我是否正確?我的意思是,假設沒有一個真實的物體,比如立方體,存在於我觸摸的世界中。 – Nicke

0

查看gluProject作爲將光標位置投影到「世界」位置(和gluUnproject作爲找出您的對象在屏幕上的位置的方式)的一種方式。

+0

好吧,如果我不清楚,我很抱歉,但這也是OpenGL ES for iOS的屬性? – Nicke