2012-04-13 55 views
0

有没有一种方法来定义或获取在gluPerspective方法创建的观看视锥内可见的坐标?我的四合一不会显示。 这是初始化代码:观看视锥内的坐标

GL11.glMatrixMode(GL11.GL_PROJECTION); 
GL11.glLoadIdentity(); 
GLU.gluPerspective(45, width/height, 1, 100); 
GL11.glMatrixMode(GL11.GL_MODELVIEW); 
GL11.glViewport(0, 0, 800, 600); 
GL11.glClearColor(1, 1, 1, 1); 

这是渲染代码:

GL11.glLoadIdentity(); 
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT); 
GL11.glColor3f(0, 0, 0); 

GL11.glBegin(GL11.GL_QUADS); 

GL11.glVertex3f(1, 1, 5); 
GL11.glVertex3f(10, 1, 5); 
GL11.glVertex3f(10, 10, 5); 
GL11.glVertex3f(1, 10, 5); 

GL11.glEnd(); 

回答

2

这是初始化代码:

这不是初始化代码,这种状态设置。它属于渲染代码。在设置投影矩阵之前放置glViewport,glClearColor和glClearDepth是习惯性的(尽管不是必需的)。

您的四核可能不会显示,因为它超出了观看范围。在近平面gluPerspective的限制是

aspect = width/height 
fov_ = atan2(fov) 
right = near * aspect * fov_ 
left = -right 
top = near * fov_ 
bottom = -top