DeferredRendering 2014-03-17 23-27-57-89

Voxel visualization using DrawIndexedInstancedIndirect

This week end I worked with the DrawIndexedInstancedIndirect function, and since I didn’t find that much informations I wanted to share my results. The next step for my voxel cone tracing project was to generate mip maps for my voxel grid. I implemented a first draft, but I needed a better way of displaying my voxel grid, to make sure that they all of them were correct. I was using the depth map to compute the world position. Then I transformed it into voxel grid coordinates to find the color of the matching voxel. ...

March 18, 2014 · 6 min · admin
Voxelization512_GTX770

Voxelization using the GPU hardware rasterizer

Last week I started to add a new feature to my tiled deferred renderer: voxelization using the GPU hardware rasterizer. A lot of recent techniques use a voxel grid (global illumination, volumetric effects, etc.) and I really wanted to experiment some of them, especially global illumination. One paper in particular had caught my attention, voxel cone tracing. The first step of this technique is voxelization using the hardware rasterizer. There are plenty of resources on this topic: ...

March 10, 2014 · 4 min · admin

Visual Studio has triggered a breakpoint

Yesterday I wasted a lot of time tracking a bug which turned out to be pretty instructive. I am working on a tiled deferred renderer, and after adding a bunch of features, and before starting new ones, I spent some time on cleaning the development mess. The DirectX debug device was complaining about some objects I forgot to release, so I made sure that my destructors were all doing their job. But then each time I closed the program, this message showed up: ...

February 26, 2014 · 3 min · admin

"Physical" midi user interface for lazy programmers

It’s been a while since my last post, but I’ve been busy, new job, new continent, etc… This summer I was working at Ubisoft Paris, and for one of my tasks I needed to create a sample program, to implement and an effect. It takes some time to rewrite tools you usally have in the engine like shader builder, DX entities creators, camera class, etc, but what I really found time consuming, and annoying was everything UI related. There were a lot of settings, and the goal being to explore all of the possibilities, almost all of them had to be exposed to the user. It’s such a pain, creating your sliders/buttons/whatever, setting the position, width, height, initializing, drawing and updating, etc. I used DXUT’s UI components, I’m sure there is better tools out there, but I have to admit, I don’t like UI programming, so I wanted to find a better way for my future projects. ...

February 18, 2014 · 3 min · admin

Udacity Introduction to Parallel Programming CS344 VS 2012 Solution

I’m currently folowing the great Udacity lessons about parallel programming and CUDA. I made a Visual Studio 2012 solution to do some quick test for the assignement and I was thinking that it could be usefull to someone, so I put it on GitHub. I’ll try to update it for each lessons. You can find it there. Before being able to launch it you may need to do some steps. First, you need to download openCV and unzip it to C:/Program Files/opencv, or change the directory accordingly in the “VC++ Directories” of the projet properties. Of course, you also need the CUDA SDK. ...

February 11, 2013 · 1 min · admin

Particles - Collision and Flow Maps

Un nouveau post sur les particules pour présenter deux features, les collisions et l’utilisation de flow maps. Tout d’abord les collisions avec une petite vidéo: &width=500&height=350 Ces particules sont ce que l’on appelle statefull, ce qui signifie qu’elles conservent leur état précédent, et peuvent l’utiliser pour réagir en fonction de l’environnement. Cela me permet de leur appliquer une physique rudimentaire (la gravité et l’attraction par exemple), et de réagir aux collisions avec les bords de l’écran. Mais cela permet aussi de réagir avec un environnement potentiellement dynamique. J’utilise une texture de collision. Pour chaque particule, je regarde si à sa nouvelle position se trouve une information dans cette texture. Si c’est le cas il y a une collision et la particule réagis en conséquence. Ici j’écris du texte dans la texture de collision, mais cela peut être n’importe quoi, et peut même être dynamique. ...

February 7, 2013 · 1 min · admin

C++/DirectX 11 - 48h Deferred Rendering Engine

Pendant la Global Game Jam j’ai codé un début de moteur deferred en C++/DX11 (donc c’était plus une global “tech” jam) pour me familiariser avec cette API. Seules les lumières directionnelles sont implémentées à l’heure actuelle. Il y a encore beaucoup de choses à implémenter et a nettoyer, mais je travaille toujours dessus, et compte en faire un moteur de voxels. Le code source est disponible sur GitHub. During the Global Game Jam I coded a deferred engine in C + + / DX11 (so it was more of a global “tech” jam) to get familiar with this API. Only directional lights are working right now. There are still many things to implement and clean, but I’m still working on it, trying to make a voxel engine. ...

January 29, 2013 · 1 min · admin

GPU Particles

&width=500&height=350 English version is coming soon ! Une première vidéo pour montrer et expliquer le fonctionnement de base de mon moteur de particules. Tous les calculs de mise à jour, physique et collisions s’exécutent sur le GPU, ce qui permet d’avoir de bonnes performances pour un grand nombre de particules (ici 1 000 000 de particules, locké à 30 fps pour les besoin de l’enregistrement). ...

January 19, 2013 · 2 min · admin