OpenGL 4.0+ ABuffer V2.0: Linked lists of fragment pages

The main problem with my first ABuffer implementation (cf. my previous post) was that a fixed maximum number of fragments per pixel has to be allocated at initialization time. With this approach, the size of the ABuffer can quickly become very large when the screen resolution and depth complexity of the scene increase.



(continue reading…)


Fast and Accurate Single-Pass A-Buffer using OpenGL 4.0+

One of the first thing I wanted do try on the GF100 was the new NVIDIA extensions that allows random access read/write and atomic operations into global memory and textures, to implement a fast A-Buffer !

It worked pretty well since it provides something like a 1.5x speedup over the fastest previous approach (at least I know about !), with zero artifact and supporting arbitrary number of layers with a single geometry pass. 



(continue reading…)


The Froggy FragSniffer

For today GPU generation, we know a lot more about the hardware mechanism than for previous GPU generation, in particular thanks to the window open on this hardware by Cuda. But many hardware details are still hidden to the programmer, in particular mechanisms used for primitives rasterisation and fragments shading. As understanding how fragments are scheduled among the G80 processing units is a critical points for the research we do with Fabrice Neyret as part of my PhD, I wrote a small program allowing to investigate this point.

The probing tool I wrote is called The Froggy FragSniffer and can be downloaded here (see Readme for details):http://www.icare3d.org/FragSniffer/FragSniffer_0.2.zip

We also wrote a document that presents our motivations for this work, the experiments we made yet and the results and answers we get: http://www.icare3d.org/GPU/CN08

We hope this document will give you useful informations. We don’t want it to be closed and we want to make it evolve through new experiments and also thanks to exterior comments you can leave at the bottom of this page.


OpenGL 3D Logo


Here is a simple personal redesign of the OpenGL logo I have made for fun. It can be used as a wallpaper for OpenGL fans (who said the most seriously affected ones ?).
If you have suggestions to complete it don’t hesitate :-)

NOTE: OpenGL® and the oval logo are trademarks or registered trademarks of Silicon Graphics, Inc.


Anim JNM 2007

jnm4
Petite animation que j’ai réalisé pour les journées nationales des IUP MIAGE qui se déroulent cette année à Orléans. L’idée était de créer un jingle animé un peu à la façon des transitions de pubs de TF1. Un petit coup de main à mes amis du LIFO :-)

Plus d’infos sur les JNM 2007 ici.

Vidéo (DivX 6, 800×600) :

http://www.icare3d.org/JNM4c.avi


Real-time GPU Ray-Tracer

CornellJungle2

This is the final version of a RayTracer project developed in 2007 with Adeline Pihuit during our master thesis. It is composed of a fast real-time GPU raytracer developed using OpenGL and Cg that can run on a GeForce 6 (NV40, SM3.0) class GPU, and an off-line CPU recursive raytracer that can be used to compute reference images.

The application load scenes described in XML files and allows manipulating light sources and debugging individual rays.

Keys:

  • Load a scene (.scn) file : ‘l’
  • Manipulate light source : ’3′ to select the light to manipulate, then CTRL+RIGHT-CLICK to move the light
  • Display helpers (lights, cameras, paths…): ’7′
  • Render static image with CPU ray-tracer: ‘d’
  • For other keys, display the help window: ‘h’

(continue reading…)


OpenGL Geometry Shader Marching Cubes

geomshadertut1

