【发布时间】:2014-09-18 02:00:59
【问题描述】:
我一直在摆弄three.js,当谈到THREE.ShaderMaterial 时,我感到很困惑。它从直接从示例中复制/粘贴开始,如下所示:http://threejs.org/examples/#webgl_materials_normalmap
我将它复制到一个只返回材料的函数中。它不起作用(错误,我稍后会详细说明),所以我移除了所有已设置的制服并使用完整的空白材料。只是看看是否仍然会显示相同的错误。
这是我的代码:
var testmaterial = function(params){
var shader = THREE.ShaderLib[ "normalmap" ];
var uniforms = THREE.UniformsUtils.clone( shader.uniforms );
var parameters = { fragmentShader: shader.fragmentShader, vertexShader: shader.vertexShader, uniforms: uniforms};
var material = new THREE.ShaderMaterial( parameters );
return material;
};
你说的没什么好说的,我同意,但是,浏览器似乎不同意。这是我似乎无法摆脱的错误:
错误 X6077:以 r# 作为源的 texld/texldb/texldp/dsx/dsy 指令不能在动态条件“if”块、动态条件子例程调用或带 break* 的循环/rep 中使用。
有人知道我做错了什么吗?任何帮助将不胜感激。
【问题讨论】: