VC+OpenGL+3dsMax编程,如何导入3d场景

用vc+OpenGL+3dsMAX做一个单文档三维应用程序,已经建好CLoad3DS类,CMD2_Model类,及其相关的结构体,怎样调用函数才能显示出3D模型?求指教,... 用vc+OpenGL+3dsMAX做一个单文档三维应用程序,已经建好CLoad3DS类,CMD2_Model类,及其相关的结构体,怎样调用函数才能显示出3D模型?求指教,请详细说以下步骤或给出大概的代码。向量的运算函数也建好了。 展开
 我来答
sl65agm
2011-08-03 · TA获得超过1383个赞
知道小有建树答主
回答量:734
采纳率:0%
帮助的人:593万
展开全部
既然已经写好了那些结构,说明你已经将3ds文件的数据转换成了三角形。那么就用最简单的 方法:
glBegin(GL_TRIANGLES);
for(...)
for( 循环3次) {
glTexCoord2f(...);
glNormal3f(...);
glVertex3f(...);
}
glEnd();

关键看你是怎样将3ds的数据转换为三角形的,这些三角形是GL_TRIANGLES GL_TRIANGLE_STRIP 是否用了索引,,是否读取了纹理坐标,法线,图片等。。。
这些数据可以以不同形式存在与内存中,不同的形式,渲染的方式也不一样的。
当然,这还没有考虑效率,效果等问题。
只要你已经从3ds文件中构造出了相应的顶点与三角形,那么渲染是很简单的。
更多追问追答
追问
应该是已经放在内存当中了,就是不显示,能不能再详细一点,
追答
内存中,顶点格式是什么样子的?
几何信息,纹理信息,法线信息是如何储存的?
三角形是如何构造的?
在这些问题明了之前,是无法给出明确的渲染代码的。

不过有两个简单方法用于显示3ds文件而且比网上那种百来行的 好
1 使用三方库lib3ds
2 使用deep explorer, 他能将所有3D格式转换为一个头文件和CPP文件,CPP文件中包含了所有内存数据,并生成一个函数,用于生产模型的显示列表。你只需要用一行代码即可显示。
glCallList(theList);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式