# UD, A-buffer, surfels

That’s a collection of facts which might be interesting for UD seekers. I’ll just dump it and wait for your reaction.

(from this wiki page) “Loren Carpenter is co-founder and chief scientist of Pixar Animation Studios. He is the co-inventor of the Reyes rendering algorithm. … In 1980 he gave a presentation at the SIGGRAPH conference, in which he showed “Vol Libre”, a 2 minute computer generated movie. This showcased his software for generating and rendering fractally generated landscapes, and was met with a standing ovation, and (as Carpenter had hoped) he was immediately invited to work at Lucasfilm‘s Computer Division (which would be come Pixar).[2] There Carpenter worked on the “genesis effect” scene of Star Trek II: The Wrath of Khan, which featured an entire fractally-landscaped planet.[2]

… Carpenter invented the A-buffer hidden surface determination algorithm.”

Here is a link to the paper The A-buffer, an Antialiased Hidden Surface Method (1984), recommended reading.

_____

(from this wiki page) “Hidden surface determination is a process by which surfaces which should not be visible to the user (for example, because they lie behind opaque objects such as walls) are prevented from being rendered. Despite advances in hardware capability there is still a need for advanced rendering algorithms. The responsibility of a rendering engine is to allow for large world spaces and as the world’s size approaches infinity the engine should not slow down but remain at constant speed. Optimising this process relies on being able to ensure the diversion of as few resources as possible towards the rendering of surfaces that will not end up being rendered to the user.

There are many techniques for hidden surface determination. They are fundamentally an exercise in sorting, and usually vary in the order in which the sort is performed and how the problem is subdivided. Sorting large quantities of graphics primitives is usually done by divide and conquer.”

_____

Surfels: Surface Elements as Rendering Primitives
H. Pfister, M. Zwicker, J. van Baar, M. Gross, SIGGRAPH 2000

A Survey and Classification of Real Time Rendering Methods
M. Zwicker, M. Gross, H. Pfister
Technical Report No. 332, Computer Science Department, ETH Zürich, 1999.

From the first mentioned article: “In this paper we propose a new method of rendering objects with rich shapes and textures at interactive frame rates. Our rendering architecture is based on simple surface elements (surfels) as rendering primitives. Surfels are point samples of a graphics model. In a preprocessing step, we sample the surfaces of complex geometric models along three orthographic views. At the same time, we perform computation-intensive calculations such as texture, bump, or displacement mapping. By moving rasterization and texturing from the core rendering pipeline to the preprocessing step, we dramatically reduce the rendering cost.”

______

Does it look a bit familiar?

## 3 thoughts on “UD, A-buffer, surfels”

1. The papers use a lot of terms that I do not know and likely have changed in the past few years. Below is my attempt at interpreting the papers.

Part of the paper “Surfels: Surface Elements as Rendering Primitives” describes how geometry is converted into octree format (well, they call it a LDC-tree and hint that it is different than an octree). They shortly describe surfels to be voxels, with normal, tangent and maybe material/lighting or visibility information (if I understand correctly). They use some ‘block culling’ method, which requires the viewpoint to be outside the convex hull of the rendered object. They also have a ‘block warping’ method, which I believe is similar to splatting. Therefore they need to apply hole-filling, which seems to be mentioned in the paper as well.

They refer to the thesis and equally named article “Point Sample Rendering” (thesis: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.89.6467&rep=rep1&type=pdf; article: http://graphics.ethz.ch/Downloads/Seminar_Arbeiten/1999/adesboeufs.pdf). These mostly seem to explain the same concepts (block warping and block culling), but also include a description of a hierarchical z-buffer (a depth buffer quadtree, I guess).

The A-buffer algorithm seems to be an anti-aliasing method that uses some sort of z-buffer and detects edges. The z-buffer is refined at the edges, and super sampling is performed there, to obtain anti-aliasing effects. (At least, this is what I think the A-buffer does.)

1. Thanks for the links, they add information, however, what’s that: ” use a lot of terms that I do not know and likely have changed in the past few years”? There’s google, bibliographies, etc, don’t despair. It happens all the time that some ideas are in front of the available technology of the moment. I was interested to see if anybody notices the technique of using three orthographic views.

2. The problem with the terms is that they cannot be found through google as the terms are no longer mainstream or even used nowadays. Furthermore tracing the bibliographies takes time. Still I think that I managed to get some basic understanding of the most important terms.

The use of three orthographic views is mainly for converting polygon, bump map and texture geometry into a volumetric picture, stored as quadtree and with surface normal information. The orthographic views do not seem part of the rendering process.