纳金网

标题: Unity3D脚本中文教程2.35 [打印本页]

作者: 奔跑的小兔    时间: 2012-5-25 15:49
标题: Unity3D脚本中文教程2.35
MaterialPropertyBlock





应用的一块材质值。

MateriaIPropcrtyBlock被Graphics.DrawMesh使用。当你想用相同的材质(但有稍微有些不同的属性)绘制多个物体时,使用这个。例如,如果你想稍微改变每个网络的颜色时。

出于性能原因,属性块只能包含有限数量的属性值。两个4x4矩阵,六个向量颜色或12个浮点数可以存储在这个块中,存储空间时共享,所以存储一个矩阵留下两倍少的空间来
存储向量和浮点数。

Graphics。DrawMesh 拷贝传递的属性块,因此最有效的方法是使用它来创建一个快并为所有DrawMesh 调用使用它。使用Clear来清除块的值,AddFloat,AddVector,AddColot,AddMatrix来添加值。

参见:Graphics,DrawMesh,Matcrial。

函数

◆  function AddColor(name:string,value:Colo):void
◆  function AddColor(nameID:int,value:Colo):void
描述:添加一个颜色材质属性。

出于性能原因,属性块只能包含有限量的属性值。两个4x4矩阵,六个向量/颜色或12个浮点数可以存储在这个块中。存储空间时共享,使用存储一个矩阵留下两个倍少的空间来存储向量和浮点数。当块的存储空间填满后,额外的Add调用将被忽略。

使用nameID的函数变量体更快,如果你重复添加相同名称的属性,使用Shader.propertyToID来获取不同的标示,并传递这个标示到AddColor。
◆  function AddFloat(name:string,value:float):void

◆  function AddFloat(nameID:int,value:float):void

描述:添加一个浮点材质属性。

出于性能原因,属性块只能包含有限数量的属性值。两个4x4矩形,六个向量/颜色或存12个浮点数可以存储在这个块中,存储空间是共享,所以存储一个矩阵留下两倍少的空间来存储向量和浮点数。当块的存储空间填满后,额外的Add调用将被忽略。

使用nameID的函数变体更快,如果你重复添加相同名称的属性,使用Shader.PropertyToID来获取不同的标示,并传递这个标示到AddFloat。

◆  function AddMatrix(name:string,value:Matrix4x4):void

◆  function AddMatrix(nameID:int,value:Matrix4x4):void
描述:添加一个矩阵材质属性。

处于性能原因,属性块只能包含有限数量的属性值。两个4x4矩阵,六个向量/颜色或12个浮点数可以存储在这个块中。存储空间时共享,所以存储一个矩阵留下两倍少的空间来存储向量和浮点数。当块的存储空间填满后,额外的Add调用将被忽略。

使用nameID的函数变体更快,如果你重复添加相同名称的属性,使用Shader.PropertyToID来获取不同的标示,并传递这个标示到AddMatrix。

◆  function AddVector(name:string,value:Vector4):void

◆  function AddVector(nameID:int,value:Vector4):void

描述:添加一个向量材质属性。

出于性能原因,属性块只能包含有限数量的属性值。两个4x4矩阵,六个向量/颜色或12个浮点数可以存储在这个块中。存储空间是共享,所以存储一个矩阵留下两倍少的空间来存储向量和浮点数。当块的存储空间填满后,额外的Add调用将被忽略。

使用nameID的函数变体更快,如果你重复添加相同名称的属性,使用

Shader.ProrertyToLD来获取不同的标示,并传递这个标示到AddVector。

◆  function Clear():void

描述,清除材质属性值。

GrawMesh 拷贝传递的属性块,因此最有效的方式是使用它来创建一个块并为

所有DrawMesh调用使用它。使用Clear来清除块的值,ADDFloat,AddVector,AddColor,AddMatrix来添加值.
作者: .    时间: 2012-12-28 20:13
谢谢楼主的用心分享,顶一个~~!!




欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5