您的位置:首页 > 运维架构

OpenGL读取显示3ds,flt模型的一般过程(小结)

2008-10-28 10:09 316 查看
问题:

最近一直在学习OpenGL读取显示3ds,flt模型的过程,终于有了一点点心得,其中走了很多的弯路,希望能对以后也研究的人有一点点帮助,同时自己也总结一下。

回答:OpenGL读取显示3ds,flt模型的一般过程(小结)

第一步:读取模型

{ 先获取模型的数据信息:添加到自己定义的结构体中,结构体一般包括

点列表:(定点坐标,纹理坐标)
面列表:
纹理信息:(纹理得图像名称,个数)
材质信息(主要是光照类)

3ds是读取“chunk”结构体,而后获得模型的信息添加到自己的结构体中。

flt是利用multiGen提供的api函数来读取模型得信息,其中主要利用waklflt()这个函数,其中比较特殊的是这个是一个回调函数。根据flt的标示符来获得相关的面片列表和点列表。
}

第二步:根据读取得数据信息计算面和顶点得法向量
{
这个过程一般为:先计算面的法向量,然后计算顶点的法向量,这其中也包括法向量的规范化
}

第三步:根据读取信息中的纹理文件的名字来生成纹理
{
根据纹理文件的名字来生成纹理,这其中因为不同的图片的格式不一样诸如(*.rgb,*jpg,*bmp)所以需要能处理各种各样得文件格式来得到纹理
}

第四步:根据数据信息绘制模型
{
遍历所有得面,如果有纹理映射,打开纹理映射,给出法向量,纹理坐标, 颜色值,绘制各个顶点的坐标。
这其中还包含获得模型得缩放比例(因为即使是一样的B52轰炸机,不同的人建 立得模型的大小也是不一样得。)
然后按照这个比例来绘制点的坐标。
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: