私はthree.js webGLシェーダの例を使用しています。シェーダのパラメータをリアルタイムで動的に制御するGUIを追加しようとしています。これは可能ですか?シェイダースクリプトの外でeffectController変数を追加しようとするとうまくいくように見えますが、シェイダースクリプトで動的GUI変数を作成しようとすると、「シェーダーはコンパイルできませんでした」というコンソールエラーが発生するようです。three.js動的フラグメントシェーダGUI
three.js:16617 THREE.WebGLProgram:シェーダーエラー:0 gl.VALIDATE_STATUS偽gl.getProgramInfoLog無効シェーダERROR:0:109: 'effectController':宣言されていない識別子 ERROR:0:109: 'horzMod':フィールド選択するには、左側に構造またはベクターが必要です
<script id="fragmentShader" type="x-shader/x-fragment">
void main() {
e=(effectController.horzMod);
}
</script>
<script>
var effectController = {
horzMod: 400
};
function initGUI() {
var gui = new dat.GUI();
gui.add(effectController, "horzMod", 1, 400, 1);
}
function init() {
console.log(effectController.horizontalSpace)
initGUI();
}
</script>
[この](http://blog.2pha.com/demos/threejs/shaders/matrix.html)のような意味ですか? – 2pha