
是一个制图的接口,
不是生成模型的接口,
一般是由你向
OpenGL
提供网格数据,
OpenGL
负责绘制的
具体的模型网格的生成一般是行用
3D
建模软件
(3DS
Max,
Maya
...)
制好模型,
然后使用
(或者自己写一个)
导出插件,
将顶点数据导出生成模型网格数据,
然后再将这些数据提供给
OpenGL
#include <GL/glut.h>
#include <stdlib.h>
#include <stdio.h>
static float roangles
void init(void)
{
glClearColor (0.0, 0.0, 0.0, 0.0)
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE)
glEnable(GL_DEPTH_TEST)
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glPushMatrix()
glRotatef( roangles, 0.0, 1.0, 0.0 )
glBegin(GL_TRIANGLES)
glVertex3f(1.0, 0.0, 0.0)
glVertex3f(0.0, 1.0, 0.0)
glVertex3f(0.0, 0.0, 1.0)
glVertex3f(0.0, 0.0, 0.0)
glVertex3f(0.0, 1.0, 0.0)
glVertex3f(1.0, 0.0, 0.0)
glVertex3f(0.0, 0.0, 0.0)
glVertex3f(0.0, 0.0, 1.0)
glVertex3f(0.0, 1.0, 0.0)
glVertex3f(0.0, 0.0, 0.0)
glVertex3f(0.0, 0.0, 1.0)
glVertex3f(1.0, 0.0, 0.0)
glEnd()
glPopMatrix()
glFlush()
}
void reshape(int w, int h)
{
glViewport(0, 0, (GLsizei) w, (GLsizei) h)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 30.0)
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
glTranslatef(0.0, 0.0, -3.6)
glRotatef( 45, 1.0, 0.0, 0.0 )
}
void idle()
{
roangles += 0.01f
glutPostRedisplay()
}
/* ARGSUSED1 */
void keyboard(unsigned char key, int x, int y)
{
switch (key) {
case 27:
exit(0)
break
}
}
int main(int argc, char** argv)
{
glutInit(&argc, argv)
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH)
glutInitWindowSize(250, 250)
glutInitWindowPosition(100, 100)
glutCreateWindow(argv[0])
glutIdleFunc( idle )
init()
glutReshapeFunc(reshape)
glutDisplayFunc(display)
glutKeyboardFunc (keyboard)
glutMainLoop()
return 0
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)