Ich versuche, this tutorial zu arbeiten, aber ich lief in zwei Probleme, von denen einer der folgenden ist.Warum muss ich einen Genauigkeitswert in Webgl-Shadern definieren?
Wenn ich den Code ausführen, wie es ist, bekomme ich einen Fehler in der Fragment-Shader sagen: THREE.WebGLShader: gl.getShaderInfoLog() ERROR: 0:2: '' : No precision specified for (float)
. Also was ich getan habe, war eine Genauigkeit für jeden Float/Vektor, den ich so definiere, zu spezifizieren varying highp vec3 vNormal
. Dies beseitigt den Fehler, aber ich verstehe nicht warum? Ich kann kein anderes Beispiel finden, wo Präzisionswerte zu Variablendeklarationen hinzugefügt werden. Kann jemand erklären, warum das passiert? Hat es etwas mit meinem Browser zu tun (Chrome 38)?
Liefert dieser Beitrag etwas Licht? http://stackoverflow.com/questions/5366416 – vabada
In Antwort auf den Titel Ihrer Frage ist die Antwort im Grunde "weil die Spezifikation so sagt". WebGL basiert auf der OpenGL ES 2.0-Spezifikation und für diese Spezifikation müssen Sie die Genauigkeit angeben. – gman