web-dev-qa-db-fra.com

Pouvez-vous utiliser canvas.getContext ('3d')? Si oui, comment?

J'ai lu sur la balise canvas en HTML5 et j'ai toujours vu getContext('2d').
Le paramètre est '2d', donc n'y a-t-il pas une autre possibilité comme '3d'?
Et comment pourriez-vous utiliser cela? J'ai déjà essayé la 3D, mais je n'ai pas vraiment compris (à cause d'un tutoriel non explicatif). Des tutoriels?

41
11684

Il existe un contexte 3D pour le canevas, mais il n'est pas appelé "3d", mais WebGL ("webgl").

41
Denis Washington

WebGL devrait être disponible dans les versions les plus récentes de tous les navigateurs . Utilisation:

<!DOCTYPE html>
<html>
 <body>
 <canvas id='c'></canvas>
  <script>
    var c = document.getElementById('c');
    var gl = c.getContext('webgl') || c.getContext("experimental-webgl");
    gl.clearColor(0,0,0.8,1);
    gl.clear(gl.COLOR_BUFFER_BIT);
</script>
</body>
</html>

comment pourriez-vous utiliser cela? J'ai déjà essayé la 3D, mais je n'ai pas vraiment compris

  • si vous pensez que les "vraies" langues sont difficiles, vous aurez beaucoup de mal avec WebGL. À certains égards, c'est un niveau assez élevé, à d'autres égards, c'est un niveau assez bas. Vous devez rafraîchir vos mathématiques (géométrie) et vous préparer à un dur labeur.
  • three.js est une bibliothèque très appréciée qui vous permet de faire encore beaucoup de 3D sans avoir à traiter directement avec webgl, consultez-le.
32
Steve

Il est possible d'obtenir un contexte WebGL , qui vous donnerait accès à cette API, permettant un rendu 3D de type OpenGL ES 2.0.

20
Peter

Le contexte 3D n'est pas encore implémenté dans la plupart des navigateurs. Je crois qu'il existe une version expérimentale de Opera qui en fournit un, et un addon pour FF qui fait de même, mais aucun n'est prêt pour les heures de grande écoute. Vous devrez attendre adoption et mise en œuvre.

et je pense que JavaScript est plus facile qu'un vrai langage de programmation

Javascript est un "vrai" langage de programmation. Être un langage de haut niveau n'en fait pas un jouet ou un faux (et cela vient d'un gars des systèmes qui, à votre avis, écrit du code dans de "vrais" langages de programmation tous les jours).

12
Ed S.