/* CGIL Styles definitions for color coding */

Wednesday, October 28, 2009

Webgl est disponible dans les "nightly builds" de Firefox !

Depuis fin-septembre on a pu lire sur le blog de Vladimir Vukićević qu'il était possible de tester WebGl (qui est une implémentation d'OpenGL ES 2.0 utilisant JavaScript et Canvas ).
C'est très réjouissant car cela signifie que l'on peut raisonnablement envisager d'utiliser du code OpenGl dans un navigateur digne de ce nom d'ici 2010.
Car il faut savoir que le support de webgl est aussi présent dans  le trunk  de webkit depuis début octobre. Or Webkit est le composant de navigation de base pour les navigateurs Safari, Google Chrome et Konqueror.
Voici une marche à suivre récapitulative rapide pour tester  et/ou dévelloper avec du webgl sous firefox :

  1. Aller chercher le dernier nightly build sur le site de mozilla: http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/
  2. Ensuite  utiliser l'url about:config pour modifier la valeur de l'option webgl.enabled_for_all_sites et la fixer à true (un simple double-click)
  3. Si vous êtes sur Microsoft avec une machine qui n'a pas de matériel Opengl vous pouvez installer le fichier webgl-mesa-751.zip  et utiliser la clé webgl.osmesalib dans about:config pour indiquer le chemin ou se trouve ce fichier sur votre disque (par exemple "C:\temp\osmesa32.dll" si vous avez copié le fichier dans temp)
Il est à noté que avec ce dernier point j'ai pu tester avec succès  l'exemple de vlad sur une bécanne virtuelle Microsoft Vista tournant sur du kvm sur un serveur proxmox distant ! Bon d'accord c'était pas des plus rapides dans ce cas mais ça fonctionnait...

Thursday, May 28, 2009


La Ville d'Oslo et la ville Stockholm sont accessible en ligne depuis un guichet cartographique 3D que l'on peut consulter à loisir avec cet url pour Stockholm: http://www.hitta.se/3d/3d_map.aspx et avec celui-ci pour Oslo http://kart.sesam.no/3d/ (attention dans ce dernier cas seul le navigateur IE sous Microsoft est supporté ce qui est plus que dommage).
Il s'agit d'un modèle numérique 3d avec texture de tous le territoire de Stockolm (env 200km) avec des bâtiments en 3d texturés les arbres les ponts etc....
Comme expliqué sur cet article de SlashDot ce qui rend ce projet intéressant est qu'il semblerait que tout le modèle de la Ville a été généré en une dizaine de jours à partir de photos aériennes uniquement.
Bien sur la qualité et la précision n'est pas la même que sur un modèle Laser mais les couts n'ont rien à voir et il s'agit d'une solution tout à fait intéressante pour des urbanistes et pour le grand public qui devient très friand de ce genre de solution.
Voici un lien sur la traduction automatique par Google Translator d'un article technique en suédois


L'approche prise pour la réalisation de ce projet est intéressante car il y a eut un mixage de compétences de deux sociétés d'horizons très distincts: d'une part C3 qui est une filiale de Saab spécialisé dans des aspects métiers tels que robotique, militaire etc...
et d'autre part il y avait Agency9 qui est une société de jeux qui avait dévellopé un moteur 3d de visu pour le web

Wednesday, April 15, 2009

J'ai trouvé intéressant le projet osgModeling qui est une librairie de modélisation pour OpenSceneGraph(OSG). Elle permet de générer différentes types de surfaces comme les extrusions, révolutions, lofts, Béziers & NURBS.
Une des caractéristiques importantes de cette librairie est d'aider l'implémentation de polygones multiples ainsi que la subdivision de polygones.

OpenSceneGraph (ou OSG pour les intimes) est une librairie graphique extraordinaire il s'agit à ma connaissance du scene graph open source le plus populaire et abouti ! Utilisé dans de nombreux autres projets commerciaux ou libre (comme par exemple le gaming & simulation engine : delta 3d) c'est vraiment un outil très puissant que j'étudie depuis un certain temps.
L'installation et la compilation de la librairie sous linux est relativement simple à partir du code source (très beau travail avec cmake), il faut installer au préalable quelques dépendances . Le cas échéant il y a aussi des paquets binaires tout prêts (typiquement pour les OS Microsoft).
Côté documentation, il y a un excellent "Quick Start Guide" de Paul Martz qui est disponible gratuitement sous une forme électronique mais bon comme souvent dans le monde OpenSource il ne faut pas hésiter à regarder le code source des nombreux exemples. Je propose ci après ce qui est probablement le plus basique des exemples histoire de vous mettre le pied à l'étrier :

/*******************************************************
** cgilosg01_drawmeacow.cpp
** the most basic and simplistic as possible example
** of using openscenegraph to draw a beautiful cow
********************************************************/

#include <iostream>
#include <osgDB/ReadFile>
#include <osgViewer/Viewer>
#include <osgViewer/ViewerEventHandlers>

#define MY_MODEL "cow.osg"

int main (int argc, char** argv)
{
osgViewer::Viewer viewer;
// Let's load a very nice model
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFile(MY_MODEL);
if (!loadedModel) {
std::cerr << "Problem opening the model " << MY_MODEL << "\n";
exit (1);
}
viewer.setSceneData(loadedModel.get());
viewer.realize();
return viewer.run();
}


Pour compiler cet exemple sous Linux il suffit d'utiliser g++ comme suit :
g++ -losgDB -losgViewer cgilosg01_drawmeacow.cpp -o cgilosg01_drawmeacow
il vous faut ajouter dans votre répertoire courant le fichier cow.osg qui se trouve dans le fichier de données exemples OpenSceneGraph-Data-2.8.0.zip ou mieux il suffit de fixer une variable d'environnement OSG_FILE_PATH pour la faire pointer sur l'endroit ou vous avez décompressé le fichier ci-dessus
export OSG_FILE_PATH='/usr/local/share/osg/OpenSceneGraph-Data/'
bonne découverte !