DW Artifice, Inc.


Radiance Materials Notes


Overview

In a simple shade and shadows rendering environment like that of the DesignWorkshop® modeling window, the visual properties of an object consist merely of the color value used for shading and shadow casting.

In the more complete rendering environment of the DesignWorkshop Lights and Textures window, the visual properties of an object also start with color, but go on to include an expanded set of optical characteristics, based on a material type and an optional texture map. This provides for renderings which can be created very quickly and easily, and which can be very realistic looking, although they are generally not entirely accurate in the finer details of lighting effects.

In a full lighting simulation such as provided by Radiance, the optical properties are taken fully into account for both direct and diffusely reflected light, providing for the ultimate in realism and accuracy of even subtle and complex lighting conditions. The challenge to using this ultimate technology is working with a more complex project definition, including complex material types, and understanding the real physical properties of materials that underlay each material type.

Material Types

Radiance materials come in several basic predefined types, and applying and extending these types is a large part of the art of creating a realistic architectural simulation. Each material type uses a specific set of parameters. The most important types and their parameters are:

Light Types —

light

modifier light id
0
0
3 redRadiance greenRadiance blueRadiance

# red, green, and blue are in physical units of radiance, watts/steradian/square meter.

spotlight

modifier spotlight id
0
0
7 redRadiance greenRadiance blueRadiance angle xDirection yDirection zDirection

# angle is full cone angle of spotlight. Direction is output direction, in three components.

glow

modifier glow id
0
0
4 redRadiance greenRadiance blueRadiance maximumRadius

Non-Light Types —

plastic - used for most everyday non-metallic materials

modifier plastic id
0
0
5 red green blue specularity roughness

# red, green, blue are reflectance - values greater than 0.9 are not usually realistic.
# Specularity greater than 0.1 is usually not realistic.
# Roughness varies from 0=perfectly smooth, to 0.5=perfectly rough.
# Roughness greater than 0.4 (?) is usually not realistic.

metal

modifier metal id
0
0
5 red green blue specularity roughness

# red, green, blue are reflectance - values greater than 0.9 are not usually realistic.
# Specularity greater than 0.9 is typical.
# Roughness varies from 0=perfectly smooth, to 0.5=perfectly rough.
# Roughness greater than 0.2 is usually not realistic.

glass

modifier glass id
0
0
3 redTransmission greenTransmission blueTransmission

# A transmission value of 0.96 is typical, for standard 88% transmissivity glass.

trans

modifier trans id
0
0
3 redTransmission greenTransmission blueTransmission specularity roughness transmissivity transmittedSpecular

# Used for translucent materials. Transmissivity is the fraction of light that gets through the material. transmittedSpecular is is what gets through without being diffusely scattered.

mirror

modifier mirror id
0
0
3 redReflectance greenReflectance blueReflectance

# Other options are available in the mirror material for advanced use.

Other material types, used more rarely, include illum, dielectric, interface, and antimatter. See the main Radiance site materials overview for details.

Pattern and Texture

Patterns and textures are modifiers for the basic Radiance materials. By listing a modifier Radiance patterns vary "2D" optical characteristics of an object material across the object surface. Textures vary the apparent local shape of a surface by perturbing the surface normal across the object surface, which causes shading variations perceived as bumps, waves, etc. Both patterns and textures can be either based on bitmap image data, or on mathematical procedures. Procedure files for both patterns and textures are indentified by the extension ".cal", and the bitmaps for image-based patterns are indentified by the extension ".pic". (No bitmap data files for texture definition are actually supplied with Radiance.) The bitmaps and math functions live outside your Radiance scene description file in auxilary files. You make reference to these external auxilary files in the scene description to establish complex material definitions. In fact, we will mostly use the set of auxilary files that come with Radiance, which can be found on a standard Radiance configuration at /usr/local/lib/ray/. (If your user account is properly configured, files in this directory will be referenced automatically. Otherwise, use their full path name when referencing the auxilary files.)

Patterns and texture come in some pre-defined types, just like the materials they modify. These types are listed below.

Pattern and Texture

Patterns and textures are modifiers for the basic Radiance materials. By listing a modifier Radiance patterns vary "2D" optical characteristics of an object material across the object surface. Textures vary the apparent local shape of a surface by pertur bing the surface normal across the object surface, which causes shading variations perceived as bumps, waves, etc. Both patterns and textures can be either based on bitmap image data, or on mathematical procedures. Procedure files for both patterns and t extures are indentified by the extension ".cal", and the bitmaps for image-based patterns are indentified by the extension ".pic". (No bitmap data files for texture definition are actually supplied with Radiance.) The bitmaps and math functions live outside your Radiance scene description file in auxilary files. You make reference to these external auxilary files in the scene description to establish complex material definitions. In fact, we will mostly use the set of auxilary files that come with Radia nce, which can be found on Darkwing at /usr/local/lib/ray. Use that full path name when referencing the auxilary files so they don't have to be copied over and over again.

Patterns and texture come in some pre-defined types, just like the materials they modify. They are listed below.

Patterns

To apply a pattern to an object, the pattern is defined, and then used as a modifier to the material definition for the object. Procedural patterns which vary material color have the type "colorfunc", while procedural patterns which vary reflectance have the type "brightfunc". The number and purpose of parameters varies among procedural patterns and textures (hence the notation "4+" and "nÉAn").

