max是3dsMAX里的专有文件格式;3ds是通用的3D格式文件,可以导入多种三维软件文件,可以说是保存3D模型的一个标准文件格式。3ds文件的结构比较复杂,要弄清楚不容易;但是如果只是导入3ds,实现读取和显示并不复杂,最快的方法当然是利用写好了的函数进行直接调用:
1先在3DMAX里把模型做好,注意模型的材质要用贴图的方式,OpenGL里不支持多维材质(OpengGL里贴图丢失一般是这个原因);把模型坍塌成polygon,再导出成3ds格式,把贴图文件(bmp或jpg格式),3ds文件放到你的VC++工程目录下;
2网上用很多3ds导入的例子,可以下载一个用来参考;里面一般会有两个函数:
void Show3DS(); //显示3ds模型
void Load3DS(); //加载3ds模型
把头文件和cpp 包含到你的工程里,根据具体的定义参数来调用
#include <windowsh>
#include <stdioh>
#include <stringh>
#include <stdlibh>
#include <mathh>
#include <timeh>
#include "gluth"
static GLfloat spin = 00;
void init( void )
{
glClearColor( 00, 00, 00, 00 );
glShadeModel( GL_FLAT );
}
void display( void )
{
glClear( GL_COLOR_BUFFER_BIT );
glPushMatrix( );
glRotatef( spin, 00, 00, 10 );
glColor3f( 10, 10, 10 );
glRectf( -250, -250, 250, 250 );
glPopMatrix( );
glutSwapBuffers( );
}
void spinDisplay( void )
{
spin = spin + 20;
if ( spin > 3600 )
spin = spin - 3600;
glutPostRedisplay( );
}
void reshape( int w, int h )
{
glViewport( 0, 0, (GLsizei)w, (GLsizei)h );
glMatrixMode( GL_PROJECTION );
glLoadIdentity( );
//void glOrtho(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top,GLdouble near,GLdouble far);
glOrtho( -500, 500, -500, 500, -10, 10 );
glMatrixMode( GL_MODELVIEW );
glLoadIdentity( );
}
void mouse( int button, int state, int x, int y )
{
switch ( button )
{
case GLUT_LEFT_BUTTON:
if ( state == GLUT_DOWN )
glutIdleFunc( spinDisplay );
break;
case GLUT_MIDDLE_BUTTON:
if ( state == GLUT_DOWN )
glutIdleFunc( 0 );
break;
default:
break;
}
}
void keyboard( unsigned char key, int x, int y )
{
switch (key)
{
case 'a':
glutIdleFunc( spinDisplay );
break;
case 's':
glutIdleFunc( 0 );
break;
}
}
int main( int argc, char argv )
{
glutInit( &argc, argv );
glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB );
glutInitWindowSize( 250, 250 );
glutInitWindowPosition( 100, 100 );
glutCreateWindow( argv [0] );
init( );
glutDisplayFunc( display );
glutReshapeFunc( reshape );
glutMouseFunc( mouse );
glutKeyboardFunc( keyboard );
glutMainLoop( );
return 0;
}
是两个不同的库,OpenCV是一个基于(开源)发行的跨平台计算机视觉库,OpenGL(全写OpenGraphicsLibrary)是个定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。
以上就是关于你好 请问如何将制作好的3Ds max文件导入到OpenGL程序全部的内容,包括:你好 请问如何将制作好的3Ds max文件导入到OpenGL程序、OpenGL程序、我想学习opengl,需要什么基础_OpenGL入门等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)