以下是一个使用OpenGL实现三维图像渲染的简单示例代码:
#include <GL/glut.h> void init() { glClearColor(0.0, 0.0, 0.0, 0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45.0, 1.0, 0.1, 100.0); glMatrixMode(GL_MODELVIEW); glEnable(GL_DEPTH_TEST); } void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); // 绘制一个立方体 glBegin(GL_QUADS); // 正面 glColor3f(1.0, 0.0, 0.0); // 设置红色 glVertex3f(1.0, 1.0, -1.0); glVertex3f(-1.0, 1.0, -1.0); glVertex3f(-1.0, -1.0, -1.0); glVertex3f(1.0, -1.0, -1.0); // 后面 glColor3f(0.0, 1.0, 0.0); // 设置绿色 glVertex3f(1.0, 1.0, 1.0); glVertex3f(-1.0, 1.0, 1.0); glVertex3f(-1.0, -1.0, 1.0); glVertex3f(1.0, -1.0, 1.0); // 上面 glColor3f(0.0, 0.0, 1.0); // 设置蓝色 glVertex3f(1.0, 1.0, -1.0); glVertex3f(-1.0, 1.0, -1.0); glVertex3f(-1.0, 1.0, 1.0); glVertex3f(1.0, 1.0, 1.0); // 下面 glColor3f(1.0, 0.0, 1.0); // 设置紫色 glVertex3f(1.0, -1.0, -1.0); glVertex3f(-1.0, -1.0, -1.0); glVertex3f(-1.0, -1.0, 1.0); glVertex3f(1.0, -1.0, 1.0); // 左面 glColor3f(1.0, 1.0, 0.0); // 设置黄色 glVertex3f(-1.0, 1.0, -1.0); glVertex3f(-1.0, 1.0, 1.0); glVertex3f(-1.0, -1.0, 1.0); glVertex3f(-1.0, -1.0, -1.0); // 右面 glColor3f(0.0, 1.0, 1.0); // 设置青色 glVertex3f(1.0, 1.0, -1.0); glVertex3f(1.0, 1.0, 1.0); glVertex3f(1.0, -1.0, 1.0); glVertex3f(1.0, -1.0, -1.0); glEnd(); glFlush(); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH); glutInitWindowSize(500, 500); glutInitWindowPosition(100, 100); glutCreateWindow("3D Rendering"); init(); glutDisplayFunc(display); glutMainLoop(); return 0; }
上述代码使用OpenGL的函数绘制了一个简单的立方体,并在窗口中显示出来。其中,使用