Codes
I am kind of curious and I enjoy understanding how stuff works! Here are some "demos" that I code during my spare time. They are based on a deferred shading pipeline, with a filmic tone mapping based on John Hable's technique. I use a Peter Shirley's sky model as environment map, and compute irradiance map into spherical harmonics basis on the fly. Hence, all the lighting is dynamic.Depth of Field with Bokeh Rendering
Implementation of a depth of field technique with bokeh rendering. An atomic counter and a UAV surface detect and store high contrasted pixels' position. Quads with a bokeh texture are drawn for simulating the aperture's shape on these pixels. Everything is done on the GPU without any CPU/GPU synchronization. The technique will be published into OpenGL Insights book.
Implementation of a terrain tessellation technique. I use terrain's tiles projection as a heuristic to determine the tessellation level of each tile. This simple heuristic works quite well except for highly displaced surfaces.
Cook-Torrance & Sky illumination
Implementation of the Cook-Torrance BRDF (with Schlick's approximation for the Fresnel term and Kelemen's approximation for the geometric term). The sky light/env. map is dynamically generated with Peter Shirley sky model. The sky irradiance is projected onto Spherical Harmonics and pre-convolved on the fly. I compute specular term with the sun light and the diffuse term with the pre-convolved irradiance.
EVSM (Exponential Variance Shadow Mapping)
Implementation of the EVSM (Exponential Variance Shadow Mapping) technique based on GPU Pro 2 book for limiting light bleeding. Occluders are represented by the first two moments of their depth distribution. The linear representation of these moments, allows to filter the shadow map directly (here with a separable Gaussian filter). This technique is used here in combination with CSM (Cascaded Shadow Maps).
Screen Space Ambient Occlusion
Implementation of a SSAO technique based on Morgan McGuire's paper. SSAO is done at full resolution and a bilateral filter is done for smoothing results. As explained in the paper, removing hard-edge artifacts on the ground would required additional tessellation.
Implementation of a CSM technique. Shadow maps are stored into a texture array. Video is shot with four level cascades with a resolution of 1024x1024. Percentage closer filtering is done for filtering shadow boundaries and a slope-based bias is used for avoiding shadow acne.
Education
Main skills | Graphics hardware programming |
Compute graphics | |
Applied mathematics | |
Software design (OOD / DOD) | |
Technology scouting | |
Language / API | C++, C, C#, SSE, Java, ... |
OpenGL 4.x, DirectX 11, CUDA, Optix, ... | |
STL, Boost, ... | |
Software | Visual Studio, GDB, Valgrind, ... |
Matlab, Octave | |
3DS Max, Inkscape |
My full resume is available here.
2008 - 2011 | Ph.D in Compute Graphics at INRIA, Grenoble, France. |
Ph.D exchange program at University of California at Berkeley, Berkeley, USA. | |
2007 - 2008 | Master's Degree in Computer Graphics and Vision in Lyon University, Lyon, France. |
2005 - 2008 | Master's Degree in Compute Science, National Institute of Applied Sciences (INSA), Lyon, France. |
2004 - 2005 | Institute of Technology, Dijon, France. |
2003 - 2004 | Institute of Technology, Montpellier, France. |
Lecture : I gave some lectures in 2008 at Ubisoft Annecy on advanced C++ programming techniques. Below are the slides for those lectures (in french) :
Book : I am writing a book chapter entitled "Depth of Field with Bokeh Rendering" with Matt Pettineo. This chapter will be released at SIGGRAPH 2012 in the book OpenGL Insights published by A.K. Peters.
Research
We present an algorithm to render objects of transparent materials with rough surfaces in real-time, under distant illumination. Rough surfaces cause wide scattering as light enters and exits objects, which significantly complicates the rendering of such materials. We present two contributions to approximate the successive scattering events at interfaces, due to rough refraction : First, an approximation of the Bidirectional Transmittance Distribution Function (BTDF), using spherical Gaussians, suitable for real-time estimation of environment lighting using pre-convolution; second, a combination of cone tracing and macro-geometry filtering to efficiently integrate the scattered rays at the exiting interface of the object. We demonstrate the quality of our approximation by comparison against stochastic raytracing.
ACM SIGGRAPH - I3D'11 - Paper, Video, Best paper award
Material Model for Discrete Media
Many objects used in virtual scenes are defined with thousands of smaller features, such as grains of sand, snowflakes or fur. Simulating light interactions with these many features is a challenging task, both in terms of processor and memory costs. We investigate a new model for rendering such complex discrete media in an efficient way.
Work in progress.
Spherical harmonics are commonly used in Computer Graphics. They provide a compact representation for low frequency directional distributions, such as BRDFs, env maps, Normal Distribution Functions, etc. Operators for manipulating SH distributions are quite complicated : arbitrary rotation or arbitrary convolution. We investigate a new representation based on Spherical Harmonics allowing simpler and faster operations : rotation and convolution. In particular, this method allows to pre-filter non radially symmetric distributions in a simple and efficient way.
Work in progress.
Recommended Blogs
Recommended Books
- Physically based Rendering Techniques
Matt Pharr & Greg Humphreys - Real-Time Rendering
Tomas Akenine-Moeller, Eric Haines & Naty Hoffman - Game Engine Architecture
Jason Gregory - Effective C++
Scott Meyers - More Effective C++
Scott Meyers - Modern C++ Design
Andrei Alexandrescu