Puisque webgl/opengl ne supporte pas le dessin de texte, il est donc possible de dessiner un objet 3D en utilisant le contexte 3D et le dessin de texte en utilisant le contexte 2D?Dessin 3D Canvas utilisant à la fois le contexte 2D et 3D
Répondre
Non, malheureusement pas.
Le HTML 5 spec dit que si vous appelez getContext
sur un élément de toile qui est déjà dans un autre context mode et les deux contextes ne sont pas compatibles revenir alors null
.
Malheureusement « WebGL » et toiles « 2d » ne sont pas compatibles et donc vous obtiendrez 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
Créez le texte en tant que texture à l'aide de la zone de dessin 2D, puis affichez-le en 3D. Voir here pour un tutoriel.
Comme indiqué, vous ne pouvez pas le faire.
Cependant, vous pouvez mettre une toile sur l'autre et dessiner séparément. Je l'ai déjà fait et cela peut très bien marcher.
Pour plus d'informations, voir cette question: http://stackoverflow.com/questions/3008635/html5-canvas-element-multiple-layers – 1j01
Mais si le texte est mis à jour dynamiquement, le rendu du texte deviendra lent. – Pointer
Le rendu du texte est lent quand même. –