2012-06-10 72 views
0

我正在學習使用本教程的three.js:http://demo.bkcore.com/threejs/webgl_tron_glow_seq.html。 教程本身工作正常,但我自己的代碼,基於它的失敗,像錯誤:谷歌瀏覽器中的Webgl着色器編譯錯誤

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} 

它看起來像瀏覽器(谷歌瀏覽器)不正確分析與絃樂器編碼着色器在他們中。 從three.js源代碼(縮小版本)中出現錯誤。

簡而言之,代碼是好的。

我只是想念一些東西,但我不知道究竟是什麼。

任何幫助?

+0

因此...向我們展示您的着色器源代碼,以便我們可以明確說明您在哪裏以及如何犯了錯誤:) – Goz

+0

將代碼粘貼到您定義着色器的位置..'n'絕對來自換行符,但由於某種原因,斜線被刪除。 – frank

回答

3

它在我看來就像有\ n在那裏導致問題。它看起來像\被刪除,但n被留下。

+0

你是在談論錯誤轉儲中的所有流浪'n's和't's? –

+0

@JaredFarrish:確實我......很難說,雖然看不到他的着色源...... – Goz

+0

我注意到似乎有些奇怪的事情發生。這是你到達那裏的敏銳目光。 –

0

你發佈的內容絕對看起來不對。

第5行有'nuniform',這是無效的GLSL。

它看起來像你使用的任何縮小器有一個錯誤。如果着色器處於<script>標記中,則可能需要修復縮小器以僅縮小沒有「類型」或具有type="javascript"type="text/javascript"的腳本,因爲其他任何內容都不是JavaScript,因此不應縮小。