查看视锥体内的坐标

时间:2012-04-13 14:46:56

标签: opengl

有没有办法定义或获取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();

1 个答案:

答案 0 :(得分:2)

  

这是初始化代码:

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

你的四边形可能没有出现,因为它超出了观看范围。在近平面上,gluPerspective的极限是

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