
Voila la solution la plus simple et la plus rapide que j'ai trouvé a l'heure actuelle pour faire de la
stéréoscopie dans
Processing. L'astuce est finalement assez simple, il suffit de faire appel directement a la librairie
OpenGL (Processing ne donnant pas accès a toutes les fonctions OpenGL) et de dessiner deux
viewPort au lieu d'un seul. Évidement la rapidité du programme est divisé par (presque) deux puisque la scène doit être dessinée deux foi (une foi pour chaque oeil). Il semblerai d'après
Douglas que l'on puisse retenir le pipeline envoyé a la carte graphique et donc ne pas le redéfinir à chaque frame. Ainsi tous les éléments qui ne changent pas visuellement dans la scène pourrai être quelque peu optimisés.
En tout cas, tel quel, cette méthode permet de bien s'amuser et fonctionne parfaitement sur le
dispositif de projection polarisée stéréoscopique.
Les deux rendu sont disposés l'un a coté de l'autre affin de pouvoir étaler la scène sur les deux bureaux du poste de travail et donc utiliser facilement deux projecteur avec un seul ordinateur.
Pour voir l'exemple il faudra accepter le "certificat de sécurité" car l'applet utilise OpenGL.
C'est tout a fait par hasard que je suis tombé sur ces 3 vidéos tout à fait fantastique, qui bien que tout à fait mémorable avaient complètement disparut de ma mémoire. Je me suis empressé de les mettre en ligne sur mon blog pour faire partager a tout le monde ces 3 chef d'oeuvres.
Il faut savoir que DragonballQuake était un mode pour Quake 3 Arena développe juste avant l'aube de ce nouveau millénaire par une petite poignée de personne talentueuse et renommer dans la communauté des Gamers. ce fut une aventure passionnante, hélas ce fabuleux projet n'a jamais vu le jour. Néanmoins ces 3 vidéos présentant les décors du mapper officiel du jeu (moi même en personne) ont survécu au BUG de l'an 2000 !
J'ai enfin trouvé le le temps de recompiler le code sur lequel Galen et moi avons travaillé. L'idée de départ étée de modifier les sources de Quake 3 dans le but de "détéritorialiser" l'environnement du jeu. Pour ce faire j'ai travaillé sur un moyen de permettre à tous les joueurs d'utiliser les murs et les plafonds en plus du sol comme surface de déplacement tendis que que Galen s'est attelé a les dématérialiser en permettant a tous les projectiles de passer a travers.
Dans cette vidéo le fait de marcher sur les murs n'est pas mis en évidence car je n'ai pas eu l'occasion de jouer avec de vrai joueurs et que les bots sont trop bête pour profiter de cette opportunité. Cependant le décors deviens souvent complètement blanc (grâce a un bout de code que Galen voulais lésés) ce qui d'un certain point de vue change complètement l'aspect du "Death Match". Les corps se distinguent très bien sur le font blanc et les taches de sangs exagérément grandes mettent d'avantage en évidence l'action générale.
Deuxième étape presque affranchie ! Mon "moteur 3D" peu maintenant importer des fichiers OBJ. Presque car il me faut aussi interpréter les fichier MTL qui correspondent au matériau de chaque objet (pas très complique). Pour l'instant les polygones composé de 5 vertices et plus ne sont pas dessinés. Rendre illimité le nombre de vertex par polygone compliquerai un peu trop mon parser !! Et puis en générale un "Bon model" n'est compose que de triangles.
Je viens de commencer ma première application OpenGL en C en utilisant XCode sur Mac OS X. C'est pas évident mais d'un autre cote c'est très claire. J'ai trouvé un site qui contient plein de tutoriel très très utiles :
nehe.gamedev.net
Pour l'instant vu que je ne savais pas comment faire autrement, le tout est en C ce qui n'est vraiment pas la meilleur solution pour faire quelque chose de complexe. Mais maintenant que je sais comment commencer un projet en C++ sans utiliser XCode (merci Ben) je vais pouvoir commencer quelque chose de plus intéressant.
J'ai améliore ma fonction pour lire un fichier dans le but de pouvoir lire un BMP et choisir parmi une palette de couleur la couleur la mieux appropriée a chiques pixel. En réalité (ou virtualité) ma palette est constituée de 7 polygones de couleurs différentes sensée pouvoir reconstituer en 3D une version en 7 couleurs d'une peinture de Turner. Pour l'instant cette information directement tirée d'un Bitmap d'une photo du tableau est simplement utilise pour reconstituer le tableau a partir de 7500 polygones fixs, mais la prochaine étape devrai être plus intéressante.
J'ai recement decouvert le "Data Glitching" (j'ai auqu'une idee de la traduction) et je trouve ca asse interessant. Il s'agit de lire les informations contenu dans n'importe quel type de fichier informatique et de jouer avec (les modifiers, les mellanger, les permuter). On peut par exemple ouvrire un MP3 dans photoshop avec une representation graphique des donnees, apliquer des filtres visuels a cette image puis enregistrer le tout et voire le resultat lorsque l'on reecoute le fichier sond, ou bien simplement lire le stram video d'une web cam comme un sond, ou une video comme une image, etc ...
J'aimerai bien apliquer ce processus a mes univers en 3D temps reel. Peut etre que ca serai une bonne idee pour integrer une interaction plus elaborer entre l'interface et l'espace virtuel, surtout vis a vis de toutes les theories sur les quels cela reposes (
Claude Shannon : la theorie de l'information). Bref j'aimerai bien voir ce que cela peu produire, alors aujourd'hui je me suis attaquer a : comment ouvrire un fichier et le lire en C++ !
En fait il s'agit surtout d'un "travail a la maison", un devoir dont le but est de faire une scène dans YG sans utiliser de texture. Donc c'est l'occasion de tester ma fonction qui Spawn des Nodes !!
J'aime beaucoup le rendu de ce travail :
ICI
J'aimerai bien trouver un graphisme qui reprenne cette idée de transparence, je sais pas encore dans quel but, c'est juste une piste comme ça. Mais pendant que je poste cet article je me rend compte que c'est vraiment moche ce que j'ai fait aujourd'hui.
Je n'avais jamais essayer de programmer pour générer des formes en 3D (a part une foi ou je m'était pris la tète pendant toute une soirée sans résulta) mais grâce au cour de Douglas "
ddd" j'ai pu retenter l'expérience.
Le programme que j'ai fait n'est vraiment pas du tout originale, c'est juste un prétexte pour apprendre. A l'école quelqu'un est venu montrer a Ben (mon prof) un programme qu'il avait fait qui permettait de lire du son avec une représentation du fichier son en 3D. Seulement il n'avait pas réussit a modéliser l'enveloppe du fichier son autrement que par une grande spirale et cherchait une solution pour construire un volume. J'ai tout de suite pensé a une solution et c'est ce que j'ai fait dans ce programme. Je n'ai pas réussi a l'exporter ... sans doute parceque j'utilise deux librairies (OpenGL et Sonia), ou sans doute parceque Processing n'est pas encore suffisamment au point. Donc il s'agit simplement d'un programme qui joue plusieurs sons différents (qu'on change en clinquant) et qui permet de voir l'enveloppe des sont en cour de lecture sous la forme d'un volume en 3D. Un peu comme l'espèce d'ossilloscope de Winamp mais en 3D. Malheureusement je ne peu donc mètre sur mon blog qu'une image ... mais il faut s'imaginer qu'il y a du son et que s'est très frénétique !!
J'ai commencé a travailler un peu sur le rendu de cette map, avec en tète l'idée d'un rendu a la Sin City. Techniquement il s'agit d'un Fragment Programme qui est appliqué au rendu de la scène (préalablement texturée). Ce programme vérifie si un pixel est dessaturé, si oui il le converti en un pixel a 100% noir ou blanc selon un seuil.
Aujourd'hui je viens de commencer une nouvelle map pour Doom 3, comme ça juste pour le fun. Parceque faire des maps qui servent rien qu'a être jolies c'est cool aussi. Cette map risque encore de ne pas être jouable du tout, mon seul but étant de créer un ambiance graphique intéressante.
Nous naviguons tous les jours dans une représentation sensorielle de la réalité concrète. Cette représentation est composée d’images, de sensations olfactives, gustatives, tactiles, émotionnelles ... qui nous permettent de nous représenter mentalement l’espace dans lequel nous vivons. Cet espace virtuel sera une simulation sonore d’un espace qui existe quotidiennement dans l’esprits de 134 222 personnes.
(Projet en cour de développement ...)
Le but de ce projet était de reproduire la vision de la mouche. Les yeux de la mouche sont composés de milliers d’œil indépendants reliés nerveusement de manière linéaire. Grossièrement la mouche ne voit que les changements. Elle n’analyse pas une représentation visuelle détaillée de son environnement mais ses mouvements. L’expérience consisterait donc a mettre le visiteur face à la reproduction d’un espace classique très réaliste qu’il devra appréhender avec des yeux d’une mouche.
Premier élément de programmation pour ce projet.
Ce programme permet de modifier aléatoirement la position d’éléments de la map (sur la vidéo les cubes) mais de n’effectuer leur changement de position que si ils ne sont pas visibles par le joueur et qu’ils ne vont pas apparaître dans le champs de vision du joueur. Mon but est de mettre en évidence et de tester les processus que j’utilise pour nourrir cet espace d’objets ou de règles et pour manipuler sa représentation : Simulation, Autonomie, Traduction ...
Premier projet de programmation sous Doom 3.
L’objectif était de programmer un des monstres de Doom 3, le redoutable et sanguinaire Hell Knight, pour qu’il puisse jouer au foot par équipe de 2 avec une grosse balle rose.
Une de mes premières tentatives de programmation sous Doom 3.
Il s’agissait ici de programmer un des monstres du jeu pour qu’il puisse identifier ces semblables ainsi que les cubes rouges que l’on voit sur l’image. Et de faire en sorte qu’il sache se déplacer vers le barycentre des éléments qui apparaissent dans son champ de vision.
L’idée principale de ce projet était de réaliser un décors basé sur les couleurs rouge, noir et blanc, et dont chaque élément serait complètement surréaliste. Le but étant de proposer un environnement 3D vivant en Temps Réel dont aucun élément graphique ne se rattache à la réalité, et de déstabiliser le visiteur.
Ma première map sous Doom 3.
Le but était de me re-familiariser avec les outils et d'apprendre les principales nouveautés qu'apporte Doom 3. Ainci cet map fut terminé en 4 jours.
Tentative de réalisation d'une map au rendu spécial sous Quake 3. Mes ambitions et nécessités techniques dépassent les possibilités du moteur 3D de Quake 3, cette map est ma dernière tentative sous Quake 3.
Cette map exploite les toutes dernières possibilités du moteur graphique de Q3 mises à jour grâce à Ydnar (auteur du compileur "Q3map2"), tel que le Bump Mapping, des ombres très fines, le Foghull ...
Projet non finalisé ...
Encore une foi, je voulai faire une ville car iKamaji (Lepuant a l'epoque) en avai fait une dans les tons de gris tres chouette, dans son style. Mais je ne savai pas comment continuer la mienne ... alors je suis passer a autre chose.
Mon objectif dans cette map était d’obtenir un éclairage le plus réaliste possible. Plus de la moitié du temps de travail a donc consisté à placer et à ajuster les sources lumineuses, et l’éclairage qui parait alors très naturel est en réalité complètement arrangé.
Les seules limites étaient la taille de la Lightgride qui limitait la finesse des ombres et l’absence de radiosité.
Ce travail n’aurait jamais était possible sans l’aide des superbes textures de Lemog (http://perso.club-internet.fr/lemog/) et le puissant compileur "Q3map2" réalisé par Ydnar.
Cette map n’a jamais pu être terminée car à mon grand malheur j’ai perdu toutes ces données en même temps qu’un disque dur IBM 30Go d’une série défaillante...
Le principe de la réalisation de cette map est relativement similaire à celui de Jaunpure. Il s’agissait d’utiliser une couleur dominante et de tirer profit des Curves (courbe de Bezier) pour l’architecture.
Mais au finale il ne me reste plus que ces 6 images de la map en developpement ...
Cette map est un projet que je n’ai jamais fini. L’objectif était de ne pas "tricher" avec les lumières ; c’est à dire utiliser un éclairage environnemental et ne rajouter des sources lumineuses que si elles sont matérialisées dans le décor. Cela donne un rendu avec des ombres très contrastées car le moteur graphique de Quake 3 ne gère pas la radiosité.
Ainsi il m’a fallu travailler d’avantage les textures pour que, conjuguées à l’éclairage, elles reproduisent correctement les couleurs que je désirais.
Au finale le rendu n’est pas complètement réaliste, mais intéressant.
Projet non finalisé ...
J'avai juste envie de faire une petite map genre science fiction, une base sur la lune ... avec de la poussierre et une ambience tres ... spaciale.
Cette map utilise exclusivement le système des Curves (courbe de Bézier) et comporte donc énormément de polygones. Ainsi l’architecture n’est composée que de formes arrondies et donne un aspect squelettique à ce couloir jaune.
L’unique teinte de cet environnement est le Jaune, ma couleur préférée, utilisée avec des textures non colorées cela donne un rendu aux couleurs saturées et imposantes renforçant l’immersion.
Ma premiere map pour le mod Dragonball Quake.
Il s'agit du stade du championa mondiale des arts marciaux de cette fameuse serie.
Ma cinquieme map pour le mod Dragonball Quake.
Pour finire en beautee cette map d'un stade que j'avai vue sur des images de la serie. Il s'agit d'une grosse meteoritte viollette dans laquelle est construit un stade d'art martiaux version futuriste. Dessidement Akira Toriyama a vraimant une super imagination. J'aime bien cette idee et le fait d'utiliser du violet pale et du vert pale avec du blanc.
Ma quatrieme map pour le mod Dragonball Quake.
Cette foi si j'ai eu beaucoup de male a faire un decors convenable. Tout dabord j'adore le decors de la planette Namek dans la serie, et puis toujours le probleme des grands exterieurs. Le plus gros probleme etait de ne pas depasser le maximum de polygone que suporte quake 3, et qui est pas tres eleve ... et puis le programme qui j'utilisai pour le multitexturing du sol etait un peu experimentale, je croi qu'il s'appelai GenSurf.
Ma seconde map pour le mod Dragonball Quake.
Il s'agit cette foi de Kamis, le temps dans le ciel ou habite dieu, ou plutot sa moite representant le bien. Tous les mod Dragonball essayaient d'avoir une version de Kamis la mieu realisee possible, la plus apreciee etait celle de Dash, un mapper italien je croi, qui etait lui aussi asse connu. Mais la mienne est mille foi mieu.
Ma troisieme map pour le mod Dragonball Quake.
J'ai fait cette map parceque le Chef du mod me arcelai pour que je fasse une ville a la DBZ. Plus tard tous les autres modes se sont mis a faire leur propre ville et Dash fut egalement amene a en faire une. Mais j'aime bien l'astuce du shader des fenetres sur les batiments, meme si sa fait un peu trop faut bump, le principe des deux couches etait pas bete je pense.
J'ai fait cette carte un peu dans le but de reprendre la bonne idee qu'avai eu iKamaji (encienement Lepuant) qui avai une map dediee a un des personnages du jeu en s'inpirant donc de ce personnage.
Toujours en manque d'inspiration je dissidai de faire pareille, mais ce fut vite peine perdu car je me retrouva encore a bloquer sur cette question stupid, comment continuer ma map a partire de ce que j'ai fait dans ce vide ?
Projet inacheve ...
J'ai fait cette map dans le but de creer une atmosphere particuliere.
J'ai eu beaucoup de male a trouver des textures et a penser l'organisation de l'espace. Je restait tout le temps bloque ne sachant pas comment continuer la carte. En fait c'est vachement difficile de penser un espace exterieur pour un jeu en temps reel. Car on ne peu bien entendu pas permetre une vision a l'ifini, l'horizon est tres difficile a gerer. Enfin ca s'etait avant le miracle de Giants, un super jeu avec des immances decors exterieur tres bien realise.
Premiere foi que j'avai une envie originale avant de commencer une nouvelle map: essayer de donner une impression de froid au joueur !
Je ne sais pas si cela fonctionai ou pas, mais c'etait un point de depart interessant, et je suis asse contant de cette map. Elle m'a forcer a utiliser les shaders pour obtenire de beaux effets de glass, d'eau et de neige, ce qui etait asse nouveau pour moi.
J'ai fait cette map un soire ou je m'enuyais.
J'aimai beaucoup le mode
Pain Keep Arena pour Quake 3, dont la premiere map etait tres basique : un grand trou avec un bumper au millieu.
J'ai essayer de faire un peu pareille mais a ma maniere ...