Blog graphique 2

Classé dans : Blender, WebGL, 3d, réseau, nouvelles, programmation

English version
Après un premier article sur WebGL, je reviens dessus pour son utilisation dans des cas concrets.

Fennec, Firefox pour mobile permet déjà d’utiliser WebGL sur Android, de façon expérimentale et qui fonctionne ou plante selon les cas. Pour cela il suffit de taper dans la barre d’adresse : about:config, puis de filtre webgl ou webgl.force-enable, et de passer ce dernier paramètre de false à true

Sous Linux, si vous avez une processeur graphique ATI ou Nvidia avec le pilote propriétaire pas de problème à priori. Si vous avec un processeur graphique Intel, il vous faudra installer Mesa 8.0, fraîchement sorti la semaine dernière afin de pouvoir en bénéficier. sous Ubuntu, le ppa:xorg-edgers/ppa permet de le faire sans trop de difficulté.

Voici une nouvelle liste d’applications intéressantes en WebGL.

* Firefox 11 (bêta) et un greffon pour les version antérieures appelé Tilt permet d’avoir une visualisation en 3d de la structure des pages web, permettant ainsi d’accroître l’ergonomie de la visualisation pour les webmestres.

Pyppet – WebGL Streaming blender< =>WebGL permet de visualiser en temps réel dans un navigateur web, un rendu WebGL, d’une scène en cours de modélisation dans Blender.

minifier de fichier GLSL permet de compresser un script GLSL et ainsi de rendre les applications WebGL utilisant GLSL plus rapide à charger et moins coûteuses en bande passante.

Je prévoyais un avenir flamboyant de WebGL dans des encyclopédies du type Wikipedia, Google, commence assez fort dans ce domaine avec ZygotBody, permettant de visualiser les différentes couches de l’anatomie d’un corps humain en 3D, et plus généralement Google Open-3d-viewer, permettant également de le faire sur une vache. Le code de l’application est disponible ici : open-3d-viewer Project page.

Une démonstration de réalité augmentée via firefox.

Seriously.js, du compositing en temps réel sur une vidéo.

Cloudmach est une plate-forme en ‘nuage’ de jeux WebGL.

Une petite démo sympa : lights.elliegoulding.com

Un petit casse-tête sympa : Crazy bugs
.

Utilisation de WebGL pour le rendu vectoriel + bitmap 2d et ainsi bénéficier de la rapidité et économie d’énergie de l’accélération matérielle dans les applications interactives : WebGL Fundamentals (WebGL is a 2D API!)

Classé dans : WebGL, 3d, animation, réseau, nouvelles, programmation

English version
WebGL est une api 3d pour le web, basée sur OpenGL. C’est un standard du W3C (qui gère les standards du web). Les applications existantes sont déjà fantastiques, et permettent de percevoir une interactivitée accrue du web à l’avenir, voici quelques exemples et liens :

* Maps3d de Nokia, ue carte du monde en 3d, loin devant google earth, il faut cliquer sur le bouton ‘zoom’ des villes marquées ou bien zoomer manuellement dessus (une vidéo si l’application ne fonctionne pas chez vous).

* “3 dreams of Black” de Rome (et quelques autres démos). Clip vidéo mélant, animation numérique 2d, 3d temps-réel, postprocessing et interactivité. Lors du clip, la souris permet de déplacer légerment le point de vue, puis on peut se ballader dans 3 mondes différents (je vous laisse trouver les portes), le pointeur de la souris donnant la zone de mise au point de l’image (la profondeur de champs est réduite). En cliquant à la souris, vous pouvez également agir sur le sol et les murs.

*WebGL Chrome experiments, un site regroupant des démonstrations des fantastiques possibilités de WebGL aux effets divers et variés que l’on peut trouver sur le web.

* Planet WebGL Un planet (aggrégateur de rss) de resources en WebGL, on y trouve tout un tas d’exemples, de didacticiels (tutoriels) et de bibiliothèques très interessantes autour le WebGL permettant l’intégration dans des pages web.