Two months ago was introduced the G80 and the set of OpenGL extensions allowing access to all of its new functionalities (cf. my posts on G80 architecture and OpenGL extensions, it is in French but can be translated with the British flag button on top left. You can also refer to http://www.g-truc.net/ that also provides a good analysis on G80 OpenGL extensions in french). Among them are GPU Shaders model 4 and the new Geometry Shader they introduce.

For the first time, on-GPU dynamic generation of geometric primitives becomes possible.  But till now, very few examples and tutorials on theses functionalities are available. The only tutorial I have been able to find is the one from Xie Yongming, it’s a good start but unfortunately its source code is unavailable.

This simple example will show how to use GLSL Geometry Shaders (EXT_geometry_shader4 and EXT_gpu_shader4) and the new integer texture formats (EXT_texture_integer) extensions to implement the Marching Cubes algorithm entirely on the GPU. The implementation I will present is probably not the most efficient but I think it is a good example, showing the usage of the new shader stage, new texture formats and binary operations within shader.

(continue reading…)


Automates Cellulaires

shot_wincdlmqt
C’est un projet réalisé en fin de première année d’IUT sur lequel je suis retombé récemment. Il s’agissait à la base d’implémenter une série d’automates cellulaires en C++ et QT. J’avais en fait développé tout un framework de simulation et d’interfaces graphiques génériques et multi-plateforme que j’avais utilisé pour implémenter 4 automates cellulaires différents dont une simulation d’écho-système Herbe/ Lapins/ Renards assez intéressante.

 

 

(continue reading…)


Raytracer GPU

gpurt5
Projet de moteur de rendu par lancer de rayons totalement GPU que je suis en train de développer. L’ensemble de la simulation est effectuée dans un programme de traitement de fragments.

Voici un exemple de rendu obtenu sur une scene composée de 4 sphères à une vitesse de presque 100 FPS avec 3 niveaux de récursivités pour le calcul des réflections, un calcul d’ombres et un éclairage de Phong.

Cette démo nécessite une GeForce 6 minimum.

(continue reading…)


Tri Parallele FlowVR

capturepsfvr1
Petite application éducative réalisée pour le LIFO à l’occasion de la fête de la science 2006. Il s’agissait de montrer aux plus jeunes l’intéret de la distribution de calculs sur une grappe de PC pour d’une application 3D interactive. La mise en oeuvre d’un tri parallèle est illustrée au travers du classement de composants chimiques présents dans une solution.

L’application a été réalisée en collaboration avec Sylvain Jubertie et utilise la bibliothèque FlowVR développée par le LIFO et le laboratoire ID de l’IMAG (INRIA)

Package source de l’application (nécessite FlowVR, CG 1.5 et glew):
tgz parallelsortfvr5 15/10/2006,11:13 681.00 Kb


Stage ST50: Dassault Systemes

logo3ds_simple_big.png

J’ai effectué mon stage de fin d’études d’ingénieur à Dassault Systemes, dans le service recherche et innovation sur un sujet mêlant simulation et visualisation 3D temps réel. Je ne peux malheureusement pas donné plus de détail ni mettre ici des images pour des raisons de politique interne de l’entreprise. Sachez en tout cas que ca a été une très bonne expérience et que j’y ai fait des choses bien sympa dans le domaine de l’animation de phénomènes fluides ;-)

« Animation Temps Réel de Phénomènes Fluides Basée sur une Technologie GPGPU ».


Moteur 3D pour plateforme de Réalité Virtuelle

sallerv.png
Le laboratoire SeT (Systèmes et Transports) de l’UTBM dispose d’une plateforme de réalité virtuelle composée d’un écran pour la vision stéréoscopique ainsi que d’un système de périphériques de tracking pour le déplacement et les interactions dans l’environnement. Cette plate forme est utilisée comme outil d’aide à la décision, d’aménagement du territoire ou encore de simulation de systèmes de transport ou de flux d’individus. Ces applications sont actuellement développées et mises en oeuvre sur la plateforme à l’aide de Virtools.

(continue reading…)


Stage ST40: CEA-DAM

cealogo.png

J’ai effectué mon stage de deuxième année d”ingénieur (ST40 dans le jargon UTBM) au CEA-DAM de Bruyeres le chatel sur un sujet de visualisation scientifique et de parallélisme.

« Rendu volumique accéléré matériellement en environnement parallèle à mémoire distribuée ».

(continue reading…)


Correspondance images stéréoscopiques multi-agents (IA54-IN54)

scr1.png
Nous avons mené ce projet dans le cadre des UV IA54 (Systèmes multi-agents) et IN54 (Reconnaissance de formes) de l’UTBM. Il s’inscrit dans l’optique de ces cours et des recherches menées dans le laboratoire SeT de l’école concernant la détection d’obstacles à l’avant d’un véhicule intelligent par vision stéréoscopique. Notre travail s’est focalisé plus particulièrement sur l’algorithme de mise en correspondance au coeur de la vision stéréoscopique permettant de reconstituer la profondeur d’une scène observée. En liaison avec le cours d’IA54, notre travail a consisté à concevoir, développer et expérimenter une approche nouvelle de ce problème basée sur une méthode multi-agents couplée à un pipeline de traitement d’images GPU.

(continue reading…)


Stage IUT: LIFO

lifologo.jpg

Dans le cadre de l’obtention du DUT Informatique, les étudiants doivent effectuer un stage d’une durée de 9 semaines afin de mettre en pratique les compétences acquises au cours des deux ans de formation à l’IUT. J’ai effectué ce stage au LIFO, le Laboratoire d’Informatique Fondamentale d’Orléans, où j’ai intégré l’équipe de recherche sur la Réalité Virtuelle.

