【发布时间】:2014-02-02 02:49:17
【问题描述】:
所以我对 openGL 编程还很陌生,现在只是复习一下基础知识。我知道我应该使用 VBO 之类的东西,但想先打点基础。我不会向您展示所有代码,只是绘制和设置场景的东西。
这是设置我的相机的小代码:
glClearColor(0.0f, 0.0f, 0.0f, 0.5f);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(70, width / height, 1, 1000);
glEnable(GL_DEPTH_TEST);
// Move the camera back to view the scene
glTranslatef(0.0f, 0.0f, -5.0f);
我试着像这样围绕原点创建它(我也从不画底面):
void drawtetrahedron(GLfloat angle)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glRotatef(angle, 0.0f, 1.0f, 0.0f);
glBegin(GL_TRIANGLES);
glColor3f(1.0f, 0.0f, 0.0f); //FRONT
glVertex3f(0.0f, 1.0f, 0.0f);
glVertex3f(1.0f, -1.0f, 1.0f);
glVertex3f(-1.0f, -1.0f, 1.0f);
glColor3f(0.0f, 1.0f, 0.0f); //RIGHT
glVertex3f(0.0f, 1.0f, 0.0f);
glVertex3f(0.0f, -1.0f, -1.0f);
glVertex3f(1.0f, -1.0f, 1.0f);
glColor3f(0.0f, 0.0f, 1.0f); //LEFT
glVertex3f(0.0f, 1.0f, 0.0f);
glVertex3f(-1.0f, -1.0f, 1.0f);
glVertex3f(0.0f, -1.0f, -1.0f);
glEnd();
}
当我的窗口第一次出现时,红色三角形看起来不错,但当我旋转它时,形状看起来有点扭曲。如果我一直旋转(我根本看不到红脸)它看起来很正常......我在这里错过了什么?
这里开始看起来很奇怪
非常感谢任何关于我做错(或一般)的openGL东西的指针! :D
【问题讨论】:
-
不平移投影矩阵。 ModelView 矩阵定义了您的查看转换。
-
谢谢你的小费好先生:)