2013-04-05 19 views
5

Vorrei ottenere l'id dell'elemento canvas creato automaticamente da three.js.three.js dom id dell'elemento canvas utilizzato per il rendering Webgl

In alternativa, sarei altrettanto felice (forse anche di più) con la possibilità di passare lungo un id elemento di tela preesistente durante la costruzione.

Dopo la ricerca, ho provato questo:

renderer = new THREE.WebGLRenderer({ canvas: my_canvas }); 

senza successo (è da una build piuttosto vecchio, ma speravo che avrebbe funzionato). Forse qualche sintassi dei parametri è cambiata rispetto a 2 anni fa?

(my_canvas essendo l'id della tela, anche provato passando lungo il contesto, senza fortuna)

Alla fine ho provato:

document.getElementsByTagName('canvas'); 

che ha restituito nulla ... quello era un puzzle e la paglia proverbiale che mi ha portato a postare qui.

Qualsiasi intuizione apprezzata, grazie! (Ora ho diritto di voto)

+1

Utilizzare 'renderer.domElement' per ottenere l'elemento DOM corrispondente all'area di disegno creata dal renderer. – Popov

+1

Inoltre, puoi passare una tela al WebGLRenderer, vedi qui: http://mrdoob.github.com/three.js/docs/57/#Reference/Renderers/WebGLRenderer => sembra che sia quello che hai fatto, secondo il doc (e al codice sorgente) dovrebbe funzionare – Popov

+0

accettare una risposta pls. – BuildingJarl

risposta

15
var canvas = document.getElementById("canvasID"); 
renderer = new THREE.WebGLRenderer({ canvas: canvas }); 
4

Se si guarda nell'ultima versione (r57) in three.js/src/renderers/WebGLRenderer.js (nella parte superiore del file) è possibile vedere che si può effettivamente passare un argomento canvas per il renderer. Se non ne passi uno, ne viene creato uno per te. Probabilmente dovresti pubblicare un codice che non funziona o, meglio ancora, un jsfiddle in modo da poter dare un'occhiata al problema.

Problemi correlati