位置: 编程技术 - 正文
推荐整理分享Opengl学习笔记:(一).Ply文件文件格式和文件读取(opengl教程48讲),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:opengl入门教程,opengl基础知识,opengl详解,opengl示例,opengl示例,opengl详解,opengl示例,opengl教程48讲,内容如对您有帮助,希望把文章链接给更多的朋友!
转载自: 二、Ply中的结构
1、PLY的文件结构:
文件头加上元素数据列表。其中文件头中以行为单位描述文件类型、格式与版本、元素类型、元素的属性等,然后就根据在文件头中所列出元素类型的顺序及其属性,依次记录各个元素的属性数据。
2、 典型的PLY文件结构:
1、 头部2、顶点列表3、面片列表4、 其他元素列表3、简单举例
1) 头部
a.头部是一系列以回车结尾的文本行,用来描述文件的剩余部分。 b. 头部包含一个对每个元素类型的描述,包括元素名(如“边”),元素的数量,以及一个与这个元素关联的不同属性的列表。c.头部还说明这个文件是二进制的或者是ASCII的。d.头部后面的是一个每个元素类型的元素列表,按照在头部中描述的顺序出现。e.文件中的注释一般在 “comment”开始的关键词定义行里。2) 举例:下面是一个立方体的完整ASCII描述。大括号中的注释不是文件的一部分,它们是这个例子的注解。
a.头部的每个部分都是一个以关键词开头,以回车结尾的ASCII串。b.”ply”是文件的头四个字符。c.关键词“format”及其后面的是一个特定的ASCII或者二进制的格式,接下来是一个版本号。d.end_header 头文件结束f.再下面是多边形文件中每个元素的描述,在每个元素里还有多属性的说明。一般元素以下面的格式描述: element <元素名> <在文件中的个数> property <数据类型> <属性名-1> property <数据类型> <属性名-2> property <数据类型> <属性名-3>3) 其他说明 属性罗列在“element”(元素)行后面定义,既包含属性的数据类型,也包含属性在每个元素中出现的次序。一个属性可以有三种数据类型:标量,字符串和列表。属性可能具有的标量数据类型列表如下。这些字节计数很重要,而且在实现过程中不能修改以使这些文件可移植。使用列表数据类型的属性定义有一种特殊的格式:property list <数值类型> <数值类型> <属性名> ,这种格式,一个非负字符表示在属性里包含多少索引,接下来是一个列表包含许多整数。在这个边长列表里的每个整数都是一个顶点的索引。 三、读取.ply文件读取的方法: 1、在头文件信息中读取顶点数量和面数量(也可同时确定每个顶点的属性种类和数量)。 2、在文件的数据部分读取所有顶点信息,及面信息。 3、由顶点信息绘制图形。
PlyLoader.cpp
PlyLoader.h
说明:
不同的.ply文件,每个顶点包含的属性值可能不一样,较简单的就只包含x y z值,复杂的还包含rgb 和法向量的值,所以绘制的时候要注意。绘制的时候采用顶点数组的方式绘制,具体用法见3链接。顶点数组绘图解决三维建模软件中摄像机旋转的问题 解决三维建模软件中摄像机旋转的问题我们看到很多3D建模软件都可以很方便地对摄像机进行旋转,比如说Blender,通过按下鼠标中键,就可以很方便地
OpenGL学习笔记:(二)简单绘制正方形(基本框架) #includeGL/glut.hspanstyle=white-space:pre/span//头文件,包含了gl.hglu.hconstintWINDOW_WIDTH=;constintWINDOW_HEIGHT=;voidreshape();voiddisplay();voidinit();voidinit(){glClearColor(0.0,0.0
关于OpenGL导入.obj文件的一点涉入 先说一下我的例子(下载):将需要导入的obj文件放在assets文件夹下面,在代码中设置相应的文件名称(这个都在代码中有标注,备注写的很明确),
标签: opengl教程48讲
本文链接地址:https://www.jiuchutong.com/biancheng/369621.html 转载请保留说明!友情链接: 武汉网站建设