This post exists also in English
La traduction, le sous-titrage (et légendage) prennent un coup de pouce du web.

De nos jours, quelques outils apparaissent, au moins suffisamment bons pour synchroniser les efforts de traduction sur la toile, peut-être pas si bon parce qu’il reste encore des bugs, et que l’utilisation du flash (dans certains cas) est très lent, mais c’est au moins un bon départ pour une traduction rapide conduite par la communauté planétaire.

Transifex.net est un outil collaboratif (et libre), permettant de traduire des .po en équipe. Les .po sont des fichiers de traduction générés automatiquement par gettext (un outil du Gnu) et permettant de facilement traduire des logiciels (libres).

Open Subtitles est une base de données très connue depuis pas mal d’années déjà pour ses sous-titres de vidéos dans différentes langues.
Universal Subtitles.org est un autre outil collaboratif (libre), permettant d’ajouter des sous-titres et légendes dans n’importe quelle langue à une vidéo présente sur le web. La seule contrainte étant qu’elle soit soit, au pire en flash sur des sites comme Youtube, Vimeo, Dailymotion etc…, soit au mieux dans un format vidéo HTML 5 (WebM, Ogg/Theora ou mp4/H264). La seconde option permet d’éditer sur un ordinateur bas de gamme (comme le mien), directement en ligne et avec la meilleur qualité de ces formats. C’est à peu près inutilisable en flash à moins d’avoir un gros monstre qui consomme la puissance de toute la centrale de Fukushima en fusion (au moins 4 fois Tchernobyl).

Voici un exemple (que j’ai trouvé en cherchant quelque chose en chinois à traduire) que quelques lecteurs ne pourraient pas aimer :D, avec les traductions en Chinois, Anglais et Français. C’était en Flash malheureusement, j’en ai bavé (merci FlashVideoReplacer + vi + mplayer -utf8 -sub *.srt *.mp4) et est fini par utiliser des logiciels installés sur mon système. Vous pouvez trouver des références sur le FLOSS manual dédié aux sous-titres vidéo. Mais la meilleure solution a finalement été pour moi vi et mplayer.

Et comme vous pouvez le constater (en regardant le source), Universal Subtitles s’intègre en copiant-collant seulement 3 lignes de code. Je comprend pas pourquoi c’est resté en flash malgré l’ajout de mon mp4, lorsque c’est en mp4 de base, tout est en HTML5…

Version Flash (sous-titres pas synchronisés sur mon vieil ordi) :

Version HTML-5 (ça fonctionne pas sur mon blog dans ma config paranoïaque de navigateur qui bloque tout :D, a si), mais c’est lent puisque flash tout de même (le problème de sync pourrait aussi être du a un manque d’espace temporel entre les phrases en conjonction avec le .js, parce que ça marche parfaitement avec mplayer) :

闪闪的红星 (L’Étoile rouge scintillante), que je ne connaissait pas, est un peu le Tom Sawyer « C’est l’Amériqueuu, le symbole de la liberté » (surtout en Afghanistan, Irak et Lybie, sans parler du Vietnam, Corée du Sud, Taïwan, des philippines, de l’Amérique Latine des républiques bannières (qui ont permis d’annexer Hawaï), etc..) nous chantait le générique français du dessin animé japonais de Hiroshi Saitō.

Bon là, c’est plutôt de l’armée de libération qu’il s’agit (ou bāyī (八一) => 8/1, premier aout), qui à libéré la Chine du servage et entre autre des Amerlocs qui se sont alors retiré avec le parti nationaliste chinois, dans, à cette époque, province de Taïwan… La libération du servage par l’armée de libération et l’engagement politique et militaire de cet enfant c’est le thème de ce film, réalisé en 1974, en pleine Grande révolution culturelle (文化大革命), aïe, le plus gros raté de la Chine maoïste.

Plus récemment, cette histoire à été réinterprété en série (n’est visible qu’en Chine, l’OMC à laquelle adhère la Chine, continue ses ravages anti-culturels), et en série animée (à échappé à l’OMC pour le moment).

