2010-05-28 10 views

risposta

23

No, sfortunatamente no.

Il HTML 5 spec dice che se si chiama getContext su un elemento di tela che è già in una diversa context mode ei due contesti non sono compatibili per poi tornare null.

Purtroppo "WebGL" e tele "2D" non sono compatibili, e quindi si otterrà null:

var canvas = document.getElementById('my-canvas'); 
var webgl = canvas.getContext("webgl"); // Get a 3D webgl context, returns a context 
var twod = canvas.getContext("2d"); // Get a 2D context, returns null 
4

Creare il testo come una trama utilizzando il canvas 2D, quindi renderlo in 3D. Vedi here per un tutorial.

+0

Ma se il testo viene aggiornato dinamicamente, il rendering del testo diventerà lento. – Pointer

+1

Il rendering del testo è lento comunque. –

12

Come detto, non si può fare questo.

Tuttavia è possibile posizionare una tela sopra un'altra e disegnare separatamente. L'ho già fatto e può funzionare abbastanza bene.

+0

Per ulteriori informazioni, vedere questa domanda: http://stackoverflow.com/questions/3008635/html5-canvas-element-multiple-layers – 1j01