| home | << prev | next >> | contents | 
The contour properties (color, width, etc.) depend on the object
the contour is on and its material. For each material that should
have a contour, one has to specify a contour shader. A
material will not get a contour if it does not have a contour
shader. The colors consist of four components: red, green, and blue
color, and opacity. All four components of the color are normally
between 0 and 1. The width is specified as a percentage of the
minimum of image x resolution and y resolution. For example, if the
image resolution is 
 and a contour
width of 1.0 (percent) is specified, the thickness of the
line becomes 5 pixels. The color, width, etc. can be parameters, or
depend on curvature, distance, color, and illumination.
A material gets a simple contour of constant color and width if it has the contour_shader_simple contour shader. For example, the following specifies red contours that are half a percent wide:
     contour "contour_shader_simple" (
        "color"  1.0 0.0 0.0 1.0,   # solid red
        "width"  0.5                # in % of image resol
     )
As another example of a contour shader, contours of color and width that are linearly interpolated between two values, depending on distance to the camera, are specified with the contour shader contour_shader_depthfade. Two depths, colors, and widths are specified. If a contour point is more distant than far_z, the contour gets color far_color and width far_width. If a point is nearer than near_z, the contour gets color near_color and width near_width. If the depth is in between, the color and width are linearly interpolated. For example, to get contours that are interpolated between two percent wide red at depth -10 and half a percent wide blue at depth -25, specify
     contour "contour_shader_depthfade" (
        "near_z"     -10.0,             # from this depth,
        "near_color"  1.0 0.0 0.0 1.0,  # color (red),
        "near_width"  2.0,              # and width (in %)
        "far_z"      -25.0,             # to this depth,
        "far_color"   0.0 0.0 1.0 1.0,  # color (blue),
        "far_width"   0.5               # and width (in %)
     )
The left figure is a black-and-white illustration of this depthfade contour shader. The right figure is a scene with two materials with different contour type: illumination-dependent contours on the teapot and simple contours on the "floor".


There are many other contour shaders in contour.so, and new ones can be written by the user.
| home | << prev | next >> | contents | 
Copyright © 1986-2006 by mental images GmbH