有沒有辦法獲得3d世界中對象的屏幕座標?知道對象/模型的屏幕座標的Objective-c OpenGLES
回答
只需實現OpenGL管線的轉換:modelview,projection,perspective devide,viewport。用glGetDoublev和glGetIntegerv查看當前矩陣。
然後,您必須計算投影矩陣時間modelview矩陣= MVP。
現在對於每個頂點v計算MVP * v。
然後計算v/= v.w;
因此,你得到範圍[-1,1] x [-1,1]中的座標,最後一件事是縮放並將其轉換爲[x,x + w] x [y,y + h](其中是視口的值)。
你也可以看看glFrustum,glViewport的OpenGL參考信息頁面,看看所有這些轉換是如何完成的。
哇哈哈,我不知道那麼多openGLES。所以funcion gluproject是不是implmeneted?謝謝btw。 – marcg11 2011-05-13 20:41:37
我不知道,我只有桌面GL的經驗,其中gluProject實施。如果它在那裏,你可以使用它(它實際上就是我寫的)。但是,也許genpfault與gluProject的鏈接爲您提供了一個比我的答案更好的解釋。有了這些解釋,你應該很容易實現自己。 – 2011-05-13 20:45:25
我會看看。我不知道有多少桌面opengl與iPhone的openglES不同。 – marcg11 2011-05-13 21:53:24
- 1. webgl - 模型座標到屏幕座標
- 2. 在屏幕座標中轉換對象
- 3. 將屏幕座標轉換爲模型座標
- 4. 使用2D屏幕座標獲取3D模型座標gluUnproject
- 5. 如何從屏幕座標獲取對象座標?
- 6. 將對象座標轉換爲屏幕座標Android OpenGL ES
- 7. 將屏幕座標轉換爲對象座標在Ipad上的OpenGL ES 2.0
- 8. 屏幕座標
- 9. GetWindowRect座標不是屏幕相對的
- 10. Android屏幕座標
- 11. OpenGL屏幕座標
- 12. 模型到屏幕座標的混亂GLSL着色器
- 13. SharpGL屏幕/光標座標到模型視圖
- 14. 獲取Papervision 2.0中3D對象的2D屏幕座標
- 15. Java語言就能屏幕座標的任何對象
- 16. 屏幕座標到等距座標
- 17. OpenGL座標匹配屏幕座標?
- 18. OpenGL場景座標到屏幕座標
- 19. 對話框單位到屏幕座標
- 20. 如何轉換屏幕座標以形成相對座標(winforms)?
- 21. 如何知道當前屏幕是Android中的全屏模式
- 22. 邏輯和屏幕座標
- 23. 更改屏幕座標
- 24. OpenGLES20屏幕座標NDC
- 25. 取所有屏幕座標
- 26. 排序屏幕座標
- 27. event.getX和屏幕座標
- 28. Andengine縱向屏幕座標
- 29. JOGL屏幕座標關閉
- 30. SVG到屏幕座標
是不是有一個「更簡單的方法」? – marcg11 2011-05-13 18:43:30
@ marcg11:編輯。這幾乎是最簡單的方法。 – genpfault 2011-05-13 21:33:42
嘿,非常感謝,我將其標記爲answererd。 – marcg11 2011-05-14 12:53:21