c++
AUX_RGBImageRec *COpenGL::LoadBMP( char *Filename)
{
FILE *File = NULL
if( !Filename)
{
return NULL
}
File = fopen( Filename,"r")
if( File)
{
fclose( File)
return ::auxDIBImageLoad( Filename)
}
return NULL
}
然后是把图片制作成opengl的纹理对象,把纹理贴到opengl画出来的模型上。
可以参见Jeff Molofee(NeHe)的OpenGL教程- 纹理映射 第六课
这不是几行代码就行解决的问题。3ds max 的模型有很多种导出格式,如max,obj等,是不同的标准。一般来说,模型在各种软件中互导会使用一种各个软件都能自由导入和导出的中间格式,而这种中间格式有很多种,我选择的是obj.
OBJ本是Wavefront用在工作站的格式,现已成为业界标准,几乎现有的知名3D建模软件如3Ds MAX,Maya,Lightware都支持.
在3DS MAX中做好模型后,导出obj文件,保存.
你的C++程序要想把OBJ文件成功导入,必需专门有这样一个类来实现它(建议写一个插件管理器来管里各种插件),这个类要做的事是:1.读取OBJ文件 2.分析OBJ文件,并将其内容转化,重组成OpenGL能识别的模型。比如将用OBJ里的点面转化成OpenGL里的点,面。 这一步是关键,要求你对OBJ和OpenGL都熟练掌握。
3.将转化好的模型保存并渲染,对其进行初始化(如位置,缩放,观察者角度,灯光,贴图等等)。
最后,Good luck!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)