Uniform
编辑教程Uniform
Uniforms 是 GLSL 着色器中的全局变量。
示例
在声明一个 ShaderMaterial 的 Uniform 变量时,该变量被值或对象声明。 When declaring a uniform of a ShaderMaterial, it is declared by value or by object.
uniforms: {
time: { value: 1.0 },
resolution: new THREE.Uniform(new THREE.Vector2())
}
Uniform 种类
每个 Uniform 必须包括一个 value 属性。value 的类型必须和下表中 GLSL 的基本类型相对应。
同样,Uniform 的结构体和队列 也是支持的。 GLSL基本类型队列必须要么被显示声明为一个 THREE 对象的队列,要么被声明为一个包含所有对象数据的队列。
这就是说, 队列中的 GLSL 基础类型不能再是一个队列。举例,一个有 5 个 vec2 元素的队列,必须是一个包含 5 个 Vector2 的队列数组, 或包含 10 个 number 的队列。
Uniform 类型
GLSL 类型 | JavaScript 类型 |
---|---|
int | Number |
float | Number |
bool | Boolean |
bool | Number |
vec2 | THREE.Vector2 |
vec2 | Float32Array (*) |
vec2 | Array (*) |
vec3 | THREE.Vector3 |
vec3 | THREE.Color |
vec3 | Float32Array (*) |
vec3 | Array (*) |
vec4 | THREE.Vector4 |
vec4 | THREE.Quaternion |
vec4 | Float32Array (*) |
vec4 | Array (*) |
mat2 | Float32Array (*) |
mat2 | Array (*) |
mat3 | THREE.Matrix3 |
mat3 | Float32Array (*) |
mat3 | Array (*) |
mat4 | THREE.Matrix4 |
mat4 | Float32Array (*) |
mat4 | Array (*) |
ivec2, bvec2 | Float32Array (*) |
ivec2, bvec2 | Array (*) |
ivec3, bvec3 | Int32Array (*) |
ivec3, bvec3 | Array (*) |
ivec4, bvec4 | Int32Array (*) |
ivec4, bvec4 | Array (*) |
sampler2D | THREE.Texture |
samplerCube | THREE.CubeTexture |
(*) 与最内层队列中 GSLS 的类型保持一致。包含队列中所有矢量的元素或矩阵中的元素。
构造函数
Uniform( value : Object )
value -- 包含需要设置 Uniform 数据的对象。 数据类型必须是上述类型中的一种。
属性
.value : Object
当前 uniform 的值。
方法
.clone () : Uniform
返回该 Uniform 的克隆。
如果 Uniform 的 value 属性是一个带 clone() 方法的 Object,则克隆该对象时,value 的 clone() 方法也会被调用,否则克隆时只会使用赋值语句。 队列中的值会在该 Uniform 和 被克隆对象间共享。
Mos固件,小电视必刷固件
ES6 教程
Vue.js 教程
JSON 教程
jQuery 教程
HTML 教程
HTML 5 教程
CSS 教程
CSS3 教程
JavaScript 教程
DHTML 教程
JSON在线格式化工具
JS在线运行
JSON解析格式化
jsfiddle中国国内版本
JS代码在线运行
PHP代码在线运行
Java代码在线运行
C语言代码在线运行
C++代码在线运行
Python代码在线运行
Go语言代码在线运行
C#代码在线运行
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。
大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
选择支付方式:
立即支付
¥
9.99
无法付款,请点击这里
金额: 0 元
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