Improved shadows using dithering and temporal supersampling

To be able to implement volumetric lights I had to start with shadows for the sun light. As it wasn’t my primary focus I went for a straightforward shadow map implementation on a 2k texture. It’s easy and quick to code, but yeah, the results are ugly. I didn’t planned to implement a more advanced shadow map technique anytime soon, but I also didn’t want to stay with those ultra pixaleted shadows, so I tried to apply my two current favorite techniques: dithering and temporal supersampling :). Let see what it can do !

September 4, 2014 · 4 min · admin
Disney4

Implementation of the Disney principled BRDF

After reading the papers from the 2012 siggraph shading courses I really wanted to try the BRDF described by Disney. It’s possible to use the awesomeopen source tool BRDF explorer, but I really wanted to try it in my own renderer. You can download it here: PBRViewer. In his talk, Brent Burley describe the BRDF adopted by Disney and used for every materials in Wreck-it Ralph, except for hairs. He also explain how they come up with this BRDF, the tools they used, etc. The course notes are full of informations, it’s really something anyone interested in physically based shading should read. ...

April 22, 2014 · 3 min · admin
marble2

Tweaking the Cook Torrance BRDF

I’m still learning things about physically based shading using my PBRViewer, and this time, I wanted to be able to experiment the variations of the Cook Torrance BRDF. The Cook Torrance BRDF looks like this: This equation is composed of three distinct terms: F: The fresnel, represents how the reflectivity change at grazing angles. G: The Geometry term, represents the probability that a microfacet will be visible from the light and view directions. D The normal distribution term, defines the distribution of the orientation of the microfacets. For more infomations you can read the very interesting " Physics and math of shading" by Naty Hoffman. For each term there is more than one possibility, and you can choose according to your need, and your budget the terms of your BRDF. Even if GGX is becoming the new standard, I wanted to experiment the other possibilities. ...

April 11, 2014 · 2 min · admin
diffspec

Physically Based Shading, Metallic and Specular workflows

Physically based shading is more and more adopted and even if the core mechanism is pretty much always the same, the workflow may differ from an engine to another. For example let’s compare two common ones, often called Metallic and Specular. The metallic workflow uses a color input, the base color, and two scalar parameters, rouhghness and metallic. On a specular workflow there is two color inputs, an albedo and a specular, and a scalar, the roughness. ...

April 4, 2014 · 4 min · admin
Physically Based Rendering

Physically based rendering viewer

Physically based rendering is becoming the new standard for materials. It was already used a lot in AAA productions, and it’s now in Unreal Engine, Cry Engine and Unity. As a graphic programmer I’ve read a lot of papers and seen lots of presentation on that topic, but I never had the chance to try it. That’s why I made a small software, to be able to experiment both on a code and data point of view. ...

March 30, 2014 · 3 min · admin
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

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