[英]OpenGL: the ultimate coordinate system confusion solution?
我厭倦了思考我的同伙們在每種情況下如何工作。
我聽說可以通過以下代碼翻轉Y軸:
glScalef(1, -1, 1);
但是我應該嗎? 這不會破壞其他一些外部功能和照明等嗎?
我可能會說,習慣於opengl默認值是擺脫混亂的最快方法。
這個問題沒有正確的是/否答案。 調用glScalef(1, -1, 1)
意味着使用左手坐標系而不是右手坐標系,這在歷史上一直是例如Direct3D和RenderMan接口的選擇。 有人認為將正z軸指向屏幕而不是指向屏幕更直觀(這是左手坐標系的一種版本,指向下方的y軸是另一種)。
如果選擇切換坐標系,則必須更改OpenGL中的某些標准設置才能使其正常工作。 例如,您可能要調用glCullFace(GL_FRONT)
(或反轉發送到OpenGL的所有三角形的順序)。
我可能是錯的,但可能會使您的模型由內而外。 您可能還需要交換頂點纏繞順序。 但是,如果使用雙面多邊形,則無需擔心。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.