Blog
-
Depth buffers the gritty details
Do you want to know why your app has z-fighting even when you’re using a 24 bits zbuffer in your 3D app ? Or are you interested to know what is the internal representation of a Z-Buffer and aren’t afraid of the gritty details ? Then read the following : The depth buffer the gritty details.
-
La formule du yield (microprocesseurs)
Si vous vous intéressez un peu au monde de l’électronique vous avez peut-être entendu parler du terme “yield” employé pour les microprocesseurs. Ce terme qui signifie en gros, le pourcentage de processeurs fonctionnant correctement rapporté à la capacité théorique de la ligne de production. Ce que je vais explorer ici, ce sont les modèles théoriques qui permettent de le calculer, les raisons des malfonctions et leur influence sur le coût d’un processeur.
-
Direct3D 10 du changement en perspective
Alors ce futur Direct3D 10, révolution ou évolution ?
Scoop : la version 10 de direct3d ne va pas révolutionner le gameplay des jeux. Mais ce n’est pas trés important puisque cette nouvelle release est entièrement et uniquement dédiée au graphisme ! Avec un peu de chance vous jouerez toujours aux mêmes FPS sous de nouveaux noms l’an prochain ;). Ce qui suit va donc uniquement parler du côté technique des jeux. Pour les tests, il y a les sites spécialisés.
-
High Dynamic Range
Si vous avez suivi l’actualité du jeu vidéo, vous avez probablement entendu parler du rendu HDR, autrement traduit de manière barbare en français par rendu à grande gamme dynamique. Comme dans la phrase suivante : “La prochaine génération utilisera à fond le HDR, il y a aura du blooming et des lens flares et des effets de lumière par pixel”. Pour la plupart des gens cela reste un beau charabia malgré l’importance que cela prendra bientôt dans le rendu des jeux en temps réel. Ce petit article tente de dédramatiser un peu tout cela en prenant appui sur la réalité™ pour démontrer/démonter ce qu’il est possible de faire et quels sont les ressources nécessaires. Je prends le point de vue du programmeur (le mien) ou de la personne qui n’est pas effrayée par la technique.
-
A voxel engine design [oldskool]
Here comes a short article (compared to the months long articles about raytracing) about the design of a voxel terrain engine that I conducted back in the days of 1999 : the main inspiration was the game Outcast which looked gorgeous at that time when polygons only started to become interesting.
There have been some improvements since then, explanations on this page (in english): A voxel terrain engine design in C++
Le lien ci-dessus pointe vers un nouvel article, plutot court (comparé au marathon de plusieurs mois consacré au raytracing), consacré comme l’indique le titre au rendu de terrain par voxel. La principale source d’inspiration étant Outcast qui m’avait beaucoup impressionné par son rendu lorsque les polygones étaient encore balbutiants. Le design de ce moteur avait commencé en 1999. Vous pouvez lire l’article en français à l’adresse suivante : Design d’un moteur de terrain par voxel en C++.
-
Raytracer en C++
J’ai mis en ligne une série d’articles sur le raytracing, avec l’implémentation d’un exemple de raytracer en C++. Il s’agit d’une compilation de posts écrits sur les forums de hardware.fr et qui ont grandement bénéficié d’une remise en forme.
Vous pouvez accéder à la première page (ainsi qu’aux suivantes) ici: Premier pas - raytracer en C++Les notions abordées sont aussi diverses que : balayage et écriture d’un fichier TGA, intersection rayon/sphère, lecture d’un fichier config, éclairage de lambert, phong, blinn-phong, correction gamma et format sRGB, formule de Snell-Descartes, formule de Fresnel, réfraction, réflexion, bump mapping, surfaces isopotentielles (blobs), texture d’environnement cubique, adressage cubique, filtrage bilinéaire, bruit de Perlin, textures procédurales, roulette russe, importance sampling, suréchantillonnage (oversampling et supersampling), loi de Beer, aberration chromatique, format HDR et tone mapping, profondeur de champ (depth of field), kd-tree, illumination globale, photon tracing/photon mapping, caustiques et interréflexions et un raton laveur.
You can find on the link above an old article on the raytracing that I reformated for my main web page (it was originally published as a serie of posts on a discussion board). The articles and the source code comments are in french.
-
Résolutions et ratio d'écran.
On part généralement du principe que les pixels sont carrés une fois représentés à l’écran. Ce qui est généralement le cas lorsque l’on est dans la résolution native de cet écran. En pratique on pourrait proposer des options un peu plus avancées que ce qui existe à l’heure actuelle parce qu’il est parfois délicat d’avoir une résolution native qui reste jouable.
-
Tri multicritère
(drop the hyphen! comme dirait D. Knuth)
Une question qui semble souvent bloquer sans raison les débutants en programmation est le tri sur plusieurs critères.
-
Stéréovision
I’m not sure what’s the equivalent name for stereoscopy when you have actually three (or more) different views. Anyway this project was called stéréovision and I struggled because it was my first project in C++. (I guess nowaday I would find it sooo easy to redo it).
http://www.massal.net/article/stereovision.pdf (forgive the quality of the paper which is equally bad. I just keep it for curiosity purpose.)
Je ne suis pas sûr qu’il y ait un mot différent pour trois vues différentes (ou plus) mais ce papier s’appelle stéréovision tout de même. Bien évidemment comme c’était mon premier vrai projet en C++, je me suis battu en même temps pour apprendre le langage (introduction à la STL et tout ça). J’imagine que si je le faisais aujourd’hui je trouverai tout cela tellement facile.. Le papier est gardé comme objet de curiosité principalement même s’il y a quelques idées à glaner si vous débutez.
-
Bézier
Voici mon premier article sur les courbes et surfaces de Bézier
Here is my first article in the serie, about the Bezier curves and surfaces (in French)