opengl导入3DS文件(带纹理)之填坑
来源:互联网 发布:java 抽象类继承接口 编辑:程序博客网 时间:2024/05/13 23:07
一、3ds导入工具
CLoad3DS.h和CLoad3DS.cpp (见文末)
二、使用方法
1、在你工程中加入头文件
#include "CLoad3DS.h"
2、在定义全局变量的地方加入以下代码
CLoad3DS *gothicLoader=new(CLoad3DS);
t3DModel gothicModel;
float gothicTrans[10] = {
0, 0 , -30 , //表示在世界矩阵的位置
0.2 , 0.2 , 0.2 , //表示xyz放大倍数
0 , 0 , 0 , 0 //表示旋转
};
这里要注意一个问题,若你需要封装代码,想在内里面定义t3DModel gothicModel; 一定要记得初始化其gothicModel.numOfMaterials =0和gothicModel.numOfObject=0。否则程序会报错。上面没有初始化,是因为是全局变量,C++里,全局变量是默认初始化的,也就是其成员默认初始化为0.
3、在opengl初始化的地方加入以下代码
gothicLoader->Import3DS(&gothicModel, "Data/3ds/GUTEMB_L.3DS");//导入模型,第二个参数是3ds文件的路径,
这里使用的是相对路径,你也可以使用绝对路径
4、在opengl绘制函数里加入如下代码
changeObject( gothicTrans );
drawModel(gothicModel,true,false);
三、3ds模型制作注意事项
其实没什么注意事项,唯一要注意的是,一定要有贴图的原素材,如果用的3dmax的系统贴图素材,需要去安装目录
找出原始图片,共后面opengl导入时使用。
四、3ds导入工具解析
在CLoad3DS.h中存在一个宏 #define PICPATH "\\Data\\pic\\" //定义了纹理资源的相对地址,即相对工程目录
的。结合下面三句代码,共同决定了从何处加载到纹理资源。
GetCurrentDirectory(MAX_PATH, szPath); // Get Our Working Directory 获得工程的目录
strcat(szPath, PICPATH); // Append "\" After The Working Directory
strcat(szPath, szPathName); // Append The PathName
因此,若你使用的纹理资源不放在当前工程目录下的Data\pic文件夹下,会导致最终显示模型丢失纹理。此外,你也
可以根据你纹理资源位置,调整这两处的代码,也可以实现纹理资源的加载。
3ds导入工具模板
- opengl导入3DS文件(带纹理)之填坑
- OpenGL实现3DS文件导入
- OpenGL实现3DS文件导入
- OpenGL导入3DS专题
- 将3ds文件导入openGL框架中
- Qt+OpenGL 3ds模型的导入
- Sandy引擎学习笔记:导入3ds模型纹理
- android下导入3ds文件解决方法
- 如何导入 3DS Max 文件
- OpenGL之纹理映射(一)
- OpenGL之纹理映射(一)
- OpenGL之纹理映射(一)
- opengl之纹理绘图
- opengl之自动纹理
- Opencv 导入图片 Opengl 显示纹理(含用例代码)
- OpenGL环境下模型文件的加载(3DS\OBJ)
- OpenGL实现3DS文件中的模型自由旋转
- OpenGL实现3DS文件中的模型自由旋转
- DLUT OJ1085(矩阵快速幂)
- linux基础-tomcat重启
- 矢量图库网站收集
- Android实现抽奖转盘
- 使用CXF发布WebService
- opengl导入3DS文件(带纹理)之填坑
- SDK更新地址
- 10进制转16进制(不用函数)
- 仿《雷霆战机》飞行射击手游开发--新手引导
- 百练_2888字符串中的数字
- 使用sql语句创建数据库和表
- 分析Dexhunter
- jquery.tiptext.js 文本框、文本域文字提示工具
- Android使用每日必应美图作为启动页背景图片