Comic Book Rendering

Final Project - CS 7490

Rendering in Comic Book Style


Marcia Riley

Silhouettes --- Shadows --- Lines in Shadows --- Solid Streak Shading --- Other examples

The goal of this non-photorealistic rendering project is to emulate a selected comic book style in rendered images. The style comes from Image Comics, and among other things, it is characterized by heavy black silhouetting, line drawing to emphasize shape or shadow, solid streaks of black to emphasize curvature, and step-wise color changes in shading. Given these aspects, the task is to incorporate some or all of them into a renderer, resulting in images with a comic-book feel.

A public domain raytracer named rayshade was used as the starting point. The tasks are:

  • Adding dark silhouettes to an image
  • Identifying and rendering shadows with lines
  • Adding lines or solid streaks for style or emphasis in selected regions
  • Using changes in color in a step-wise rather than smooth fashion

    To accomplish the silhouetting, high-contrast pixels were detected and rendered as outlines. To get a rough look, supersampling was turned off. Here are some examples of silhouetting. The original smooth ray-traced image is shown first, and following this is the stylized image.

    Next, shadows were tracked and identified for later use in rendering lines. Here is an example showing the original image, then the imaged without shadow identification, and finally the image marking a few shadows, shown in red, for later processing. Note that not all the shadows were selected.

    These shadows were found in the traditional raytracing way - by following rays from the eye relative to the light sources as they hit objects, spawn more rays, and track occlusion from light sources.

    The next task was to add some lines to the shadows. This part is experimental, using more of a try-and-see approach then a hard theory. Lines were drawn in shadow areas, and the slope of the lines varies from an arbitrary value (as a simple test) to incorporating information about the average gradient over the shadow region. The gradient information was taken from pixel intensities, and so may not contain much useful information. If the project were to continue, 3D curvature would most likely be a more useful metric than changes in pixel intensity in shadow regions.

    Here are some examples of lines drawn in shadow regions.

    Next, some blocks of black were added to emphasize curvature. This is a simply a variation on the earlier line-drawing, with very closely-spaced lines. In the images below, we see the progression of the rabbit from a smooth raytraced image, to silhouettes, then lines added in shaded areas, and finally more solid streaks added to emphasize shading and curvature.

    Here are some other results from the project:

    Original image (left) Stylized image (right)