博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Obj格式模型 读取
阅读量:6209 次
发布时间:2019-06-21

本文共 1380 字,大约阅读时间需要 4 分钟。

 

OBJ文件的结构

在一个OBJ文件中,首先有一些以v、vt或vn前缀开头的行指定了所有的顶点、纹理坐标、法线的坐标。然后再由一些以f开头的行指定每一个三角形所对应的顶点、纹理坐标和法线的索引。在顶点、纹理坐标和法线的索引之间,使用符号“/”隔开的。一个f行可以以下面几种格式出现:

f  1 2 3

表示以第1、2、3号顶点组成一个三角形。

f  1/3 2/5 3/4

表示以第1、2、3号顶点组成一个三角形,其中第一个顶点的纹理坐标的索引值为3,第二个顶点的纹理坐标的索引值为5,第三个顶点的纹理坐标的索引值为4。

f  1/3/4 2/5/6 3/4/2

表示以第1、2、3号顶点组成一个三角形,其中第一个顶点的纹理坐标的索引值为3,其法线的索引值是4;第二个顶点的纹理坐标的索引值为5,其法线的索引值是6;第三个顶点的纹理坐标的索引值为6,其法线的索引值是2。

f  1//4 2//6 3//2

表示以第1、2、3号顶点组成一个三角形,且忽略纹理坐标。其中第一个顶点的法线的索引值是4;第二个顶点的法线的索引值是6;第三个顶点的法线的索引值是2。

注意:文件中的索引值是以1作为起点的,在渲染的时候应注意将从文件中读取的坐标值减去1。

 

OBJ文件的基本结构

点数据(Vertex data):

v 几何体顶点 (Geometric vertices)

vt 贴图坐标点 (Texture vertices)

vn 顶点法线 (Vertex normals)

vp 参数空格顶点 (Parameter space vertices)

--------------------------------------------------------

 

 

根据这个写了点代码

不过上面没有讲全

他的face 一个face很多点的

f 43/85/83 62/104/84 61/103/85 60/102/86 59/101/87 58/100/88 57/99/89 56/98/90 55/97/91 54/96/92 53/95/93 52/94/94 51/93/95 50/92/96 49/91/97 48/90/98 47/89/99 46/88/100 45/87/101 44/86/102

face  支持4个点的顶点 ,纹理坐标和法线

f 485/590/564 484/589/565 504/610/566 505/611/567

f 486/591/568 485/590/564 505/611/567 506/612/569
f 487/592/570 486/591/568 506/612/569 507/613/571
f 488/593/572 487/592/570 507/613/571 508/614/573

 

所以光靠

fscanf(file, "%d/%d/%d %d/%d/%d %d/%d/%d\n", &vertexIndex[0], &uvIndex[0], &normalIndex[0], &vertexIndex[1], &uvIndex[1], &normalIndex[1], &vertexIndex[2], &uvIndex[2], &normalIndex[2] );

 

这样是不够的,得写个解析器

 

转载地址:http://qobja.baihongyu.com/

你可能感兴趣的文章
哈夫曼编码测试
查看>>
SVN--从本地检出项目至服务器报错--禁止访问
查看>>
[LeetCode] Remove Invalid Parentheses
查看>>
Educational Codeforces Round 37-E.Connected Components?题解
查看>>
MongoDB整理笔记の体系架构
查看>>
HTML5 Web 客户端五种离线存储方式汇总
查看>>
石子博弈
查看>>
centos7 mysql数据库的安装与使用
查看>>
Linux 进程管理
查看>>
【和孩子一起学编程】 python笔记--第五天
查看>>
java处理高并发高负载类网站的优化方法
查看>>
[改善Java代码]警惕自增的陷阱
查看>>
C入门语言基础一[可移植性、涉及的三种文件、编程7个步骤、编译器、链接器]...
查看>>
Python3抓取 深圳房地产均价数据,通过真实数据为购置不动产做决策分析(一)...
查看>>
Rotating an array in place
查看>>
PL/SQL实现JAVA中的split()方法的小例子
查看>>
SOFARPC源码解析-搭建环境
查看>>
jquery的checkbox,radio,select等方法总结
查看>>
不用Connectify,让win7分WiFi玩手机!
查看>>
[转]设置好ftp后用xftp连接提示无法打开,无法显示远程文件夹
查看>>