3D模型文件 OBJ格式模型详细介绍

obj格式有4种数据,分别以一下字母开头:

  • v顶点
  • vt纹理坐标
  • vn顶点法向量
  • f 面

一、顶点

v 0.232323 0.8978, 0.34312

格式:v x y z
意义:每个顶点的坐标

二、纹理坐标

vt 0.032 0.005 0

格式:vt u v w

意义:绘制模型的三角面片时,每个顶点取像素点时对应的纹理图片上的坐标。纹理图片的坐标指的是,纹理图片如果被放在屏幕上显示时,以屏幕左下角为原点的坐标。
注意:w一般用于形容三维纹理,大部分是用不到的,基本都为0。

三、顶点法向量

vn 0.728 -0.123 -0.322

格式:vn x y z
意义:绘制模型三角面片时,需要确定三角面片的朝向,整个面的朝向,是由构成每个面的顶点对应的顶点法向量的做矢量和决定的(xyz的坐标分别相加再除以3得到的)。

四、面

f 1/1/1 2/2/2 3/3/3

格式 :f v/vt/vn v/vt/vn v/vt/vn(f 顶点索引 / 纹理坐标索引 / 顶点法向量索引)

意义:绘制三角面片的依据,每个三角面片由三个f构成,由f可以确定顶点、顶点的对应的纹理坐标(提取纹理图片对应该坐标的像素点)、通过三个顶点对应的顶点法向量可以确定三角面的方向。

补充:有些模型可能会出现四边形的绘制方式,那样的模型关于面的数据描述是这样的 f v/vt/vn v/vt/vn v/vt/vn v/vt/vn ,比三角面绘制方式多一项数据。

补充说明:

  • 顶点的个数与顶点法向量的个数一样多。
  • 顶点的个数不一定与纹理坐标的个数一样多,因为有可能很多顶点公用一个纹理坐标的像素。
  • 面索引的个数也与其余数据数量无关。
  • 最终每个三角面的颜色,是由构成这个三角面的三个顶点进行插值计算(有例如:一个三角面其中两个顶点对应的纹理坐标是黑色的,另外一个是白色,那整个面呈现的颜色是由黑变白渐变,而不是三个颜色值的平均值。这就是插值的作用)来确定。所以面的颜色有可能不与每个点的颜色一致。

参考链接:https://blog.csdn.net/xyh930929/article/details/82260581

原文地址:https://www.cnblogs.com/xiaoniu-666/p/12703543.html

时间: 2024-11-09 00:14:08

3D模型文件 OBJ格式模型详细介绍的相关文章

Obj格式模型 读取

原文地址:http://blog.csdn.net/caca001/article/details/5207597 OBJ文件特点 (1)OBJ是一种3D模型文件,因此不包含动画.材质特性.贴图路径.动力学.粒子等信息. (2)OBJ文件主要支持多边形(Polygons)模型. 虽然OBJ文件也支持曲线(Curves).表面(Surfaces).点组材质(Point Group Materials),但Maya导出的OBJ文件并不包括这些信息. (3)OBJ文件支持三个点以上的面,这一点很有用.

Ubuntu根目录下各文件夹的功能详细介绍

Ubuntu的根目录下存在着很多的文件夹,但你知道他们都存放着哪些文件呢?这些是深入了解Ubuntu系统必不缺少的知识,本文就关于此做一下介绍吧. /bin/    用以存储二进制可执行命令文件. /sbin/    许多系统命令的存储位置,/usr/sbin/中也包括了许多命令. /root/    超级用户,即根用户的主目录. /home/    普通用户的默认目录,在该目录下,每个用户拥有一个以用户名命名的文件夹. /boot/    存放Ubuntu内核和系统启动文件. /boot/gr

3D模型文件——OBJ 文件格式

OBJ文件是一种标准的3D模型文件格式,以纯文本的形式存储了模型的顶点.法线和纹理坐标和材质使用信息,因此可以使用记事本打开直接阅读. 在OBJ文件中,每一行为一条信息,每行的格式如下:前缀  参数1 参数2 参数3 ... 常用前缀 #表示注释的前缀 v 表示本行指定一个坐标.后跟着3个文本表示的float,分别表示该定点的X.Y.Z坐标值(参数之间使用空格分开) vt 表示本行指定一个纹理坐标.后跟着2个文本表示的float.分别表示此纹理坐标的U.V值(参数之间使用空格分开) vn 表示本

Android manifest文件中的标签详细介绍

概要 每一个Android应用都应该包含一个manifest文件,即AndroidManifest.xml.它包含了程序运行的一些必备信息,比如: --为Java应用程序指定一个独一无二的名字. --描述程序所包括的成分,如activities, services, broadcast receivers和content providers等内容. --定义哪一个成分是主要的.比如主线程等. --声明程序正常运行所需要的权限.比如,读写SD卡等. --声明该程序的API Level,低于该API

hosts文件位置、hosts文件是什么?hosts文件修复方法的详细介绍

(1)什么是Hosts文件?Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库",当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析.(2)为什么进行Hosts 文件修复? 很多病毒会修改Hosts文件,例如:把Baidu.Google等常用地址均指向病毒网站

三维模型obj文件的格式解析与读取

请先看这两个中文博客中对于obj的介绍: 读取Obj格式的模型文件(Dx10) C++读入obj格式模型文件 更为详细的英文资料(用google或者aol搜索 "obj format"即可得到): http://en.wikipedia.org/wiki/Wavefront_.obj_file Wavefront OBJ File Format Summary 最详细的资料 obj spec: http://www.martinreddy.net/gfx/3d/OBJ.spec htt

Linux shell脚本基础学习详细介绍(完整版)二

详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续. Linux shell脚本基础已经被分成好几个部分了,这里对控制流程的内容也就马上讲完了,这是最后一部分关于here document,这里举例稍微有点复杂,我们慢慢来分析这个复杂Linux shell脚本. 6. Here documents 当要将几行文字传递给一个命令时,here docu

[iTyran原创]iPhone中OpenGL ES显示3DS MAX模型之一:OBJ格式分析

[iTyran原创]iPhone中OpenGL ES显示3DS MAX模型之一:OBJ文件格式分析作者:yuezang - iTyran 在iOS的3D开发中常常需要导入通过3DS MAX之类的3D设计软件生成的模型.因为OpenGL ES是不能直接读取这些文件的,所以常常需要开发人员增加接口来导入.通常的做法是在建模软件中建立3D模型之后在OpenGL ES中导入并进行控制.    3DS MAX通常的保存格式有*.max(现在生成的版本的格式),*.3ds(低版本的3ds Max生成的格式)

Cesium学习笔记(九):导入3D模型(obj转gltf)

在用cesium的过程中难免需要导入别人做好的3D模型,这时候就需要将这些模型转成gltf格式了 当然,官方也给了我们一个网页版的转换器,但是毕竟是网页版的,效率极其低下,文件还不能太大,所以我们就需要一个格式转换器了 现在只支持obj和dae转gltf,我感觉obj比较方便,所以我用的是obj2gltf,这也是官方推荐的一个,用起来很简单,而且效果和效率都不错. 下面说一下过程 首先在cesium目录下安装obj2gltf(如果没有nodejs的就装一个吧,反正又简单官方还推荐) npm in