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} 

等等

看起来浏览器(谷歌浏览器)没有正确解析带有编码在其中的着色器的字符串。来自三个.js 源(缩小版)的代码中出现错误。

一看,代码就ok了。

我只是错过了一些东西,但我不知道到底是什么。

有什么帮助吗?

4

2 回答 2

3

在我看来,那里有“\n”会导致问题。看起来 \ 已被删除,但 n 被保留了。

于 2012-06-10T11:02:22.057 回答
0

您发布的内容肯定看起来不对。

第 5 行有“nuniform”,这不是有效的 GLSL。

看起来您使用的任何缩小器都有错误。如果您的着色器在<script>标签中,您可能需要修复缩小器以仅缩小没有“类型”或有type="javascript"type="text/javascript"因为其他任何东西都不是 JavaScript 并且不应该被缩小的脚本。

于 2012-06-10T17:34:50.093 回答