簡體   English   中英

PyopenGL-如何在標准設備坐標中移動相機視錐以改變視角?

[英]PyopenGL - how to move camera frustrum to change perspective in normalized device coordinates?

我想用Pyopengl從鳥的角度渲染一些東西。

“鳥”相機應該能夠在X,Y上移動,並繞Z向量旋轉。

它可以工作,但是我想將“小鳥”放在屏幕的底部,因為屏幕的頂部應該在移動方向上。

但是,此選項並不令人滿意。 我真正希望的是仍然向下看(Z方向),但要有某種偏移。

換句話說,它應該看起來像我裁剪屏幕的下部,而只使用上部。

下圖說明了該問題:

在此處輸入圖片說明

(原始圖取自http://www.songho.ca/opengl/gl_projectionmatrix.html

我該如何實現?

最后,我找到了解決方案。 魔術是以下命令:

glViewport (offset_X, offset_Y, screen_X, screen_Y)

哪里:

  • offset_X相機在X軸上的偏移
  • offset_Y相機在Y軸上的偏移量
  • screen_X您在X軸上使用的屏幕分辨率
  • screen_Y您在Y軸上使用的屏幕分辨率

對於有問題的情況(如果將攝像頭放置在距離屏幕底部屏幕高度25%的位置):

gluPerspective(45, (screen_X / screen_Y), 0.1, 2000.0)
glViewport (0, -int(screen_Y*0.75), screen_X, int(screen_Y*1.75) )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM