簡體   English   中英

OpenGL-透視問題

[英]OpenGL - Perspective Issue

我只想創建一個透視圖,在這個視角中,相機的眼睛會在:(2,2,2)處,看着原點。 我正在嘗試使用gluLookAt()glFrustum() ,但由於某種原因,雖然它是渲染,但我的對象看起來非常扭曲:

glMatrixMode( GL_PROJECTION );
glLoadIdentity();
glFrustum (-1.0, 1.0, -1.0, 1.0, 1.0, 500.0);

... 

gluLookAt (-2.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0);

我究竟做錯了什么?

編輯 :這是屏幕截圖。 左側定義了圍繞y軸掃描的輪廓曲線。 它應該是透視圖中的圓柱體,但它是......扭曲的。

在此輸入圖像描述

編輯2 :另外,透視圖中的那些軸設置如下,我知道這是不正確的:

// draw the axis
   glBegin(GL_LINES);
     // x
     glVertex3f(500.0, 0.0, 0.0);
     glVertex3f(-500.0, 0.0, 0.0);
     // y
     glVertex3f(0.0, -500.0, 0.0);
     glVertex3f(0.0, 500.0, 0.0);
     // z
     glVertex3f(0.0, 0.0, -500.0);
     glVertex3f(0.0, 0.0, 500.0);

   glEnd(); 

編輯3 :此外,該形狀的頂點都沒有x,y或z值大於1.0 ..

我究竟做錯了什么?

我不認為你在做錯任何事。 您希望在左窗格中擁有的視圖類型通常是使用正交投影完成的。 你看到的扭曲只是透視扭曲; 您並不是在垂直於曲線看(曲線位於XY平面,而是從某個角度看XY平面)。

邊注:

投影矩陣僅定義OpenGL的“ 鏡頭 ”。 不得用於放置“相機”。 任何視點定位( 視圖 )都定義為模型視圖轉換的一部分。 因此,可以將gluLookAt用於模型視圖矩陣。

你的視錐體被設置為好像屏幕是方形的。 如果您的屏幕不是正方形,這將嚴重扭曲對象。

此外,如果物體靠近相機,近距離和遠距離會影響圖像。

還有一件事,你在gluLookAt中的向上軸指向下方。

發布屏幕快照將有助於識別問題。

暫無
暫無

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

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