Windows « 8 » sur architecture ARM.

* Il faut s’attendre à un temps de portage de ce système d’exploitation, pour qu’il soit adapté aux plateformes au moment de sa sortie. Actuellement, ces plateformes comportent de 256 Mio à 1 Gio de RAM, Windows 7 nécessite au moins 4 Gio de RAM, c’est donc tout physiquement simplement impossible. On peut imaginer 2Go d’ici la fin 2011, c’est la limite proposée par ARM sur la documentation du Cortex A9 qui équipe certains des nouveaux équipements qui ont commencé à sortir cet été. Nous reviendrons par la suite à la puissance pour exécuter les tâches.

* L’évolution est faite en profondeur, avec les architectures ARM de la catégorie des Cortex A15 MPCore, dont les premiers modèles devraient sortir fin 2012 (d’après ARM), qui prévoient tout ce qui est demandé dans un CPU de bureau ou de serveur moderne, la gestion d’une grande quantité de RAM (jusqu’a 1 Tio), la virtualisation etc…

* Le marché sera d’ici là bien occupé par Android et probablement par d’autres formes de Linux comme par exemple Chrome OS (autre OS de Google orienté bureau), MeeGo (Nokia et Intel), Ubuntu (la distribution la plus populaire sur les postes de travail), OLPC (précurseur des netbooks ayant déjà préparé sa tablette ARM) et d’autres distributions légères dédiées. Il y aura sans doute toujours l’iOS d’Apple sur les marchés de niche (les fameux « Apple fanboys » qui sont de plus en plus mis à l’épreuve par les sautes d’humeur de Steve Jobs et les restrictions d’utilisation). ll faudra alors un sacré travail pour Microsoft, pour convaincre les développeurs de venir continuer à développer sur ce système qui aura pris un certains retards sur ses concurrents qui sont déjà assez mûres aujourd’hui avec plusieurs années d’expérience sur la plateforme. Cela dit il y a encore 2 ans personne (sauf Google lui même ?) n’imaginait la percée d’Android. On est en tout cas loin du contexte de Microsoft développeur pour l’architecture des compatibles IBM PC (ou Wintel) crée par IBM en 81. Les systèmes basés sur le noyau Linux qui est le seul à supporter tous les pilotes de l’architecure ARM semble avoir bien marqué son empreinte majoritaire sur se domaine, le poste client informatique était le dernier où il n’était pas majoritaire.

Les principaux avantages des plateformes ARM, résident dans la bonne répartition des tâches sur les différents composant du SoC (System On Chip, système sur une puce), celui-ci comporte différents cœurs de calcul :
* CPU-s, ontrôleur-s principal-aux. L’exécution des applications, toutes les opérations de base, il font les calculs entiers et flottants génériques.
* GPU-s, processeur-s graphique-s. Plutôt dédié à l’affichage des interfaces, 2d, 3d, composition de l’ensemble de l’affichage.
* DSP-s, processeur-s de traitement du signal. encodage/décodage audio, vidéo, il peut aider au calculs 3d et aux traitement des images (effets, amélioration, reconnaissance de visage, tous les appareils photos, vidéo ou audio en ont au moins un).
* Cœur(s) spécialisés dans la compilation à la volée de code de langage de script à la volée (JIT, Just in Time). La version de base de ce cœur nommé Jazelle est spécialisé Java en raison de son historique dans le monde du smartphone, JazelleRCT est un compilateur JIT câblé matériellement sur les Cortex A8 et Cortex A9, et ThumbEE, une extension, qui est adapté à la majorité des langages de scripts, Python, Perl, .NET, Ruby ?, php ?, etc….
* Divers autres comme ceux spécialisés dans la cryptographie, les communications, etc…

