2016-09-19 48 views
0

目前我在客戶端使用基於webGL的瀏覽器實現代碼。它工作完美。但是,我想在服務器端使用相同的代碼。是的,這不是基於瀏覽器的,使用node-webgl庫的純javascript代碼。將瀏覽器實現的'new Image()'替換爲node-webgl javascript實現?

雖然這樣做我正面臨一個問題。

新的圖像()被瀏覽器識別,但在服務器端,我得到錯誤的圖像沒有定義。以下是我所附的錯誤。另外還有兩個我正在研究的錯誤。

C:\Users\z003npra\Desktop\node>node exp.js 
Status: Using GLEW 1.13.0 
Linking ./simple.vert+./simple.frag 
------------ 
Vertex info 
----------- 
(0) : error C5145: must write to gl_Position 

Linking ./raycast.vert+./raycast-color.frag 
------------ 
Vertex info 
----------- 
(0) : error C5145: must write to gl_Position 

undefined:346 
    gl.tf_img = new Image(); 
        ^

ReferenceError: Image is not defined 
at initTexture (eval at <anonymous> (C:\Users\z003npra\Desktop\node\exp.js:1 
5:9), <anonymous>:346:18) 
at volumerc_main (eval at <anonymous> (C:\Users\z003npra\Desktop\node\exp.js 
:15:9), <anonymous>:392:2) 
at Object.<anonymous> (C:\Users\z003npra\Desktop\node\exp.js:17:1) 
at Module._compile (module.js:409:26) 
at Object.Module._extensions..js (module.js:416:10) 
at Module.load (module.js:343:32) 
at Function.Module._load (module.js:300:12) 
at Function.Module.runMain (module.js:441:10) 
at startup (node.js:139:18) 
at node.js:974:3 

我嘗試安裝帆布即NPM安裝帆布和訪問它的形象對象元素的另一種方法:不過,我讓其他錯誤,看起來是不兼容的。在開始我已經定義了 var Canvas1 = require('canvas') ,Image = Canvas1.Image;

該錯誤是下面,

C:\Users\z003npra\Desktop\node>node exp.js 
Status: Using GLEW 1.13.0 
Linking ./simple.vert+./simple.frag 
------------ 
Vertex info 
----------- 
(0) : error C5145: must write to gl_Position 

Linking ./raycast.vert+./raycast-color.frag 
------------ 
Vertex info 
----------- 
(0) : error C5145: must write to gl_Position 

C:\Users\z003npra\Desktop\node\node_modules\node-webgl\lib\webgl.js:806 
    throw new TypeError('Expected texImage2D(number target, number level, numb 
er internalformat, number format, number type, Image pixels)'); 
^

TypeError: Expected texImage2D(number target, number level, number  internalforma 
t, number format, number type, Image pixels) 
at Object.texImage2D (C:\Users\z003npra\Desktop\node\node_modules\node-webgl 
\lib\webgl.js:806:13) 
at handleLoadedTexture (eval at <anonymous> (C:\Users\z003npra\Desktop\node\ 
exp.js:15:9), <anonymous>:330:5) 
at gl.tf_img.onload (eval at <anonymous> (C:\Users\z003npra\Desktop\node\exp 
.js:15:9), <anonymous>:349:3) 
at Image.src (C:\Users\z003npra\Desktop\node\node_modules\canvas\lib\image.j 
s:30:17) 
at initTexture (eval at <anonymous> (C:\Users\z003npra\Desktop\node\exp.js:1 
5:9), <anonymous>:351:16) 
at volumerc_main (eval at <anonymous> (C:\Users\z003npra\Desktop\node\exp.js 
:15:9), <anonymous>:392:2) 
at Object.<anonymous> (C:\Users\z003npra\Desktop\node\exp.js:17:1) 
at Module._compile (module.js:409:26) 
at Object.Module._extensions..js (module.js:416:10) 
at Module.load (module.js:343:32) 

任何其他替代模仿基於實施節點webgl的圖像類型?

回答

1

使用來自node-webgl庫的圖像:var Image = require("node-webgl").Image;

+0

是的,它的工作。 –

+0

以及如何使用headless-gl庫中的圖片? –