0

このチュートリアルを使用して three.js を学習しています: http://demo.bkcore.com/threejs/webgl_tron_glow_seq.html。チュートリアル自体は正常に動作しますが、それに基づく私自身のコードは次のようなエラーで失敗します:

ERROR: 0:26: 'nuniform' : syntax error  Three.js:325
precision highp float;
#define MAX_DIR_LIGHTS 0
...
uniform vec3 cameraPosition;
uniform sampler2D tDiffuse;nuniform sampler2D tGlow;nvarying vec2 vUv;nvoid main() {nvec4 texel = texture2D( tDiffuse, vUv );nvec4 glow = texture2D( tGlow, vUv );ngl_FragColor = texel + vec4(0.5, 0.75, 1.0, 1.0) * glow * 2.0;n} 


ERROR: 0:62: 'nvoid' : syntax error  Three.js:325
precision highp float;
#define VERTEX_TEXTURES
...
varying vec2 vUv;nvoid main() {nvUv = vec2( uv.x, 1.0 - uv.y );ngl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );n} 

ブラウザ (google chrome) が、シェーダがエンコードされた文字列を正しく解析していないようです。three.js ソース (縮小版) のコードにエラーが表示されます。

一見すると、コードは問題ありません。

何かが足りないだけですが、正確にはわかりません。

何か助けはありますか?

4

2 に答える 2

3

そこに「\n」があり、問題が発生しているように見えます。\ が削除されたように見えますが、n は残っています。

于 2012-06-10T11:02:22.057 に答える
0

あなたが投稿したものは間違いなく間違っています。

5 行目には、有効な GLSL ではない「nuniform」があります。

使用したミニファイヤーにはバグがあるようです。シェーダーが<script>タグに含まれている場合は、「タイプ」を持たないスクリプト、または持っているスクリプトのみを縮小するようにミニファイアーを修正する必要がある可能性がありtype="javascript"ますtype="text/javascript"

于 2012-06-10T17:34:50.093 に答える