colorfunc

modifier colorfunc id
4+ red green blue functionFile transform
0
n A1 A2 A3... An

brightfunc
modifier brightfunc id
2+ reflectance functionFile transform
0
n A1 A2 A3... An

colorpict
modifier brightfunc id
7+ redFunction greenFunction blueFunction picFile functionFile u_function v_function transform
0
n A1 A2 A3... An

To build a bitmap woodgrain pattern into a material, you first cite the woodgrain pattern. This code chunk is not modified by anything else, so the first field will say "void".:

void colorpict wood_floor_pattern
9 red green blue /usr/local/lib/ray/oakfloor.pic /usr/local/lib/ray/picture.cal tile_u tile_v -s 1.1667
0
1 .578313253

(Notes: "-s" preceeds the size of seven slats in the image file, measured in feet (1.1667=14"). .578313253 is the proportion of the short side of the image patch to the long side, measured in pixels. If you just use the right number, you may not need to know where it comes from.)
Then, cite the wood_floor material so it is modified by the pattern:

wood_floor_pattern plastic wood_floor
0
0
5 .2 .2 .2 .02 .05

Then, you can apply the wood_floor material to an object by making wood_floor the modifier (first field) of the object.

By substituting a different ".pic" file from /usr/local/lib/ray and by adjusting the scale carefully, this setup can be used to apply a wide variety of patterns.

Textures

To apply a pattern to an object, the pattern is defined, and then used as a modifier to the material definition for the object. Procedural patterns which vary material color have the type "colorfunc", while procedural patterns which vary reflectance have the type "brightfunc".

texfunc modifier texfunc id
4+ xpertubation ypertubation zpertubation functionFile transform
0
n A1 A2 A3... An


Some Example Materials

D.I.L. Radiance Materials Examples

Radiance User Notes

Simple Materials

# plain concrete color void plastic concrete
0
0
5 .3 .3 .3 0 0

# plain wood floor color
void plastic wood_floor
0
0
5 .3 .15 .05 .04 0.0

# light wood color
void plastic light_wood
0
0
5 .5 .3 .2 0 0

# shingles color
void plastic shingles
0
0
5 .3 .2 .1 0 0

# glossy white paint
void plastic white_enamel_paint
0
0
5 .5 .5 .5 .02 .05

# flat gray paint
void plastic gray_paint
0
0
5 .5 .5 .5 0 0

# brass metal
void metal brass
0
0
5 .68 .27 .002 .95 0

# chrome metal
void metal chrome
0
0
5 .8 .8 .8 .9 0

# simple glass
void glass glass
0
0
3 .96 .96 .96

# a basic light source
void light light
0
0
3 100 100 100

Compound Materials

# detailed wood flooring
# first, vary the reflectance with a noise function
# "-s 2" is the spacing (2 feet) and ".15" is the degree of dirtyness (15%)
void brightfunc dusty
4 dirt /usr/local/lib/ray/dirt.cal -s 2
0
1 .15

# then, set up tiling with a floor-board bitmap
dusty colorpict wood_floor_map
9 red green blue /usr/local/lib/ray/oakfloor.pic . frac(U) frac(V) -s 1.1667
0
1 .578313253

# finally, apply this to the plastic itself
wood_floor_map plastic wood_floor
0
0
5 .2 .2 .2 .04 0

#then use "wood_floor" as the material to modify your objects


# corrugated roofing compound material definition, rev--950509.kmm
#
# first, vary the reflectance with a noise function
# "-s 2" is the spacing (2 feet) and ".25" is the degree of dirtyness (25%)
#
void brightfunc dusty
4 dirt /usr/local/lib/ray/dirt.cal -s 2
0
1 .25
#
# then, set up the sine-wave texture function:
#
# One parameter, A1 = number of cycles per unit distance
# [A1 controls size, yes, but apparently not cycles/unit] Here the size = 0.5.
# Note the non-standard order of xcor, zcor, ycor. This order applies the wave
# to the top and south faces, but not to the west face of a block.
#
dusty texfunc corrugated_south
4 xcor zcor ycor /usr/local/lib/ray/corrug.cal
0
1 0.5
#
# finally, apply this to the metal itself
#
corrugated_south metal corrugated_roof_south
0
0
5 .5 .5 .5 .3 .2
# then use "corrugated_roof_south" as the material to modify your objects


More Information on Procedural Materials...

More Information on procedural material modifiers can be found on any other properly set-up Radiance host, in the materials directory. The standard location for this directory is:

/usr/local/lib/ray/

To go there while logged in with Telnet, use the "cd" command"

% cd /usr/local/lib/ray/ [return]

To list the files in the directory, use the "ls" command:

% ls [return]

Then to view a ".cal" procedural pattern or texture, use the "more" command:

% more brick.cal [return]


Do you have comments, questions, or suggestions? Send us feedback by e-mail.


Artifice Foyer | Radiance | Free Software | Product Ordering | Artifice Gallery | Index
© 1995-97 Kevin Matthews, All Rights Reserved. This document is provided for on-line viewing only.

http://www.artifice.com/radiance/rad_materials.html
Posted 1995 KMM, rev. 97.07.01