【发布时间】:2012-06-19 18:20:42
【问题描述】:
如何在 Three.js 着色器上启用扩展?
到目前为止我的代码:
获得扩展:
var domElement = document.createElement( 'canvas' );
var gl = domElement.getContext('webgl') || domElement.getContext('experimental-webgl');
gl.getExtension('OES_standard_derivatives');
在我的着色器上:
fragmentShader: [
"#extension GL_OES_standard_derivatives : enable",
"code..."
]...
控制台输出:
警告:0:26:不支持扩展“GL_OES_standard_derivatives”
错误:0:32:“dFdx”:找不到匹配的重载函数
错误:0:32:“=”:无法从“const mediump float”转换为“float 的 2 分量向量”
错误:0:33:“dFdy”:找不到匹配的重载函数
错误:0:33:'=':无法从 'const mediump float' 转换为 '2-component vector of float'
阅读this issue on github后,我尝试了这个例子:From http://jsfiddle.net/VJca4/ I get these errors
警告:0:27:不支持扩展“GL_OES_standard_derivatives”
错误:0:30:“=”:无法从“const mediump float”转换为“float 的 2 分量向量”
错误:0:31:“dFdx”:找不到匹配的重载函数
错误:0:31:'=':无法从 'const mediump float' 转换为 '2-component vector of float'
【问题讨论】:
-
jsfiddle 缺少 vec2,并且 three.js 太旧了 - 请参阅 jsfiddle.net/VJca4/9 它完全有效)
标签: glsl shader webgl three.js