new SuperMap3D.ShaderSource(options)
包含各种输入的对象,这些输入将组合成最终的 GLSL 着色器字符串。
Name |
Type |
Description |
options |
Object
|
optional
具有以下属性的对象:
Name |
Type |
Default |
Description |
sources |
Array.<String>
|
|
optional
字符串数组,包含着色器的 GLSL 代码。 |
defines |
Array.<String>
|
|
optional
包含要 #define 的 GLSL 标识符的字符串数组。 |
pickColorQualifier |
String
|
|
optional
GLSL限定符,uniform 或varying ,用于输入czm_pickColor 。当定义时,将生成一个拾取片段着色器。 |
includeBuiltIns |
Boolean
|
true
|
optional
如果为true,将合并着色器中引用的内置函数包含在内。如果这个着色器将成为另一个着色器的源代码,为了避免重复函数,请设置为false。 |
|
Throws:
Example:
// 1. Prepend #defines to a shader
var source = new SuperMap3D.ShaderSource({
defines : ['WHITE'],
sources : ['void main() { \n#ifdef WHITE\n gl_FragColor = vec4(1.0); \n#else\n gl_FragColor = vec4(0.0); \n#endif\n }']
});
// 2. Modify a fragment shader for picking
var source = new SuperMap3D.ShaderSource({
sources : ['void main() { gl_FragColor = vec4(1.0); }'],
pickColorQualifier : 'uniform'
});