代码修改shader Properties uniform变量
来源:互联网 发布:如何学数据库管理系统 编辑:程序博客网 时间:2024/05/01 16:55
2.4 Shader的数据接口:属性和 uniform变量
如果我们想设定一个特定的值到Shader,即为了在实例化Shader为Material时,可以通过为属性赋值达到创建具体对象的目的,我们需要在Properties块中定义自己所需要的属性。
2.4.1在Properties块中定义属性
我们能够定义如下这些属性:
2.4.2通过图形界面操作属性
在如图2.1Properties块中定义了这些属性之后,我们可以在编译器中通过图形界面来给它们赋值,
所示。
2.4.3 通过脚本操控属性
除了图形界面之外,还能够通过脚本来读取和写入我们定义的属性。下面是个C#脚本对属性的读取操作:
cube属性是3D贴图,是Texture 2D贴图的子类,range属性则是一种限制了范围的float类型,本质和float一样。如果我们在脚本中进行操作的属性在Shader中并不存在,那么Unity只会将此操作忽略,而不会报错。
2.4.4矩阵: 不能在属性块定义的变量
矩阵口前是不能在Properties块中定义的,我们必须首先在Shader中声明它,然后通过脚本来进行读取和写入。下面是在Shader中对一个矩阵的声明:
下面是在脚本中对该矩阵的读取和写入。
2.4.5 在Cg代码中使用属性
除了Unity的固定管线因为有其特定语法之外,在Properties块中定义的属性必须在代码中再声明一次才能被使用。它们在Cg代码中的声明方式如下:
除了上而提到的这些类型的变量外,还可以使用half4、fixed4和half、fixed,这两种类型的变量在空间上比float4和float分别减少一半和又一半,因此在精度问题不是很突兀的情况下可以使用它们来略微提高性能。
如果我们想设定一个特定的值到Shader,即为了在实例化Shader为Material时,可以通过为属性赋值达到创建具体对象的目的,我们需要在Properties块中定义自己所需要的属性。
2.4.1在Properties块中定义属性
我们能够定义如下这些属性:
2.4.2通过图形界面操作属性
在如图2.1Properties块中定义了这些属性之后,我们可以在编译器中通过图形界面来给它们赋值,
所示。
2.4.3 通过脚本操控属性
除了图形界面之外,还能够通过脚本来读取和写入我们定义的属性。下面是个C#脚本对属性的读取操作:
cube属性是3D贴图,是Texture 2D贴图的子类,range属性则是一种限制了范围的float类型,本质和float一样。如果我们在脚本中进行操作的属性在Shader中并不存在,那么Unity只会将此操作忽略,而不会报错。
2.4.4矩阵: 不能在属性块定义的变量
矩阵口前是不能在Properties块中定义的,我们必须首先在Shader中声明它,然后通过脚本来进行读取和写入。下面是在Shader中对一个矩阵的声明:
下面是在脚本中对该矩阵的读取和写入。
2.4.5 在Cg代码中使用属性
除了Unity的固定管线因为有其特定语法之外,在Properties块中定义的属性必须在代码中再声明一次才能被使用。它们在Cg代码中的声明方式如下:
除了上而提到的这些类型的变量外,还可以使用half4、fixed4和half、fixed,这两种类型的变量在空间上比float4和float分别减少一半和又一半,因此在精度问题不是很突兀的情况下可以使用它们来略微提高性能。
1 0
- 代码修改shader Properties uniform变量
- opengl shader 2 uniform变量
- opengl 教程(5) shader(2) uniform变量
- Cg入门9:Vertex Shader - Uniform 与 properties属性
- shader三种变量类型(uniform,attribute和varying)
- 用模板类封装OpenGL Shader 的Uniform变量
- 用模板类封装OpenGL Shader Uniform 变量2
- shader三种变量类型(uniform,attribute和varying)
- shader三种变量类型(uniform,attribute和varying)
- shader三种变量类型(uniform,attribute和varying)
- shader三种变量类型(uniform,attribute和varying)
- shader三种变量类型(uniform,attribute和varying)
- shader着色器变量——uniform、attribute和varying
- Shader的数据接口:属性和uniform变量
- 09 WebGL通过uniform变量修改点的颜色
- 代码修改Shader的颜色
- (转)shader三种变量类型(uniform,attribute和varying)
- OpenGL ES Shader的三种变量类型uniform,attribute和varying
- [C#]DataGrid控件和DateSet集合生成csv文件的代码
- jpa分页标签保存条件查询参数的设置
- flex布局详解
- leetcode-258. Add Digits 进阶,递归
- js的事件绑定
- 代码修改shader Properties uniform变量
- vim 忽略大小写查找字符串
- MessageBox 所有按钮 图标样式
- Facial_keypoints_deeplearning_cnn
- Error[Li005]: no definition for "__write"
- 欢迎使用CSDN-markdown编辑器
- Java 中 Map与JavaBean实体类之间的相互转化
- xib连线问题
- MFC可编辑CListCtrl