Asymptote v2.55 et la sortie WebGL.

30/09/2019
{ / }

Grande nouveauté pour Asymptote fin septembre 2019 avec la sortie de la version 2.54 ! Pour les figures 3D, en plus du format PRC (format propriétaire et sachant qu’Adobe ne fournit plus d’Adobe Reader à jour pour Linux), du moteur de rendu 3D OpenGL (gestion des faces cachées, transparence, visualisation dynamique, etc), il est maintenant possible de visualiser les figures 3D via un navigateur récent avec le format WebGL.

asy -f html votre_figure3D.asy produit un fichier HTML votre_figure3D.html. Il faudra nécessairement une connexion internet car le fichier HTML a recours à asygl-1.00.js, un fichier Javascript de 42Ko chargé de traduire en WebGL les instructions produites par Asymptote, en particulier la gestion des ‘patchs’ de Béizier bicubiques. Le fichier est presque lisible d’ailleurs.

Pour une utilisation hors-ligne ou pour figer un fichier HTML dans le cas où asygl-1.00.js évoluerait avec rupture de compatibilité il est possible d’intégrer ces instructions Javascript à l’aide de la commande asy -h html -offline votre_figure3D.asy. Une autre possibilité est d’ajouter dans le fichier .asy l’option settings.offline=true comme d’autres options.

Voici un premier example, la fameuse théière

Un deuxième example légèrement plus compliqué (83Ko), une surface de Riemman

Passons à des constructions plus complexes incluant de nombreux carreaux de Bézier, presque 3Mo,

Et enfin la brosse (3Mo), liée à l’homogénéisation d’un problème avec conditions de Neumann dans un domaine à frontière fortement oscillante

Histoire de mélanger MathJax et WebGL sur une même page, voici une partie de la définition de ce domaine

Let \(Q_\varepsilon\) be the ``forest of cylinders” with cross sections \(\omega'^j_\varepsilon\), \(j\in J_\varepsilon\), and infinite height, i.e.

\[Q_\varepsilon = \bigcup_{j\in J_\varepsilon} (\omega'^j_\varepsilon \times\mathbb{R} ) = \omega'_\varepsilon \times\mathbb{R}\]

Il faudra que j’apprenne à agrandir les images. Il est possible de les visualiser indépendamment, la théière, une surface de Riemann, un test un peu plus compliqué, la brosse. Comme avec le moteur de rendu OpenGL il est possible de “jouer” avec la figure, rotation, zoom, etc.

Enfin il semblerait, au moins sous Linux, que Chromium soit plus efficace que Firefox.