标签:smo mvm ebe acl who jmm vts svm 获得
整个CG领域中这三个概念差不多,在一般的实践中,大致上的层级关系是:材质(Material)包含贴图(Map),贴图包含纹理(Texture)
纹理是最基本的数据输入单位,游戏领域基本上都用的是位图,此外还有程序化生成的纹理(Procedural Texture)
贴图(Map)其实包含了另一层含义:映射,其功能是把纹理通过UV坐标映射到3D物体表面。贴图包含了除了纹理以外其他很多信息,比如说:UV坐标,贴图输入输出控制等。
材质是一个数据集,主要功能就是给渲染器提供数据和光照算法,贴图就是其中数据的一部分,根据用途不同,贴图也会被分成不同的类型,比如:Diffuse,Map,Specular Map,Normal Map,Gloss Map等,另一个重要部分就是光照模型shader,用于实现不同的效果。
|
private void GetTriangle()
{
MeshFilter filter = gameObject.AddComponent<MeshFilter>();
Mesh mesh=new Mesh();
filter.sharedMesh = mesh;
//构建三角形的三个顶点,并赋值给mesh.vertices
mesh.vertices=new Vector3[]{new Vector3(0,0,1),new Vector3(0,2,0),new Vector3(2,0,5),};
//构建三角形的顶点顺序
mesh.triangles=new int[]{0,1,2};
mesh.RecalculateNormals();
mesh.RecalculateBounds();
//使用shader构建一个材质,并设置材质颜色
Material mat=new Material(Shader.Find("Diffuse"));
mat.SetColor("_Color",Color.yellow);
//构建一个MeshRenderer并把上面的材质赋值给renderer.sharedMaterial
//使其把上面构造的mesh渲染到屏幕上
MeshRenderer renderer = gameObject.AddComponent<MeshRenderer>();
renderer.sharedMaterial = mat;
}
private void GetPentagon()
{
MeshFilter filter = gameObject.AddComponent<MeshFilter>();
Mesh mesh = new Mesh();
filter.sharedMesh = mesh;
mesh.vertices = new Vector3[]
{
new Vector3(1, 0, 0),
new Vector3(3, 0, 0),
new Vector3(0, 2, 0),
new Vector3(4, 2, 0),
new Vector3(2, 4, 0),
};
mesh.triangles = new int[] {0, 3, 1, 0, 2, 3, 2, 4, 3};
mesh.RecalculateNormals();
mesh.RecalculateBounds();
Material mat = new Material(Shader.Find("Diffuse"));
mat.SetColor("_Color",Color.blue);
MeshRenderer renderer = gameObject.AddComponent<MeshRenderer>();
renderer.sharedMaterial = mat;
}
|
标签:smo mvm ebe acl who jmm vts svm 获得
原文地址:https://www.cnblogs.com/DevMi/p/mesh.html