Point Based Approximate Color Bleeding

Katelyn Hicks
CSC 572 - Graduate Graphics
Dr. Zoe" Wood
Spring 2015

Bunny Bunny


What is a surfel cloud?

A surfel cloud is a different way to represent a surface, similar to a point cloud. Each surfel is a disk that has a position, color, normal, and radius. Surfel clouds are instead of a polygonal mesh with surfels that overlap to create a mesh.

Surfel clouds are used in point-based approximate color bleeding to represent the direct illumination of the scene. This cloud is queried for the N closest surfels to a given point and used for approximating the color that will bleed on to the given point.


200,000 surfels in input cloud.

Creating surfel point cloud

A preprocessing step is required before rendering with point-based approximate color bleeding. A surfel cloud must be created for the given scene, creating a cloud of these discs that represent the direct illumination (including shadows) of surfaces in the scene.

This surfel cloud was created through ray tracing the scene prior to rendering the scene. The surfel data is saved to be queried by each point that will be rendered. Due to time constraints, my surfel cloud was saved in arrays, but future work for this project includes saving the cloud in an octree. This data representation will prove to be more efficient since the data is organized according to the position of the surfel and we are going to be querying for the N closest surfels to a point.

The number of surfels greatly affects how much color is bled onto the surface points being rendered because it determines how much surrounding color information there is for a given point.


Calculating color bleeding

For each point that will be rendered, the surrounding surfaces need to be considered to accurately render the color that is bled to the given point. We use the input of the surfel cloud in order to find the N closest surfels to the current intersection point on the surface. In the algorithm, the chosen surfels will be used to render a cube map of color that surrounds the point, similar to an environment map. This will be used to determine the color that bleeds on to the point based on the surface's normal.

In my implementation, it is a very approximated color due to the fact that it is calculated that surfels within a radius distance from the intersection will contribute to the color bleeding for that point. This will show that for a given surface point where there are a lot of surfels, the color bleeding will be much stronger than a point in a region of space that has very little surrounding surfels.

Depending on the radius used to find the closest surfels, more or less color will be bled onto the current point. This can be seen in the images below which use different values for the radius when looking up the color bled.

Test2Maya Test2Maya
Test2Maya Test2Maya

Top Left: bleed radius 0.5
Top Right: bleed radius 1.5
Bottom Left: bleed radius 2.5
Bottom Right: bleed radius 3.5

Future Work