Le tout repose actuellement sur une bonne compatibilité aux normes des standards ouverts définis par le groupe de travail Khronos (OpenGL pour la 3d, OpenAL pour l’audio, OpenCL pour le calcul, OpenMax pour les codecs multimédias.. et surtout OpenKODE qui centralise le tout mais n’a pas encore vraiment percé). Le système de Microsoft pour fonctionner doit adapter ses bibliothèques à tous ces standards ouverts, Microsoft à tendu jusqu’à présent à s’opposer aux standards tant qu’ils en avaient le choix, là ils sont verrouillés jusqu’à ce qu’ils deviennent dominants sur ce marché.

C’est l’utilisation simultanée et bien organisé de toutes ces ressources permettent de compenser la faible puissance de calcul du CPU lui même. Avec un système complet qui consomme 2W, on se retrouve par exemple avec un décodage vidéo 1080p via un cœur spécialisé qui ne consommera que 100mW, on est loin des 25W des coprocesseurs qui surchauffaient sur les architectures Atom d’Intel en 2009, considérés alors comme les plus performants et économique à la fois. La solution est donc ici de demander à différents spécialistes de faire leur travail efficacement, plutôt que de demander à différents généralistes de tout faire à la fois, aussi bien qu’il peuvent et à gâcher inutilement toutes leurs ressources.

Donc vu la situation actuelle de ces architectures, l’engouement énorme du grand public pour les plateformes Android, dans la lancée des netbook, qui n’avaient pourtant pas la maturité des plateformes ARM pour consommer vraiment peut et être à la fois vraiment performants. Vu le flop de Windows CE et de son successeur renommer pompeusement Windows Embedded Compact 7, Microsoft ont visiblement définitivement perdu ce marché au moins jusqu’à ce qu’il soit mûre pour faire tourner l’usine à gaz du type MS-Windows.

Quant à l’émulation d’application windows x86, le problème de différence de puissance du CPU, qui préfère reléguer aux autre, le rend quasi impossible (les émulateurs d’autres processeurs RISC et coprocesseurs pour les console de jeux, qui sont généralement pensée de la même façon fonctionnent par contre assez bien). Il faudra au moins 4 Gio de RAM pour le système, a moins d’utiliser une base Linux + 4 Gio de RAM pour windows 7 et ses applications. Il faudra s’attendre ensuite à une grande lenteur pour convertir d’un cpu surpuissant vers un cpu très léger, tout ira docn très très très lentement.

Vu la situation aujourd’hui et le temps que Microsoft arrive à alléger son système pour qu’il puisse tourner sur ce type de configuration et arrive à attirer des développeurs, on peut donc bien espérer attendre dans le meilleur des cas, 2 ans fin 2012, lorsque les premiers Cortex A15 mpcore sortirons, dans le pire des cas, 1 ou 2 ans de plus. Le problème rester inévitablement d’attendre en plus l’adaptation de toutes les applications qui tournent aujourd’hui sous MS Windows pour x86 et qui verrouillent les derniers utilisateurs.

Un patch de Charbel Jacquin permet d’avoir des fonctions minimum d’animation dans mypaint (onion skin/pelure d’oignon), voici la version des sources du 5 mars 2010 du tronc git patché (Mise à jour le 07/04/2010) :

Sources : mypaint-animation.0.8.2+git.tar.lzma (lzma/xz) or
mypaint-animation.0.8.2+git.7z (7zip).

Forum thread

demo (on Youtube). I made a copy of the Charbel Jacquin video (youtube channel) at another place for Chineses and Australians:

Keyboard Status Monitor (key-mon) is used for displaying key during video.

Installation (Debian/Ubuntu Linux):

sudo apt-get install g++ python-dev libglib2.0-dev python-numpy swig scons gettext python-protobuf protobuf-compiler
cd mypaint-animation.0.8.2+git/
scons prefix=/opt/mypaint-animation install

Utilisation:
/opt/mypaint-animation/bin/mypaint

Vous pouvez remplacer /opt/mypaint-animation par /usr ou /usr/local (pour le chemin standard) ou le chemin que vous désirez.

Articles plus anciens »

Propulsé par WordPress

Switch to our mobile site