« Développement d’un démonstrateur de Réalité Virtuelle sur cluster de PC ».

(continue reading…)


Visualisation 3D de terrains (IN55)

scr5b.pngL’objectif global de ce projet était de mettre en oeuvre une visualisation de terrains définis à partir de cartes de hauteur (height map). Il s’agit en effet du moyen le plus courant pour définir un terrain géographique. Le but était de pouvoir réaliser cette visualisation en temps réel sur de vastes étendues de terrain extrêmement détaillées.

La technique que nous avons adoptée et mise en oeuvre dans ce projet s’appelle “Geometrical Mipmapping” et a été introduite en 2000 par Willem H. Boer [DeBoer00]. Nous avons adapté cette technique pour en réaliser une mise en oeuvre optimale et totalement accélérée sur matériel graphique. Nous avons également développé un mécanisme efficace de partitionnement de l’espace et de chargement dynamique de données et avons également étendu l’algorithme avec un mécanisme de Géomorphing matériel.

(continue reading…)


TicTacToe 3D (LO52)

scr1b.pngIl s’agit du projet d’application d’une UV de 2ième année sur les systèmes embarqués et temps réels. Le but était de réaliser un jeu du Tic Tac Toe (morpion) sur plateforme mobile J2ME permettant à 2 joueurs de s’afronter via une communication Bluetooth. Nous avons fait le choix avec Béatrice Frey de le faire en 3D via l’API mobile 3D.

Rapport de projet:

Rapport LO52 Frey Crassin.pdf Rapport LO52 Frey Crassin.pdf (527.20 KB)

Package contenant les sources du projet:

zip Projet LO52 Frey Crassin 27/12/2006,16:18 1.58 Mb


Simulation 3D de transport urbain (TX)

tcsp.jpgLes TX sont des UVs spéciales à l’UTBM, elles consistent en la réalisation d’un projet d’envergure au sein d’un laboratoire de recherche de l’école. Cette TX s’inscrivait dans un vaste projet de simulation de transport hurbain destiné à permetre la visualisation et l’estimation de l’impact de l’implantation d’un transport en commun en site propre dans la région de Montbéliard. Ce travail a été réalisé avec Sylvain Juge au sein du laboratoire SeT et nous avons mis en oeuvre une simulation de flux de véhicules destinée à être intégrée dans une simulation 3D temps réel.

Rapport de projet:

TX TCSP.pdf TX TCSP.pdf (294.96 KB)


Pavage du Plan (AG41)

scr1.jpgLe but de ce projet était de mettre en application le cours d’optimisation et de recherche opérationnelle en créant un programme permettant la résolution du problème de pavage du plan, en utilisant un algorithme génétique (ou évolutionniste).

Projet réalisé avec deux autres étudiants : Sylvain Juge et Régis Vogel.

Rapport de projet:

Rapport projet AG41b.pdf Rapport projet AG41b.pdf (361.48 KB)


Simulation 3D de fourmis (LO43)

scr6.jpgL’objectif de ce projet était de simuler le comportement d’un ensemble de fourmis dans un contexte compétitif sur un terrain parsemé de nourriture et d’obstacles. Le but principal était de concevoir une architecture objet propre et suffisament abstraite pour être réutilisable dans des projets futurs. Il a été réalisé en Java avec affichage 3D OpenGL via l’API GL4JAVA.

Projet réalisé avec Béatrice Frey.

Rapport de projet:

Rapport LO43 Frey Crassin.pdf Rapport LO43 Frey Crassin.pdf (1.63 MB)


Labyrinthe 3D (LO42)

laby9b.jpgProjet d’application d’une UV sur les structures de données et TDA. Le but était de mettre en oeuvre un algorithme de recherche de chemin optimal dans un labyrinthe en 3D. Il a été réalisé en Java avec représentation graphique en Java 3D.

Ce projet a été mené avec Béatrice Frey, une autre étudiante de l’UTBM.

Rapport de projet:

Rapport LO42 Frey_Crassin.pdf Rapport LO42 Frey_Crassin.pdf (405.43 KB)


Quaternions (IA41)

