你好 请问如何将制作好的3Ds max文件导入到OpenGL程序

你好 请问如何将制作好的3Ds max文件导入到OpenGL程序,第1张

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入门等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9702626.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存