Ich verwende den three.js WebGL Shader Beispiel, und ich versuche, eine GUI zur Steuerung der Parameter des Shaders dynamisch in Echtzeit hinzuzufügen. Ist das möglich? Es scheint, dass, wenn ich versuche, die Variable effectController außerhalb der Shader-Skripte hinzuzufügen, scheint es gut zu funktionieren, aber wenn ich versuche, eine dynamische GUI-Variable für in den Shader-Skripts bekomme ich "Shader konnte nicht kompilieren" Konsolenfehler.three.js dynamischer Fragment-Shader GUI
Three.js: 16617 THREE.WebGLProgram: Shader-Fehler: 0 gl.VALIDATE_STATUS falsch gl.getProgramInfoLog ungültig Shadern ERROR: 0: 109: 'effectController': undeclared Identifikator ERROR: 0: 109: 'horzMod': field Auswahl erfordert Struktur oder Vektor auf der linken Seite
<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>
Meinen Sie wie [DIESE] (http://blog.2pha.com/demos/threejs/shaders/matrix.html)? – 2pha