Qt OpenGL加载OBJ模型 |
您所在的位置:网站首页 › studio怎么导入obj文件 › Qt OpenGL加载OBJ模型 |
在加载OBJ模型文件之前首先要对OBJ文件的内容有所了解,在3d模型网站https://free3d.com/3d-models/3d-printable-obj 随便找了一个模型 它的OBJ文件内容为: # File exported by ZBrush version 4.4 # www.zbrush.com #Vertex Count 20545 #UV Vertex Count 15953 #Face Count 20559 #Auto scale x=0.022208 y=0.022208 z=0.022208 #Auto offset x=-0.531189 y=-0.179415 z=0.083041 mtllib stickman2.mtl usemtl defaultMat v 14.23160078 -34.12469952 6.2026003 v 14.47159986 -34.17430379 6.32490063 v 14.4308002 -34.00520591 6.28000128 v 14.26249945 -33.91609966 6.17129972 ... vt 0.699 0.3513 vt 0.7029 0.352 vt 0.7295 0.3476 ... f 390/393 398/401 371/374 378/381 f 399/402 401/404 402/405 400/403 f 365/368 372/375 400/403 402/405 ... \n 注意:文件末尾会有一个\n字符。而3dsmax建模出的文件是\r\n.. 其中最为关键的为开头为"v","vt","f"的几行数据,“v”代表了顶点数据,“vt”代表贴图坐标也及uv坐标数据,“f”代表了面数据, 其中f 1 2 3 4代表四边形顶点,f 1 2 3代表三角顶点,f 1/1 2/2 3/3 代表顶点索引/纹理索引,f 1//1 2//2 3//3 代表顶点索引//法线索引,f 1/1/1 2/2/2 3/3/3 代表顶点索引/纹理索引/法线索引.索引及代表这是第几个元素,如f 390/393 398/401 371/374 378/381 表示这个面有四个顶点分别是第390个顶点/393个uv ,第398个顶点/401个uv...。 先从最简单的读取单纯的顶点数据开始: 本文在Qt下使用OpenGL,选择使用QOpenGLExtraFunctions类采用OpenGL原生API进行编写。 读取数据部分: bool ObjLoader::Load(QString fileName, QVector &vPoints) { if (fileName.mid(fileName.lastIndexOf('.')) != ".obj"&&fileName.mid(fileName.lastIndexOf('.')) != ".OBJ") { qDebug() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |