opengl绘制三维地形代码
时间: 2023-09-24 10:00:34 浏览: 170
OpenGL制作三维地形
3星 · 编辑精心推荐
OpenGL是一种用于图形渲染的开放式图形库,可以用于绘制三维地形。下面是一个简单的OpenGL绘制三维地形的代码示例:
```cpp
#include <GL/glut.h>
#include <cmath>
void init(void) {
glClearColor(0.0, 0.0, 0.0, 0.0);
glShadeModel(GL_FLAT);
}
void display(void) {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0, 1.0, 0.0);
for (float i = -10.0; i < 10.0; i += 0.1) {
for (float j = -10.0; j < 10.0; j += 0.1) {
glBegin(GL_TRIANGLES);
glVertex3f(i, j, sin(i * j));
glVertex3f(i + 0.1, j, sin((i + 0.1) * j));
glVertex3f(i, j + 0.1, sin(i * (j + 0.1)));
glEnd();
}
}
glFlush();
}
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400, 400);
glutInitWindowPosition(100, 100);
glutCreateWindow("OpenGL 3D Terrain");
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
```
这段代码使用了OpenGL的一些基本函数,如`glClearColor`来设置清屏颜色,`glShadeModel`来设置着色模式等。在`display`函数中,通过嵌套两个循环遍历地形的每个顶点,并使用`glVertex3f`函数设置了三维坐标和高度值。然后使用`glBegin(GL_TRIANGLES)`开始一个三角形的绘制,通过三个顶点绘制一个三角形,并使用`glEnd`结束绘制。最后通过`glFlush`将绘制结果显示在窗口中。
这段代码只是一个简单的示例,实际的三维地形绘制可能需要更复杂的算法和数据结构。希望对你有帮助!
阅读全文