obj格式3d模型免费,一文看懂3D模型obj文件
你是否好奇那些3D游戏中复杂的角色、建筑、场景是怎么实现的,美工使用3D建模软件设计好角色模型之后,程序又是怎么让它们动起来的哪?
在计算机中,3D角色等模型最终都是存储成文件,这些文件必然携带了角色形状、材质等属性,程序就是通过读取并解析这些文件,通过代码控制它们动起来,创造了一个又一个精彩的游戏世界。另外,看似复杂无比的模型都是通过大量三角形来逼近的,表示单个三角形就简单很多了,而3D模型文件的内容也就是立足于三角形。
obj文件是Alias|Wavefront公司为3D建模和动画软件"Advanced Visualizer"开发的一种标准3D模型文件格式,大部分3D软件都支持导入、导出obj格式的模型文件。
立方体模型接下来,我们使用blender这款开源的3D建模软件创建一个简单的立方体模型,设置立方体的顶面颜色为橘黄色,其他面全部为红色,j将其导出为obj文件,使用任意文本编辑器打开来一步步看看里面都有什么。
说明:导出共生成了两个文件,一个为.obj后缀模型文件,一个为.mtl后缀的材质文件。
看懂obj模型文件完整的obj文件内容如下
# Blender v3.1.2 OBJ File: ''# www.blender.orgmtllib mycube.mtlo Cubev 1.000000 1.000000 -1.000000v 1.000000 -1.000000 -1.000000v 1.000000 1.000000 1.000000v 1.000000 -1.000000 1.000000v -1.000000 1.000000 -1.000000v -1.000000 -1.000000 -1.000000v -1.000000 1.000000 1.000000v -1.000000 -1.000000 1.000000vt 0.625000 0.500000vt 0.875000 0.500000vt 0.875000 0.750000vt 0.625000 0.750000vt 0.375000 0.750000vt 0.625000 1.000000vt 0.375000 1.000000vt 0.375000 0.000000vt 0.625000 0.000000vt 0.625000 0.250000vt 0.375000 0.250000vt 0.125000 0.500000vt 0.375000 0.500000vt 0.125000 0.750000vn 0.0000 1.0000 0.0000vn 0.0000 0.0000 1.0000vn -1.0000 0.0000 0.0000vn 0.0000 -1.0000 0.0000vn 1.0000 0.0000 0.0000vn 0.0000 0.0000 -1.0000usemtl Materials offf 1/1/1 5/2/1 7/3/1 3/4/1usemtl Material.001f 4/5/2 3/4/2 7/6/2 8/7/2f 8/8/3 7/9/3 5/10/3 6/11/3f 6/12/4 2/13/4 4/5/4 8/14/4f 2/13/5 1/1/5 3/4/5 4/5/5f 6/11/6 5/10/6 1/1/6 2/13/6
- #开头的表示注释。
- mtllib mycube.mtl表示引用了一个外部的材质文件,材质文件名为mycube.mtl,后面会介绍材质文件的内容。
- o Cube指定了模型名称为Cube。
- v开头的共有8行,表示立方体的8个顶点坐标(x,y,z)。
- vt开头的共有14行,表示uv贴图坐标(x,y),看到这些奇怪的数字可能让你一头雾水,当我们把这14行数字表示的坐标点逐一绘制出来,并将相邻的点连接起来就得到了下面的图形。这样就豁然开朗了,它就像是一张包装纸,刚好可以包裹住一个立方体盒子的6个面。
- vn开头的共有6行,它表示立方体6个面对应的法向量,法向量在这里起到识别某个面是正面还是反面的作用。
- usemtl Material表示使用mycube.mtl文件中Material定义的材质,接下来的通过索引指定的面将使用该材质。
- s off表示关闭光滑组(Smoothing group)。
- f开头的表示由顶点、uv纹理坐标、法向量索引确定的表面,如5/2/1表示v开头的第5个顶点、这个点对应vt贴图的第2个坐标(就是包装纸的某个点应该和立方体盒子的哪个点对齐)、这个点对应vn开头的第1个法向量;一个立方体表面共有4个点,因此需要有4组索引数据来确定一个面。使用Material材质的面只有一个,就是建模时设置为橘黄色的面。
- usemtl Material.001表示使用mycube.mtl文件中Material.001表示的材质,接下来的通过索引指定的面将使用该材质。
- 之后5行以f开头的面是建模时设置为红色的面,格式同橘黄色的面。
现在,来看看mycube.mtl材质文件都包含什么内容,完整内容如下:
# Blender MTL File: 'None'# Material Count: 2newmtl MaterialNs 359.999993Ka 1.000000 1.000000 1.000000Kd 0.800000 0.582192 0.154415Ks 0.500000 0.500000 0.500000Ke 0.000000 0.000000 0.000000Ni 1.450000d 1.000000illum 2newmtl Material.001Ns 250.000000Ka 1.000000 1.000000 1.000000Kd 0.800000 0.002207 0.009875Ks 0.500000 0.500000 0.500000Ke 0.000000 0.000000 0.000000Ni 1.450000d 1.000000illum 2
- #开头表示注释。
- newmtl Material定义材质Material,接下来的内容都是该材质的属性。
- Ns表示高光色的权重。
- Ka表示环境光,三个数字分别对应R、G、B值。
- Kd表示漫反射光,三个数字分别对应R、G、B值。
- Ks表示高光,三个数字分别对应R、G、B值。
- Ke表示发射光,三个数字分别对应R、G、B值。
- Ni表示光学密度。
- d表示透明度,0是完全透明,1是完全不透明。
- illum 2表示指定的光照模型(参考:Phong光照模型),illum后面的数字范围为0~10,具体含义如下:
0 Color on and Ambient off 1 Color on and Ambient on 2 Highlight on 3 Reflection on and Ray trace on 4 Transparency: Glass on Reflection: Ray trace on 5 Reflection: Fresnel on and Ray trace on 6 Transparency: Refraction on Reflection: Fresnel off and Ray trace on 7 Transparency: Refraction on Reflection: Fresnel on and Ray trace on 8 Reflection on and Ray trace off 9 Transparency: Glass on Reflection: Ray trace off 10 Casts shadows onto invisible surfaces
- newmtl Material.001表示指定材质Material.001,之后的内容都是关于该材质的属性,具体含义和Material完全相同,不再详述。
[1]. 《WebGL指南》第10章高级技术>加载三维模型,401页。
- 12-05开头结尾作文素材万能 小学 家有小学生注意万能作文开头30篇
- 01-11怎么样才是自然的双眼皮?如何才能拥有自然的双眼皮
- 01-05新赛季排位演员为什么那么多?你知道什么是演员吗轻轻松松上国服
- 03-03普陀到九华山自由行攻略路线:第六天,悠闲的旅行从普陀山到苏州
- 12-05如何化解家庭矛盾的小妙招?我亲身经历的故事告诉你
- 10-28骨肉相连做什么饭好吃?这道酱香骨肉相连比大厨做的还好吃
- 04-07细叶冬青盆景造型,一盆多杆龟甲冬青盆景创作与养护
- 04-26明日之后流浪地球联动里面的boss:网易明日之后联动流浪地球2宣传片公布
- 12-07卡塔尔世界杯8强赛程:卡塔尔世界杯八强诞生
- 12-17八十年代播放的日本电视剧 回顾八九十年代在内地非常受欢迎的几部日剧
- 03-10银联无卡快捷业务联机待清算 银联发布新一代无卡业务转接清算平台
- 03-10三月份去云南旅游穿什么好看?三月份的时候去云南旅游穿什么衣服
- 01-12麻辣香锅被ban五个打野位:麻辣香锅排位被主播打崩
- 04-25十大公认的红茶品牌,盘点各类红茶的代表性品牌
- 01-29水泥搅拌车减速机工作原理:搅拌车减速机结构及工作原理详解
- 03-02华为小米荣耀路由器怎么选?颜值,取胜
热门
推荐
- 1新学期学习计划范文集合5篇452
- 2二年级小学生期末评语大全110
- 3信念与成功的名言名句精选207
- 4入党积极分子半年自我鉴定书2017216
- 5因为爱情有奇迹林天佑结局_林天佑最后和谁在一起了_林天佑是谁扮演的459
- 6中学生六分钟自我介绍497
- 7班级黑板报图片465
- 8成长的伤感句子450