CPU details you always wanted to know but never asked

Here are two roughly 90mn long resources on these CPU details you always wanted to know but never asked:

An article giving an up to date, dense and well explained overview of microprocessors architecture: Modern Microprocessors – A 90 minutes guide!

A talk by Scott Meyers on CPU cache: CPU Caches and Why You Care. Although the recording could be much better to say the least, the talk is very worth watching, starting with very simple considerations and getting pretty far while staying crystal clear. The slides can be found here.

Update: the Scott Meyers talk referenced in the above link has been put behind a paywall. However he gave his talk again in 2014 at a conference, and the video is available. The new talk contains a few differences, and all in all I find it a bit harder to follow and a bit less entertaining (for some reason, the jokes don’t work as well as they did previously), but the recording quality is also much better.

Octree-Based Sparse Voxelization for Real-Time Global Illumination

Last year Cyril Crassin presented a voxel based approach for interactively computing indirect diffuse and specular lighting, along with a couple of demonstration videos, and kept working on the matter since then.

In this talk given in May at the NVIDIA GPU Technology Conference, he briefly explains the technique:

Interestingly enough, as he points out, the technique has been implemented in the Unreal Engine 4 already.

Bret Victor – Inventing on Principle

The Toolsmiths, a blog focused on content creation tools for video games, mentioned this enlightening talk by Bret Victor. The first part has some thought provoking ideas for programmers and anyone in a creation process in general. This will certainly strike a chord or two if you’re in the demoscene or in the video game industry.

Toward physically based rendering, screenshot after screenshot

Here are the screenshots I made for the talk I previously mentioned. They show how the rendering evolves through the choice of shading. The setup consist of a close yellowish punctual light on the up right, and a distant red-ish punctual light on the back left, as well as a dim blue ambient. The objects only differ by the specular exponent, which jumps by a times two factor from one object to the next one, left to right.

One light, Lambert diffuse only.

Two lights, Lambert diffuse only, with variance shadow map.

Two lights, Lambert diffuse only, with albedo.

Two lights, diffuse and Phong specular. Notice the color on the left.

One light, Phong specular only. Notice the discontinuity on the left.

Two lights, diffuse and Blinn-Phong specular.

One light, Blinn-Phong specular only. Notice the absence of discontinuity.

Two lights, diffuse and normalized Phong specular. Notice the highlight intensity.

Two lights, diffuse and normalized Blinn-Phong specular.

Two lights, diffuse and normalized Blinn-Phong specular, Fresnel term with Schlick

Two lights, Heidrich-Seidel anisotropic specular.

Next steps: getting used to the Fresnel version, experimenting with the exponent as a texture lookup, and normalizing the Heidrich-Seibel specular.

Introduction to light shading for real-time rendering

I am finally back in Tokyo after two intense weeks in Europe, during which I did things as various as being a perfect tourist in four capitals (stolen bag experience included) or attending the world biggest demoparty, getting nominated with the rest of my group for some awards, ranking 2nd in a competition and getting slashdotted for that. :)

As previously advertised, I presented at Revision a talk on light shading. A video was recorded for the streaming and has been made available online pretty much immediately, thanks to the work of the Revision team:

Unfortunately, the last minutes are missing. I was basically comparing the Fresnel version with the manually tweaked version, and explaining that while the former might not look perfect yet, it was an out of the box result, while the latter required me to introduce some fudge factor I had to tweak. Regarding references, I couldn’t list them all so I just mentioned the most significant ones (the first part of this talk is strongly inspired by Naty Hoffmann’s course introduction) and referred to here for the rest. At last I mentioned an evaluation sheet for whoever cared to give some feedback.

Performance wise, when seeing the video I feel embarrassed. The flow is far from what I was aiming, some explanations are not crystal clear as I wanted them to be, and you can notice I was confused a couple of times by the surrounding noise (hey, did I mention it’s a party?). But on the other hand various people told me it was a good seminar so even though there is much room for improvement, it’s not that bad of a start I guess.

Anyway, you can download a quick export of the party version of the slides. When I have some time I will try to get a better looking export (without text and images cropped out), and fix a couple of slides.

Talking about light at Revision

Over the last months I have been reading various resources on light shading, and shared the most relevant ones on this blog. Along the way I became more and more thrilled by how light interacts with materials and how we can model it to get more convincing rendering.

I found some insights to be really enlightening and very worth sharing. Therefore as a way of challenging my own understanding of this matter and as an opportunity to practice talk, I decided to speak about real-time lighting during a seminar at Revision.

Revision is a big demoparty that will be held during four days over the Easter weekend in Saarbrücken, Germany. If you are coming (which I recommend) and want to hear about shading, specular and Fresnel, come and see me!

Update: the talk is scheduled for Saturday April 7th, 14h – 15h.

“Introduction to light shading for real-time rendering”


Update: see this post for the material.