Category Archives: Coding

Irradiance Caching – Part 1

I finally finished writing the next article about the lightmap rendering tech that I did for The Witness. This one is about irradiance caching, and in particular I describe how to estimate irradiance gradients when the irradiance is sampled using a hemicube distribution. I’m afraid the article is a bit too specialized and I suspect [...]

Also posted in Graphics | Leave a comment

Software Patents are Programmer’s Responsibility

The other day I read this in Dark Shikari’s blog (one of the developers of x264): Most importantly, stop harassing the guy whose name is on the patent (Lars): he’s just a programmer, not the management or lawyers responsible for filing the patent. This is stupid and unnecessary. I’ve removed the original post because of [...]

Also posted in Personal | 13 Comments

Matt’s Gregory ACC Tessellation Render

A while ago Matt Davidson contacted me to discuss a few issues with the Gregory ACC source code that we released. Turns out there were some issues in the code that determines whether two patches have the same neighbor configuration and therefore can share the stencils. The code that compares the configurations is not very [...]

Also posted in Graphics | 2 Comments

Hemicube Rendering and Integration

I just posted another article about the global illumination solution that I implemented for The Witness, the second one in the series: The Witness – Hemicube Rendering and Integration, September 29, 2010 The Witness – Texture Parameterization, March 30, 2010

Also posted in Graphics | Tagged | Comments closed

Watertight Tessellation: precise and fma

One important feature of Direct3D 11 and OpenGL 4, which I have seen very little written about, is the addition of a new precise qualifier. It’s no surprise there’s some confusion about the purpose and motivation for this new keyword. The Direct3D documentation is vague about it: precise affects all results that contribute to the [...]

Also posted in Graphics | 1 Comment

The Witness

Jon has recently started a development blog about The Witness, the game that we have been working on during the last few months. So far there are a few posts about the technology and the aesthetics of the game and I’ll soon write a bit more about the global illumination implementation in some more detail. [...]

Also posted in Personal | Leave a comment

OpenNL 3.0

GPGPU.org takes note that OpenNL 3.0 has just been released and that this new version comes with support for CUDA. That’s certainly interesting, but for me the biggest news is that the library is now under the BSD license and thus can be used in a wider range of projects. I guess it’s time to [...]

Posted in Coding | Leave a comment

Continuity Mapping for Multi-Chart Textures

Naty Hoffman references a paper from Siggraph Asia titled Continuity Mapping for Multi-Chart Textures. The paper provides a solution to a problem that I’ve talked before, that multi-chart parameterizations introduce seams over meshes, and that these seams can produce severe artifacts in some use cases such as displacement mapping. While the solution that I propose [...]

Also posted in Graphics | Leave a comment

Efficient Substitutes for Subdivision Surfaces

Our siggraph course has been accepted and is finally up on the siggraph website! Here’s the brief description of the course: An overview of the most recent theoretical results and their implementations on the current and next-generation GPUs, and a demonstration of applications in the gaming and movie industry. We will bring together participants with [...]

Also posted in Graphics | Leave a comment

NVTT quote

I love this quote from Ivan-Assen Ivanov about the NVIDIA Texture Tools: We switched to CUDA nvcompress in our pipeline and totally forgot about it. Until yesterday, when an artist had to work on a 7600 for a while, and raised hell about how slow the export has become. :-)

Also posted in NVTT | Leave a comment