Render pipeline analysis

Version: $Id: renderanalysis.html,v 1.3 2000/07/27 15:49:24 nzc Exp $

I compare the old and new renderpipe here. (Comments & flak to [email protected])

Oversampling

An unambitious, un-antialiased scene with two boxes. One is marked as a transparent material, one is not.

Old renderpipe, no oversampling.

When oversampling with the old renderer, the intersection lines between the boxes aren't properly antialiased:

Old renderpipe, 16 times oversampling.

In the new renderer, this is fixed:

New renderpipe, 16 times oversampling.

Integrating subpixels

The new renderpipe does a straightforward integration. For n samples s_i: s = sum(s_i)/n. We would expect that oversampled pictures only differ from the non-oversampled versions in pixels where the oversampling leads to multiple faces being rendered. The difference of the two pictures should be zero everywhere else. (The pictures have been processed by the Gimp.) The halos have been integrated in the z-buffering, so they are placed at their proper z-location.

Old renderpipe, no oversampling.

Old renderpipe, osa 16.

The difference (with extremely exaggerated contract and brightness).

As the difference shows, there is a considerable difference in brightness. This happens in the lensflare. At this moment, the new render pipe does not do lensflare.

New renderpipe, no oversampling.

New renderpipe, osa 16.

The difference (with extremely exaggerated contract and brightness).

In the new pipeline, no oversampling is treated as if it were osa 1. This causes small shifts in the position at which the pixels are rendered. This is something I will examine in more detail later on.

The spothalos are only visible in places where other objects get rendered. In the current implementation I leave them out completely. I am still examining how to incorporate them nicely into the new render pipeline. Another issue is the gamma correction. Currently, there is no gamma correction.