shot4b.jpgIl s’agit du projet d’application du cours de LISP de l’UV d’Intelligence artificielle de 1ere année. Le but était de montrer l’usage et les interets de l’utilisation des Quaternions dans un programme en langage LISP. Nous avons fait le choix de montrer les principales applications en infographie pour la manipulation de rotations dans l’espace en couplant LISP et C++ dans 2 programmes utilisant OpenGL pour le rendu graphique.

Le 1er programme permet de comparer l’utilisation des quaternions et des angles d’Euler pour la manipulation d’objets dans l’espace (élimination du gimbal lock) et le second montre l’avantage des quaternions dans les interpolations de rotation.

Les deux programmes écris en C++ font appel à un noyau de calcul sur les quaternions écrit en LISP via une interface FFI (Foreign Function Interface) proposé par le Common LISP.

Ce projet a été réalisé avec Béatrice Frey une autre étudiante de l’UTBM.

Rapport de projet:

Rapport IA41d.pdf Rapport IA41d.pdf (1.07 MB)


Présentation multimédia du corps humain (IN42)

scr1_1.jpgIl s’agit d’un projet réalisé en flash et director dans le cadre d’une UV de multimédia de 1ère années d’ingénieur. Ce projet a été réalisé avec Céline Kapler.

Rapport de projet:

rapport IN42b.pdf rapport IN42b.pdf (5.12 MB)


Rendu de Fractales 3D

volfract1Démo de calcul et de visualisation de fractales 3D générées à partir de Quaternions. Cette démo utilise un moteur de rendu volumique temps réel que j’ai développé. Elle nécessite une carte 3D compatible avec les shaders 1.3 (GeForce 3).

Executable:

zip fractal3d 10/09/2006,15:49 706.78 Kb

Code source (Under GPL license):

zip VolRenderFractal.zip

 

 


Rendu de pelage

Démo OpenGL + Cg d’une méthode temps réel de rendu de pelage.
lapin

Le principe de cette méthode est de simuler l’interaction du pelage avec la lumière sur une succession de couches accumulées autour de l’objet à habiller. Les couches sont générées par projection du maillage à habiller le long de ses normales dans un vertex program.

Le pelage est créé de manière procédurale sur une texture 2D représentant un champ de hauteur (points aléatoires denses + lissage). Cette texture est ensuite utilisée pour chaque couche dans un fragment program afin déterminer ou non la présence d’un poil en fonction de la hauteur (distance au modèle) de la couche courante.  Le couleur finale de chaque fragment est ainsi générée à partir de la couleur globale du pelage.

La démo effectue également l’animation par key-frames d’un modèle MD3 avec interpolation des mouvements dans le vertex program.

(continue reading…)


Simulation de fluides

fluid6.jpg
Simulation de fluides "physically based" (équations de Navier-Stockes) basée sur le travail de Jos Stam réalisée en collaboration avec Sylvain Jubertie. Visualisation OpenGL basée sur des point sprites.

Démo:

Fluid.zip Fluid.zip (270.76 KB) 


Rendus Virtual Dog

Chien virtuel réalisé pour un projet de présentation de l’IUT.

Rendus_VirtDog
MGM ThumbMGM Thumb
MGM ThumbMGM Thumb
MGM ThumbMGM Thumb
MGM ThumbMGM Thumb
MGM ThumbMGM Thumb
MGM ThumbMGM Thumb

Rendus Egypte

Quelques rendus sur le thème de l’égypte antique.

Rendus_Egypte
MGM ThumbMGM Thumb
MGM ThumbMGM Thumb
MGM ThumbMGM Thumb
MGM ThumbMGM Thumb
MGM ThumbMGM Thumb
MGM ThumbMGM Thumb

Rendus Cité Antique

Rendus sur le thême d’une cité antique imaginaire.

Rendus_City
MGM ThumbMGM Thumb
MGM ThumbMGM Thumb
MGM ThumbMGM Thumb

Rendus Divers

Rendus sur divers thêmes.

Rendus_Divers
MGM ThumbMGM Thumb
MGM ThumbMGM Thumb
MGM ThumbMGM Thumb
MGM Thumb

Rendus Rue SF

Divers thêmes de science fiction.

Rendus_RueSF
MGM ThumbMGM Thumb
MGM ThumbMGM Thumb
MGM ThumbMGM Thumb

Rendus Bateau Dirigeable

Bateau dirigeable volant.

Rendus_BatDir
MGM ThumbMGM Thumb
MGM ThumbMGM Thumb

Copyright © 2006-2012 Icare3D. All rights reserved.
Icare3D 2.0 theme, based on Jarrah theme by Templates Next | Powered by WordPress