1
我想在服務器端渲染一個多維數據集,並能夠使用CanvasRenderer這樣做,但我希望能夠使用WebGLRenderer進行渲染,從而產生更好的結果。我已經收窄,這一代碼片段:與jsdom使用WebGLRenderer()時出現錯誤
var jsdom = require('jsdom')
, document = jsdom.jsdom('<!doctype html><html><head></head><body></body></html>')
, window = document.createWindow()
, THREE = require('three');
document.onload = docOnLoad();
function docOnLoad()
{
console.log("docOnLoad called.");
global.document = document;
global.window = window;
//renderer = new THREE.CanvasRenderer(); //works
renderer = new THREE.WebGLRenderer();
renderer.setSize(400, 400);
document.body.appendChild(renderer.domElement);
}
當使用WebGLRenderer,我得到:
_glExtensionTextureFloat = _gl.getExtension('OES_texture_float');
^
TypeError: Cannot call method 'getExtension' of undefined
at initGL (C:\programming\nodejs\node_modules\three\three.js:25870:34)
嘗試調試three.js所代碼時
,執行console.log(_gl)確實表明_gl是未定義的,並且它的源極是線#25856,其中:的_canvas節目
_gl = _canvas.getContext('webgl', attributes) || _canvas.getContext('experimental-webgl', attributes);
現在,執行console.log():[Canvas 0x0]
有沒有人遇到類似的東西?
我沒有獲得2D上下文 - 因爲我沒有傳遞任何canvas元素,three.js創建一個,第一個getContext()調用在#25856行。將找到一些WebGL樣本,並嘗試在node.js之外運行它 – bks
已經搜索了一段時間,沒有找到具體的東西。另外,當試圖使用canvas模塊(npm安裝畫布)getContext('webgl')時,我得到了「undefined」。你能爲我指出正確的方向嗎? – bks
您是否嘗試過「experimental-webgl」? – prabindh