关于Unity中的几何体,材质和FBX模型
一、创建几何体的类型
1: 创建平面 Plane;
2: 创建立方体 Cube;
3: 创建球体 Sphere;
4: 创建胶囊体 Capsule;
5: 创建圆柱体 Cylinder;
6: 3D文字 3D text;
创建出来的几何体,自带这些组件:
1.transform
2.Mesh Filter:网格
3.Collider:碰撞体
4.Mesh Renderer:网格绘制,把材质拖进Material属性中就可以绘制出几何体的图案
二、材质
在resources文件夹下面创建一个metarial文件夹,里面放几何体的材质球。
一般是先创建材质球,把贴图拖进材质球的贴图属性中,然后在几何体中的材质属性栏,把贴好图的材质球拖进去,几何体才可以显示纹理,
还有一种方法就是直接把贴图拖到scene视图的几何体上面,然后Unity编辑器会自动帮我们在Materials文件下面生成一个材质球。
1.材质球的shader着色器
shader着色器常用Standard和Mobiie/Diffuse模式
(1)Standard模式
Albedo:反射贴图,也就是材质的贴图
Metallic:反射光线强度
(2)Mobiie/Diffuse(使用的比较多)模式
漫反射,用的是贴图的本色。
Tiling:如果贴图属性Wrap Mode为Repeat,那么这里是设置平铺的个数,x=1,y=1:在x轴上贴图只显示1次,在y轴上贴图只显示1次。x=2,y=1:在x轴上贴图显示2次,在y轴上贴图只显示1次。足球场的制作。
如果贴图属性Wrap Mode为Clamp,那么这里如果x=2,y=2:最后会显示一个四分之一的贴图与在右上角,其他位置用贴图拉伸填充。
Offset
2.贴图的属性
Wrap Mode:Repeat平铺,Clamp拉伸
Filter Mode:图片拉伸的算法,Point缩放时没有插值,效果差,Bilinear缩放时带插值,效果好。
三、FBX模型导入
在resources文件夹下面,以模型的名字命名一个文件夹,把相应的FBX和png贴图文件放进去,会自动帮我们生成一个材质文件夹。
(导入前:FBX和图片文件,导入后:FBX,图片文件,模型文件,Materials 文件夹),使用FBX是因为美术和动画比较好
1.各大工具导出到Unity的模型比例
2.FBX文件里面记录的内容
a.模型顶点坐标,三维的
b.模型材质的纹理坐标[0,1]
c.模型动画
3.导入FBX和png文件到模型文件夹后自动生成的材质文件夹,里面的那个材质球可能没有正确关联到我们的贴图,这是因为材质球的命名不规范,这时候就需要手动关联贴图,Standard模式下,点击材质球的Albedo属性,选择对应的贴图。
Mobiie/Diffuse模式下,点击图片,把贴纸放进去,再点击一些属性并变化(随便选),Materials Naming,Materials Search然后点击Apply应用就行了。
如果是比较复杂的模型,没有关联好贴图
可以先试一下改变复杂模型的Materials Naming,Materials Search属性看能不能自动导入。
不行的话进行手动关联。
手动关联的步骤:
a.先把空的模型拖入场景。
b.点击场景中的空模型的其中一个子节点BodyL。
c.BodyL子节点的Materials属性里面的Element 0,Element 1表示的是这个子节点用到的材质球。
d.在BodyL子节点的Inspector面板下,找到Element 0,Element 1对应的那两个材质组件。
e.把Element 0,Element 1对应的那两个材质组件的模式改为Mobiie/Diffuse模式。
f.把和BodyL子节点名字一样的图片BodyL.png(贴图)拖到Element 0,Element 1对应的那两个材质组件的图片的位置。
但是美术一般都是自己先在Unity里面试好模型后,交给程序员的,所以模型一般没什么问题,但是从网上下载下来的资源就会遇到命名不规范,必须自己手动导入的情况。
如果是Standard模式,则贴图的显示的颜色是混合了贴图和自定义的颜色的,看起来有点奇怪
如果是Mobiie/Diffuse模式,则贴图是显示原来的颜色,最佳的品质,但是性能消耗比较大
4.一个模型下面有好多子节点,不可能是只有节点,这些节点也有自己的材质,有时候不确定是哪个贴图,可以看这些子节点的材质属性的名字。
5.美术把资源文件夹Resources整个从Unity里面导出来,用的是Assets-->Export Package,最后生成一个XXX.Package文件
程序员用的是Assets-->Import Package,把XXX.Package文件导进来可以直接用
其实Export Package还可以一起打包资源,脚本和场景,可以打包一整个项目,所以看到XXX.Package文件就应该知道这是别人打包好的东西,可以直接导入。