华硕笔记本安装win7win10怎样开平板模式

扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
关注:1703
当前位置: &
__________________________________________________________________________________
开发者干货区版块规则:
  1、文章必须是图文形式。(至少2幅图)
& && &2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
& && &3、本版块只支持在游戏蛮牛原创首发,不支持转载。
& && &4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
& && &5、......
__________________________________________________________________________________
查看: 4150|回复: 9
解析OBJ模型并将其加载到Unity3D场景中
本帖为抢楼帖,欢迎抢楼!&
9排名<font color="#FF昨日变化2主题帖子积分
在线时间174 小时
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
本帖最后由 qinyuanpei 于
20:04 编辑
版权声明:本文由秦元培创作和发表,采用署名(BY)-非商业性使用(NC)-相同方式共享(SA)国际许可协议进行许可,转载请注明作者及出处,本文作者为秦元培,本文标题为解析OBJ模型并将其加载到场景中,本文链接为//deep-learning-of-3d-model-file-format-of-obj/.
各位朋友,大家好,欢迎大家关注我的博客,我是秦元培,我的博客地址是。本文链接:http://blog.csdn.net/qinyuanpei/article/details/。
今天想和大家交流的是解析obj模型并将其加载到Unity3D场景中,虽然我们知道Unity3D是可以直接导入OBJ模型的,可是有时候我们并不能保证我们目标客户知道如何使用Unity3D的这套制作流程,可能对方最终提供给我们的就是一个模型文件而已,所以这个在这里做这个尝试想想还是蛮有趣的呢,既然如此,我们就选择在所有3D模型格式中最为简单的OBJ模型来一起探讨这个吧!
关于OBJ模型
OBJ格式是一种3D模型文件格式,是由Alias|Wavefront公司为3D建模和动画软件 “Advanced Visualizer”开发的一种标准,适合用于3D软件模型之间的互相转换。和FBX、Max这种内部私有格式不同,OBJ模型文件是一种文本文件,我们可以直接使用记事本等软件打开进行编辑和查看,因此我们这里选择OBJ模型主要是基于它开放和标准这两个特点。需要说明的是,OBJ文件是一种3D模型文件,它主要支持多边形模型(三个点以上的面)。OBJ模型支持法线和贴图坐标,可是因为它本身并不记录动画、材质特性、贴图路径、动力学及粒子等信息,所以我们在游戏开发中基本看不到这种模型格式的,所以我们这里做下简单研究就好。
OBJ模型解读
因为OBJ模型文件是一个文本文件,所以我们可以使用记事本等软件打开它来对它的文件结构进行下了解。首先OBJ文件没有头文件,如果你曾经尝试解析过mp3文件的ID3v1/ID3v2标签就应该知道它是根据mp3文件的开头或者末尾的若干字节来判断这些标签信息的,而在OBJ文件中是没有类似这样的头文件的。OBJ文件是由一行行由关键字、空格和文本字符组成的文本文件,通过关键字我们就可以知道这一行的文本表示的是什么数据。例如:
1 # Blender v<font color="#.76 (sub 0) OBJ File: ''
#关键字表示一个注释行,通过这个注释信息我们可以知道这个OBJ模型是由Blender2.76版本导出的。再比如:
1 mtllib liumengli.mtl
mtllib关键字则表示当前模型对应的材质库(.mtl)文件名称,每个OBJ模型文件都会有这样一个对应和它同名的.mtl文件,在这个文件中记录了材质相关的信息,稍后我们说到材质的时候会详细说说这个文件的格式,因为它和OBJ文件一样是一个文件文件。再比如:
1 usemtl Material__33
usemtl关键字则表示从当前行到下一个usemtl关键字所在行间的全部网格结构都使用其对应的材质,通过这个材质名称我们可以在.obj文件对应的.mtl文件中找到它的材质定义,这个我们在讲到材质部分的时候会详细说。
好了,目前我们要做的工作室解析.obj文件然后创建网格进而可以使其显示在Unity3D场景中,在这里我们要重点关注的关键字有:
* v即Vertex,表示一个顶点的局部坐标系中的坐标,通常有三个分量,因为这里讨论的是三角面。例如:
1 v&&1.2 -1.1004
vn即Vertex Normal,表示法线,注意到这些向量都是单位向量,所以我们可以认为三维软件在导出模型的时候已经做好了相关的标准化工作。
1 vn 0.6 0.5399
vt即Vertex Texture,表示纹理坐标,就是我们熟悉的UV坐标啦,显然UV是个坐标,有两个分量。
1 vt -0.2 1.0000
f即face,这是一个真正描述面的关键字,通常它后面有三个索引结构,每个索引结构由顶点索引、法线索引和纹理坐标索引三部分构成。例如:
1 f 256/303/637 257/304/638 258/305/639
以上这些关键字对我们解析.obj文件来说已经完全足够了,如果大家想对这些细节有更为深入的了解,可以参考这里这里(/link?url=Wwxg_S2gk5mksyNLzLPC0W5Iqb8SHyZuH19lpkFEAvd3ZYheo9ZReW3s59Vp75T8vYFBzaRL7__dmJlhCbR0tyBsZqKJY7JC0ixrXER2X4m)。OBJ模型的读取OBJ模型的读取涉及到网格部分的读取和材质部分的读取两个部分,其中网格部分的读取难点在于当模型存在多个材质的时候,需要将模型分为若干个子物体,然后分别为这些子物体添加材质。可是不幸的是到目前为止,博主并没有找到一种行之有效的方法来对这些网格进行分类,所以这里我们假定模型是一个整体且共享同一种材质和一张贴图。如果大家找到了更好的解决方案,请记得告诉我,再次谢谢大家!网格部分在网格读取这部分,因为我们已经假设所有的面构成一个物体,因此我们可以先将OBJ文件内的文本按照换行符来进行分割,然后再按照关键字去判断每一行的数据类型并进行相应的处理就可以了。读取OBJ模型的基本流程是: * 读取顶点、法线、UV以及三角面
* 将三角面合并为四边面
* 根据索引重新计算顶点、法线、UV数组读取顶点、法线、UV以及三角面首先我们来看第一步的代码实现:[C#] 纯文本查看 复制代码/// &summary&
/// 从一个文本化后的.obj文件中加载模型
/// &/summary&
public ObjMesh LoadFromObj(string objText)
if(objText.Length &= 0)
//v这一行前面是两个空格后面是一个空格
objText=objText.Replace(&
//将文本化后的obj文件内容按行分割
string[] allLines = objText.Split('\n');
foreach(string line in allLines)
//将每一行按空格分割
string[] chars = line.Split(' ');
//根据第一个字符来判断数据的类型
switch(chars[0])
//处理顶点
this.vertexArrayList.Add(new Vector3(
ConvertToFloat(chars[1]),
ConvertToFloat(chars[2]),
ConvertToFloat(chars[3]))
case &vn&:
//处理法线
this.normalArrayList.Add(new Vector3(
ConvertToFloat(chars[1]),
ConvertToFloat(chars[2]),
ConvertToFloat(chars[3]))
case &vt&:
this.uvArrayList.Add(new Vector3(
ConvertToFloat(chars[1]),
ConvertToFloat(chars[2]))
GetTriangleList(chars);
在这段代码中,我们首先将文本化的.obj文件按照换行符分割成字符串数组allLines,然后再对每一行按照空格分隔成字符串数组chars,这样我们就可以通过该数组的第一个元素chars[0]来判断当前行中的数据类型。这样我们将每一行的文本读取完后,所有的数据都被存储到了其相对应的列表中。其中,vertexArrayList存储顶点信息、normalArrayList存储法线信息、uvArrayList存储UV坐标。至此,我们完成第一部分中的顶点、法线和UV的读取。这里可以注意到我们在开始对文本化的.obj文件的内容有1次替换操作,这是因为在3dsMax中导出的.obj文件关键字v这一行中v后面的第一处空格位置是有2个空格,而我们在处理的时候是按照空格来分割每一行的内容的,这样chars[1]就会变成一个空字符串,显然这不符合我们的初衷,所以这里就需要对字符串进行这样一个操作,希望大家在解析的过程中注意,好吧,我承认我想吐槽3dsMax了,我不明白同一家公司的3dsMax和Maya为什么不能互相转换,我不明白3dsMax导出.obj文件的时候要做这样奇葩的设定,我更不明白为什么有开源、免费、轻巧的Blender都不去用非要每次都去安装容量动辄上G的盗版软件和不知道会不会变成下一个GhostXXXX的注册机,我更加不能容忍的是封闭的FBX格式和用起来就如同自虐的FBX SDK。好了,吐槽结束,我们接下来来看看三角面是如何读取的。三角面的读取定义在GetTriangleList()方法中,因此三角面的读取实际上首先需要将每一行文本按照空格进行分割,然后再将每一个元素按照/分割,这样就可以依次得到顶点索引、法线索引和UV索引。在某些情况下法线索引可能不存在,所以在处理的过程中需要对其进行处理。[C#] 纯文本查看 复制代码/// &summary&
/// 获取面列表.
/// &/summary&
/// &param name=&chars&&Chars.&/param&
private void GetTriangleList(string[] chars)
List&Vector3& indexVectorList = new List&Vector3&();
List&Vector3& triangleList = new List&Vector3&();
for(int i = 1; i & chars.L++i )
//将每一行按照空格分割后从第一个元素开始
//按照/继续分割可依次获得顶点索引、法线索引和UV索引
string[] indexs = chars.Split('/');
Vector3 indexVector = new Vector3(0, 0);
//顶点索引
indexVector.x = ConvertToInt(indexs[0]);
//法线索引
if(indexs.Length & 1){
if(indexs[1] != &&)
indexVector.y = ConvertToInt(indexs[1]);
if(indexs.Length & 2){
if(indexs[2] != &&)
indexVector.z = ConvertToInt(indexs[2]);
//将索引向量加入列表中
indexVectorList.Add(indexVector);
//这里需要研究研究
for(int j = 1; j & indexVectorList.Count - 1; ++j)
//按照0,1,2这样的方式来组成面
triangleList.Add(indexVectorList[0]);
triangleList.Add(indexVectorList[j]);
triangleList.Add(indexVectorList[j + 1]);
//添加到索引列表
foreach(Vector3 item in triangleList)
faceVertexNormalUV.Add(item);
在这里,我们首先使用一个索引向量列表indexVectorList存储每一行的索引向量。这里的索引向量是指由顶点索引、法线索引和UV索引分别构成Vector3的三个分量,这样做的好处是我们可以节省重新去定义数据机构的时间。好了,我们把所有的索引向量读取完后,按照0、1、2这样的方式组成三角面,这里可能是.obj文件本身定义的一种方式,我们暂且按照这样的方式来处理。最后,全部的三角面会被读取到faceVertexNormalUV列表中,它表示的是每个三角面的顶点、法线和UV的索引向量,是一个List类型的变量。将三角面合并为四边面现在我们读取到的是三角面,接下来我们需要将它们合并成四边面,合并的原理是判断它们是否在同一个面上。如果两个点的顶点索引相同则表明它们是同一个点,如果两个点的法线索引相同则表明它们在同一个面上。好了,我们来看定义的一个方法Combine():
[C#] 纯文本查看 复制代码/// &summary&
/// 合并三角面
/// &/summary&
private void Combine()
//使用一个字典来存储要合并的索引信息
Dictionary&int, ArrayList& toCambineList = new Dictionary&int,ArrayList&();
for(int i = 0; i & faceVertexNormalUV.C i++)
if(faceVertexNormalUV != Vector3.zero)
//相同索引的列表
ArrayList SameIndexList = new ArrayList();
SameIndexList.Add(i);
for(int j = 0; j & faceVertexNormalUV.C j++)
if(faceVertexNormalUV[j]!=Vector3.zero)
if(i != j)
//如果顶点索引和法线索引相同,说明它们在一个面上
Vector3 iTemp = (Vector3)faceVertexNormalUV;
Vector3 jTemp = (Vector3)faceVertexNormalUV[j];
if(iTemp.x == jTemp.x && iTemp.y == jTemp.y)
//将索引相同索引列表然后将其重置为零向量
//PS:这是个危险的地方,如果某个索引信息为Vector3.Zero
//就会被忽略过去,可是貌似到目前为止没有发现为Vector3.Zero的情况
SameIndexList.Add(j);
faceVertexNormalUV[j]=Vector3.
//用一个索引来作为字典的键名,这样它可以代替对应列表内所有索引
toCambineList.Add(i, SameIndexList);
在这里我们使用了一个字典来存储合并后的四边面,这个字典的键名为这一组三角面共同的索引,因为大家都是用同一个索引,因此它可以代替那些被合并的三角面的索引,这样合并以后的四边面列表中元素的个数就是实际的网格中的面数个数,因为如果采用三角面的话,这个面数会比现在的面数还要多,这意味着这样会带来更多的性能上的消耗。这里可能不大好理解,大家可以将博主这里的表达方式换成自己能够理解的方式。佛曰不可说,遇到这种博主自己都说不明白的地方,博主就只能请大家多多担待了。好了,接下来要做的是重新计算顶点、法线和UV数组。可能大家会比较疑惑,这部分内容我们在第一步不是就已经读取出来了嘛,怎么这里又要重新计算了呢?哈哈,且听我慢慢道来!根据索引重新计算顶点、法线、UV数组虽然我们在第一步就读取到了这些坐标数据,可是当我们合并三角面以后,就会出现大量的无用的点,为什么无用呢,因为它被合并到四边面里了,这样我们原来读取的这些坐标数据就变得不适用了。那怎么办呢?在第三步中我们合并四边面的时候已经用一个字典保存了合并后的索引信息,这就相当于我们已经知道哪些是合并前的索引,哪些是合并后的索引,这个时候我们只要根据索引重新为数组赋值即可:[C#] 纯文本查看 复制代码//初始化各个数组
this.VertexArray = new Vector3[toCambineList.Count];
this.UVArray = new Vector2[toCambineList.Count];
this.NormalArray = new Vector3[toCambineList.Count];
this.TriangleArray = new int[faceVertexNormalUV.Count];
//定义遍历字典的计数器
int count = 0;
//遍历词典
foreach(KeyValuePair&int,ArrayList& IndexTtem in toCambineList)
//根据索引给面数组赋值
foreach(int item in IndexTtem.Value)
TriangleArray[item] =
//当前的顶点、UV、法线索引信息
Vector3 VectorTemp = (Vector3)faceVertexNormalUV[IndexTtem.Key];
//给顶点数组赋值
VertexArray[count] = (Vector3)vertexArrayList[(int)VectorTemp.x - 1];
//给UV数组赋值
if(uvArrayList.Count & 0)
Vector3 tVec =(Vector3)uvArrayList[(int)VectorTemp.y - 1];
UVArray[count] = new Vector2(tVec.x, tVec.y);
//给法线数组赋值
if(normalArrayList.Count & 0)
NormalArray[count] = (Vector3)normalArrayList[(int)VectorTemp.z - 1];
这样我们就读取到了合并后的坐标信息,通过顶点、法线、UV、面等信息我们现在就可以生成网格了。这部分我们暂且不着急,因为这基本上属于最后整合到Unity3D中步骤了。好了,为了方便大家理解,我已经完整的项目上传到Github,大家可以通过这里(/qinyuanpei/Unity-Obj-Loader)了解完整的项目。材质部分材质这块儿的解析主要集中在.mtl文件中,和.obj文件类似,它同样是一个文本文件、同样采用关键字、空格、文本字符这样的结构来表示数据,因此我们可以借鉴.obj文件的读取。例如:
1 newmtl Material
newmtl关键字表示从当前行到下一个newmtl关键字所在行间都表示该关键字所对应的材质,这里的Material即表示材质的名称,它和.obj文件中的usemtl关键字相对应,因此我们给模型添加材质的过程本质上是从.obj文件中读取网格,然后找到其对应的材质名称,然后在.mtl文件中找到对应的材质定义,并根据定义来生成材质。目前已知的关键字有:
1 Ka 0.0 0.5880
Ka关键字表示环境反射的RGB数值。
1 Kd 0...640000
Kd关键字表示漫反射的RGB数值。
1 Ks 0...500000
Ks关键字表示镜面反射的RGB数值。
1 map_Ka E:\学习资料\Unity3D技术\Unity3D素材\柳梦璃\Texture\1df2eaa0.dds
map_Ka关键字表示环境反射的纹理贴图,注意到这里使用的是绝对路径,显然我们在读取模型的时候不会将贴图放在这样一个固定的路径,因此我们这里初步的想法读取贴图的文件名而非贴图的完整路径,考虑到我们在Unity3D中一般使用PNG格式的贴图,因此这里需要对路径进行处理。
1 map_Kd E:\学习资料\Unity3D技术\Unity3D素材\柳梦璃\Texture\1df2eaa0.dds
map_Kd关键字表示漫反射的纹理贴图,和环境反射的纹理贴图是类似地,这里就不再说了。此外还有其它的关键字,初步可以推断出的结论是它和3dsMax中材质编辑器里的定义特别地相似,感兴趣的朋友可以进一步去研究。可是现在就有一个新的问题了,怎样将这些参数和Unity3D里的材质关联起来呢?我们知道Unity3D里的材质是是由着色器和贴图两部分组成的,博主对Shader并不是很熟悉,因此这里确实有些说不清楚了。博主感觉对OBJ文件来说,其实使用Diffuse就完全足够了,所以这里对材质部分的研究我们点到为止,不打算做代码上的实现。如果不考虑这些参数的话,我们要做的就是通过WWW或者Resource将贴图加载进来,然后赋值给我们通过代码创建的Shader即可。而对于.obj文件来说,无论是通过Resource、WWW或者是IO流,只要我们拿到了这个文件中的内容就可以使用本文中的方式加载进来,因为我们假定的是读取只有一种材质的模型。有朋友可能要问,那如果有多种材质怎么办呢?答案是在.mtl问价中获取到所有贴图的名称,然后再到程序指定的路径去读取贴图,分别为其创建不同的材质,可是这些材质要怎么附加到它对应的物体上呢?这个目前博主没有找到解决的方法,所以此事暂且作罢吧!在Unity3D中加载obj模型下面我们以一个简单的例子来展示今天研究的成果,我们将从.obj文件中读取出一个简单的模型并将其加载到场景中。好了,我们一起来看代码:[C#] 纯文本查看 复制代码if(!File.Exists(&D:\\cube.obj&))
Debug.Log(&请确认obj模型文件是否存在!&);
StreamReader reader = new StreamReader(&D:\\cube.obj&,Encoding.Default);
string content = reader.ReadToEnd();
reader.Close();
ObjMesh objInstace = new ObjMesh();
objInstace = objInstace.LoadFromObj(content);
Mesh mesh = new Mesh();
mesh.vertices = objInstace.VertexA
mesh.triangles = objInstace.TriangleA
if(objInstace.UVArray.Length & 0)
mesh.uv = objInstace.UVA
if(objInstace.NormalArray.Length&0)
mesh.normals = objInstace.NormalA
mesh.RecalculateBounds();
GameObject go = new GameObject();
MeshFilter meshFilter = go.AddComponent&MeshFilter&();
meshFilter.mesh =
MeshRenderer meshRenderer = go.AddComponent&MeshRenderer&();
这里没有处理材质,所以读取出来就是这个样子的,哈哈!
QQ截图58.png (21.85 KB, 下载次数: 3)
11:14 上传
材质大家可以尝试用代码去创建一个材质,然后在给一张贴图,这个玩玩就好,哈哈!好了,今天的内容就是这样子了,希望大家喜!
工程中的模型迁移;unity模型合成;unity 加载unity gameobject[];unity3d 可以直接导入模型吗;加载外部本地模型;unity3d 重新加载场景;非闭合三角网格fbx模型解析与加载 代码下载;unity3d 获取模型坐标;unity3d,贴图怎么显示一部分;unity3d obj贴图;unity3d导入3dmax模型;unity动态加载本地unity3d模型;unity 动态加载模型;unity3
每日推荐:
71757/5000排名<font color="#FF昨日变化主题帖子积分
日久生情, 积分 1757, 距离下一级还需 3243 积分
日久生情, 积分 1757, 距离下一级还需 3243 积分
蛮牛币5880
在线时间773 小时
本帖最后由 wangshuolot 于
13:54 编辑
如果说obj模型的顶点数超过了65535的话,这种方式还能有效嘛?我接触的一个需求是要导入一个三维扫描出来的模型,面数在百万级别,格式为OBJ,是否有方法导入Unity?谢谢
每日推荐:
73094/5000排名<font color="#FF昨日变化2主题帖子积分
日久生情, 积分 3094, 距离下一级还需 1906 积分
日久生情, 积分 3094, 距离下一级还需 1906 积分
在线时间1511 小时
如果说obj模型的顶点数超过了65535的话,这种方式还能有效嘛?我接触的一个需求是要导入一个三维扫描出来的 ...
面数太多应该倒不进去,需要美工处理
每日推荐:
73094/5000排名<font color="#FF昨日变化2主题帖子积分
日久生情, 积分 3094, 距离下一级还需 1906 积分
日久生情, 积分 3094, 距离下一级还需 1906 积分
在线时间1511 小时
哎,怪我太邪恶了,这图怎么看的好像。。。
[]: 杰克穷死 发帖时在路边捡到 2
蛮牛币,偷偷放进了口袋.
每日推荐:
296/150排名<font color="#FF昨日变化3主题帖子积分
初来乍到, 积分 96, 距离下一级还需 54 积分
初来乍到, 积分 96, 距离下一级还需 54 积分
在线时间48 小时
本帖最后由 xigema 于
16:03 编辑
如果说obj模型的顶点数超过了65535的话,这种方式还能有效嘛?我接触的一个需求是要导入一个三维扫描出来的 ...
请美术帮忙整了个14W顶点的模型,
确认字符串的读写部分问题应该是没有 都可以读出来,
模型没有显示,推测是生产Mesh部分的问题,如果有定义格式 做obj的内部分解即可
PS:读的字符串过程感觉 obj内部是分过了的 v,uv,nomal,f这样的顺序循环进行的。但是对于v多的部分可能还要做程序上的识别分解,有新的再补充吧
那个14W顶点的模型 顺利地读到14W顶点,87W面索引数据,但是在合并三角面时失败了,两个for循环导致运行时间为o(87w^2),直接Unity死掉。
有机会找时间优化吧
每日推荐:
9排名<font color="#FF昨日变化2主题帖子积分
在线时间174 小时
如果说obj模型的顶点数超过了65535的话,这种方式还能有效嘛?我接触的一个需求是要导入一个三维扫描出来的 ...
有朋友测试过,顶点数超过65535的大模型还是不要考虑用代码解析了,就算能解析出来需要的时间也是比较大的
每日推荐:
9排名<font color="#FF昨日变化2主题帖子积分
在线时间174 小时
请美术帮忙整了个14W顶点的模型,
确认字符串的读写部分问题应该是没有 都可以读出来,
模型没有显示,推 ...
哈哈,确实!当里面的顶点数目达到一定规模的时候,两个for循环会变成不小的灾难,这个东西就当研究研究,玩玩就好啊,哈哈
每日推荐:
2114/150排名<font color="#FF昨日变化5主题帖子积分
初来乍到, 积分 114, 距离下一级还需 36 积分
初来乍到, 积分 114, 距离下一级还需 36 积分
在线时间52 小时
老外有写过类似我也用测试过 也是有点数限制,如果能处理一下还是可以加载的,就是重新构建面也是比较耗资源和耗时!好处是可以多平台共用模型了
每日推荐:
5595/1000排名<font color="#FF昨日变化1主题帖子积分
熟悉之中, 积分 595, 距离下一级还需 405 积分
熟悉之中, 积分 595, 距离下一级还需 405 积分
在线时间114 小时
哈啊哈,不错哦,好久没到蛮牛上来逛逛了
每日推荐:
2148/150排名<font color="#FF昨日变化1主题帖子积分
初来乍到, 积分 148, 距离下一级还需 2 积分
初来乍到, 积分 148, 距离下一级还需 2 积分
在线时间58 小时
请问,可以解析fbx吗
每日推荐:
认证开发者
经过游戏蛮牛认证的独立开发者Maya入门到精通教程 - 影视后期制作学院 - 勤学网
&当前位置: > Maya入门到精通教程
Maya入门到精通教程
课级:基础入门
时长:41.0小时
单价:&yen690元
助学价:&yen280元
年会员:&yen1900元/年
今日促销:&yen499元 影视后期制作学院所有教程免费学
&& Maya作为目前市面上最流行的计算机三维建模,动画,渲染软件,被广泛应用于各行各业,比如影视制作、广告设计、室内外装潢、游戏制作等领域。
& 本教程系统的讲解了Maya的基本概念界面和操作、使用方法和技巧,并且提供了多种设计模型案列,深入浅出地介绍Maya各种功能以及具体应用,让初学者通过理论与实践相结合,去了解使用Maya,并利用Maya进行实战创作。这是一套非常适合初学者自学的教程。
& 本教程主要分十一章主要是几大部分,一是Maya的基础对软件的认识和常用的一些设置和操作。二是通过简单到复杂的案列让大家认识和熟悉建模,建模使用了2个模块的建模方式一个是多边形建模一个是Nurbs建模。三是通过这些案例技巧熟练掌握maya建模,通过模型案例给他上材质打灯光了解材质灯光的用法。详细讲解了灯光的原理和渲染器的设置和原理。材质等赋予和UV的拆分。最后讲解动画的制作和绑定。让学员能够全面的了解Maya学习Maya。
第一章 Maya2014的认识与常用设置
Maya2014的基本界面的介绍. 菜单栏的介绍 菜单的摘取. 浮动菜单的关闭.模块的转换以及快捷键等常用基本功能。
Maya2014通道盒的讲解. 设置撤销. 单位的设置. 视图导航以及操作 .查找报错文件等常用设置的讲解。
第二章 Maya2014的基本操作
&Maya2014的基本操作讲解打开场景文件.保存场景文件.新建场景文件. 导入外部场景文件.导出场景内模型.创建工程目录.设置工程目录等讲解.。
Maya2014的物体冻结.物体轴心点位置的改变.各种吸附命令的讲解.关联复制物体.等距复制物体.旋转复制物体.将多边形线转换成曲线.将曲线模型转换成多边形模型.删除历史对象.点数的显示与隐藏.骨关节大小的设置.maya渲染层的应用.UV编辑器认识.outline大纲的应用等常用操作。
第三章 Polygons多边形建模——基础篇
利用Polygons多边形建模模块制作一个多边形模型桌子。
利用Polygons多边形建模模块制作一个弹簧和麻绳。
利用Polygons多边形建模模块制作一个红酒瓶。
利用Polygons多边形建模模块制作一个手表,本节讲解表盘的制作。
利用Polygons多边形建模模块制作一个手表,本节讲解表盘上的文字和指针制作。
利用Polygons多边形建模模块制作一个手表,本节讲解表盘的细化和表带的制作。
利用Polygons多边形建模模块制作一个手表,本节讲解表带的细化制作。
利用Polygons多边形建模模块制作一个手表,本节讲解表带的细化和整体地方的细化制作。
利用Polygons多边形建模模块制作一个斧头。
利用Polygons多边形建模模块制作一个台灯。
第四章 Polygons多边形建模——升级篇
利用Polygons多边形建模模块制作一个高精度的相机模型。本节讲解的是搭建相机的主体框架。
利用Polygons多边形建模模块制作一个高精度的相机模型。本节讲解的是搭建相机的镜头制作。
利用Polygons多边形建模模块制作一个高精度的相机模型。本节讲解的是相机上面的logo的制作。
利用Polygons多边形建模模块制作一个高精度的相机模型。本节讲解的是相机显示屏的制作。
利用Polygons多边形建模模块制作一个高精度的相机模型。本节讲解的是相机整体细节的调整。
利用Polygons多边形建模模块制作一个建筑模型。本节讲解建筑的大型搭建。
利用Polygons多边形建模模块制作一个建筑模型。本节讲解建筑的细节刻画。
利用Polygons多边形建模模块制作一个建筑模型。本节讲解建筑的整体细节调整。&
&利用Polygons多边形建模模块制作一个卡通熊的模型。本节讲解卡通熊的头部制作。
&利用Polygons多边形建模模块制作一个卡通熊的模型。本节讲解卡通熊的头部细化制作。
&利用Polygons多边形建模模块制作一个卡通熊的模型。本节讲解卡通熊的头部细节制作。
&利用Polygons多边形建模模块制作一个卡通熊的模型。本节讲解卡通熊的身体制作。
&利用Polygons多边形建模模块制作一个卡通熊的模型。本节讲解卡通熊的手部制作。
&利用Polygons多边形建模模块制作一个卡通熊的模型。本节讲解卡通熊的腿部制作。
第五章 NURBS建模——基础篇
利用Maya2014NURBS模块制作一个高脚杯。
利用Maya2014NURBS模块制作一个油漆桶。
利用Maya2014NURBS模块制作一个管道。
利用Maya2014NURBS模块制作一个小号。
第六章 NURBS建模讲解——升级篇
利用NURBS建模模块制作自行车的轮胎。
利用NURBS建模模块制作自行车的轮胎。
利用NURBS建模模块制作自行车的轮胎。
利用NURBS建模模块制作自行车的大梁。
利用NURBS建模模块制作自行车的大梁。
利用NURBS建模模块制作自行车的把手。
利用NURBS建模模块制作自行车的刹车片。
利用NURBS建模模块制作自行车的刹车片。
利用NURBS建模模块制作自行车的座位。
利用NURBS建模模块制作自行车的脚踏板。
利用NURBS建模模块制作自行车的脚踏板。
利用NURBS建模模块制作自行车的细节调节。
利用NURBS建模模块制作自行车的细节调节。
利用NURBS建模模块制作自行车的细节调节。
利用NURBS建模模块制作自行车的细节调节。
第七章 渲染篇——Maya2014默认渲染器
&本节讲解的是Maya2014默认渲染器 . Common(窗口)选项卡参数 &.Maya Software选项卡参数 &.Render View(渲染窗口)等渲染常用渲染知识的讲解。
本节讲解Maya的灯光设置. 以及灯光类型和 灯光属性等灯光常用设置讲解。&
本节讲解Maya2014的Hypershade(材质编辑器)。
本节讲解Maya2014的常用材质中的表面材质、体积材质、置换材质。
本节讲解Maya2014的常用材质中的辉光属性。
本节讲解Maya2014的常用材质中的卡通材质。
本节讲解Maya2014材质中的水墨材质制作了鱼虾等国画中的常用效果。
本节讲解Maya2014材质中的水墨材质制作了鱼虾等国画中的常用效果。
本节讲解Maya2014材质中的水墨材质制作了鱼虾等国画中的常用效果。
第八章 Maya2014常用工具节点讲解
本节讲解材质节点中的Bump2d和Bump3d(2D和3D凹凸节点)节点的使用。
本节讲解材质节点中Condition、Sampler Info、Gamma Correct节点的使用。
本节讲解材质节点中Env Chrome 、 Blender Color 、 Contrast节点的使用。
本节讲解材质节点中的双面材质的使用。
本节讲解材质节点中的玻璃材质的使用。
第九章 渲染提升篇——Mental ray渲染器的讲解
本节讲解高级渲染器Mentral ray的常用设置。
本节讲解Mentral ray的常用材质纹理节点以及使用方法。
本节讲解Mentral ray的景深的使用方法。
本节讲解Mentral ray的光线追踪、线框渲染怎么操作。
本节讲解Mentral ray的FG、物理天光操作。
本节讲解Mentral ray的分层渲染、图像照明技术。
本节讲解Mentral ray的全局照明GI渲染。
本节讲解利用Mentral ray渲染器渲染自行车。
第十章 渲染篇——实例版
本节讲解渲染器渲染以前做的香水瓶模型。
本节讲解渲染器渲染金属材质。
本节讲解渲染器渲染金属材质的金属手表。
本节讲解渲染器渲染塑料材质的玩具熊。
本节讲解渲染器渲多个材质陶瓷材质和金属的台灯。
本节讲解桌子的材质贴图以及渲染。
本节讲解桌子的材质贴图以及渲染。
本节讲解材质贴图中的高级部分UV的拆分,利用插件拆分UV。
本节讲解材质贴图中的高级部分UV的拆分,利用插件拆分UV和摆放UV。
本节讲解的是建筑的材质灯光以及渲染。
第十一章 贴图拓展知识——建筑贴图的绘制
本节讲解的是建筑的贴图绘制。
本节讲解的是建筑的贴图绘制。
本节讲解的是建筑的贴图绘制。
本节讲解的是建筑的贴图绘制。
本节讲解的是建筑的贴图绘制。
本节讲解的是建筑的贴图绘制。
本节讲解的是建筑的贴图绘制。
本节讲解的是建筑的贴图绘制。
本节讲解的是建筑的贴图绘制。
本节讲解的是建筑的贴图绘制。
本节讲解的是建筑的贴图绘制。
第十二章 动画篇
本节讲解的是动画中最常用的路径动画、簇变形动画。
本节讲解的是动画中最常用的变形器动画。
本节讲解的是动画中最常用的驱动关键帧动画。
本节讲解的是实例台灯的骨骼绑定,讲解骨骼和绑定的知识。
主攻:maya次世代游戏设计,maya网络游戏设计
简介:资深专业游戏设计师,曾担任广州黑瞳数码高级游戏设计师,参与过众多项目的制作,如北京昆仑,完美世界,网易,腾讯等外包项目,实战经验相当丰富。同时也在广东中山大学担任网络游戏特聘讲师,广州美术学院担任maya客座讲师以及暨南大学担任次时代游戏客座讲师。曾出版过几套大学教材,由簪南大学出版社出版。现于广州某大型CG培训学院担任maya游戏高级讲师。
Maya基础操作讲解
多边形-桌子建模案例
多边形-弹簧和麻绳建模
多边形-红酒瓶建模
多边形-手表建模
多边形-斧头建模
多边形-台灯
多边形-相机建模
多边形-建筑建模
多边形-熊建模
曲面-红酒杯建模
曲面-油漆桶建模
曲面-小号建模
曲面-自行车建模
材质-自发光材质
材质-水墨材质
材质-玻璃材质
Mentral ray-全局光照
Mentral ray-光线跟踪
实战案例-自行车
实战案例-红酒瓶
实战案例-红酒瓶
实战案例-红酒瓶
实战案例-金属字
实战案例-台灯
动画-路径动画
动画-变形器
本套教程单价:&yen690元
助学价:&yen280元&
影视后期制作学院年会员:&yen1900元/年
今日促销:&yen499元 可学习所有教程+新增教程&
本学院已有39 套教程
总计 635 个小时
学员评价&鼠标移到评论上可暂停滚动
木子茶对我来说,去实体培训班的费用是比较高的,也受时间地点的限制。在勤学网学习就比较自由,费用也相对少很多,课程经过剪辑化繁为简,学习效率更高,是工作之余提升的好网站。
站在你左边买了勤学网的课程以后,受益很大,比在学校学习的内容更贴近实际工作,有疑问的时候,老师能耐心解答,在这样一个良好的环境下,我相信自己能越学越好。
蓝方在勤学网学习有段时间了,感觉确实很棒,讲课的老师本身就是设计大师,传授经验毫无保留,好多好多的干货啊,花这点儿钱,实在是太值了!绝对行业的良心!
我爱机器猫在网上学过很多教程,免费的收费的,相比之下,勤学网的教程是最系统专业的,从完善的基础理论到丰富的高端案例实战,能一站式满足我的学习需求,省心省力。
大海的鱼我本来准备辞掉工作去大城市参加培训班的,现在有了勤学网,不用辞掉现在的工作,也免去了高昂的学费和食宿费,还学到了更尖端的课程,实在太好了!
繁星点点在勤学网学习非常灵活自由,随时登录随时学习,没有观看次数限制,课程精编高效,让我用最少的时间学习到最有用的知识。
黑羽加入勤学网后感觉就像捡了个宝,这里的教程完全勾起了我的学习欲望,吸引着我不停地学习,这种每天都在快速进步的感觉真是好!
火烈鸟与网上大部分只讲软件基础应用的教程不同,勤学网的教程延展性很强,很多教程直接深入商业案例,能学到最前沿的案例实操经验,学起来很过瘾。
暗之天使勤学网的教程非常清晰,课程剪辑很好,知识点衔接有序,学习过程中还有问答环节,学起来生动有趣,收效甚快。
一生何求比去培训班省钱,而且还能按照自己的时间和进度去安排学习,教程也很牛,帮上我大忙了。
秋天的风我是完全零基础,但感觉勤学网的教程很合我的胃口,课程由浅入深,富有逻辑性,学起来轻松自如。感谢勤学网,让我实现设计师梦想变得如此容易。
与或非课程安排很有针对性,很多都是实战教学,市面上是很少看到这么实用的教学内容的,老师授课也很有经验,非常适合设计师们自我修炼。
莉莉雅购买之前担心内容与宣传不符,所以问了很多问题,客服一直非常耐心地解答。看了课程觉得内容比介绍的还丰富,老师讲得好,案例多,视频高清,音质好。对勤学网很满意。
棒棒糖女孩勤学网的教程非常实用,针对性也很强,能学到实实在在与工作相关技巧,快速提升自己的竞争力。
Dr熊根据我多年工作和学习经验推测,勤学网绝对是全网性价比最高的学习网站,学习模式、课程质量、服务态度都没得说,大力支持!
龙海在勤学网到了很多高级技法,众多设计大师的先进设计理念和经验给我许多启发。现在做设计感觉思路更广,灵感也更丰富,作品更加有feel了。
我们都在勤学网
我是一名平面设计工作者,工作有五年的时间,一直从事的是一些简单的排版工作。我喜欢商业修图,...
从事景观设计工作俩年了,一直感觉大学所学知识不太系统。一次偶然的机会在网上看到了勤学网的介...
自己一直是在做设计,也一直想系统的学习软件,去培训中心了解了那里的课程,觉得那些课程都很肤...
第一次知道勤学网,是在网上搜索平面设计相关课程的时候点进来的,当时在单位附近的一家小培训机...
购买了该教程的同学
niyangyang
123456lulu
目标是CG大神
木头张居士
我的天空迩的城
您可能感兴趣的课程
讲师:张利峰
27299次170条24次
讲师:陈曦昱
41180次66条35次
讲师:杨庆旺
25626次86条46次
讲师:马罡晨
117236次240条67次
讲师:马森
7843次137条24次
讲师:彭隽
7380次110条44次
讲师:陈思达
49872次96条61次
讲师:马罡晨
111362次137条118次

我要回帖

更多关于 华硕笔记本改win7 的文章

 

随机推荐