Controlling appearance with materials
slabs.wrl

	

#VRML V2.0 utf8
#
#  Slab World
#  slabs.wrl
#        by David R. Nadeau
#
#  This example illustrates use of Appearance and Material nodes to set
#  the main shading color (diffuseColor), glow color (emissiveColor), and
#  transparency level of a shape.
#
#  Seven slabs are created, each using a Box node.  Each slab is shaded
#  a different material:
#
#        Slab       Diffuse     Emissive    Transparency
#        White      white       black       0.0
#        Red        black       red         0.0
#        Green      green       black       0.5
#        Blue       blue        white       0.25
#        Yellow     yellow      black       0.5
#        Cyan       cyan        black       0.0
#        Magenta    red         magenta     0.0
#
#  Some PC browsers may not support transparency.  Others may not support
#  shading using both diffuse and emissive colors.  So, your results may
#  vary.
#
#  Things to experiment with:
#        Try different transparency levels.
#
#        Turn off the headlight on your VRML browser and observe which
#        slabs glow.
#


WorldInfo {
    title "Slab World"
    info [ "Copyright (c) 1996, David R. Nadeau" ]
}

DEF Entry Viewpoint {
    position 0.0 1.66 15.0
    description "Entry View"
}

NavigationInfo {
    type [ "EXAMINE", "ANY" ]
    headlight TRUE
}

#
#  Slabs
#
# White slab (shaded)
Transform {
    translation 0.0 2.0 4.0
    children [
	Shape {
	    appearance Appearance {
		material Material {
		    diffuseColor 1.0 1.0 1.0
		}
	    }
	    geometry DEF Slab Box {
		size 2.0 4.0 0.3
	    }
	}
    ]
}

# Red slab (emissive)
Transform {
    translation 0.0 2.0 0.0
    children [
	Shape {
	    appearance Appearance {
		material Material {
		    diffuseColor  0.0 0.0 0.0
		    emissiveColor 1.0 0.0 0.0
		}
	    }
	    geometry DEF Slab Box {
		size 2.0 4.0 0.3
	    }
	}
    ]
}

# Green slab (shaded + transparent)
Transform {
    translation -3.0 2.0 2.0
    children [
	Shape {
	    appearance Appearance {
		material Material {
		    diffuseColor 0.0 1.0 0.0
		    transparency 0.5
		}
	    }
	    geometry USE Slab
	}
    ]
}

# Blue slab (shaded + emissive + transparent)
Transform {
    translation 4.0 2.0 -2.0
    children [
	Shape {
	    appearance Appearance {
		material Material {
		    diffuseColor 0.2 0.2 0.2
		    emissiveColor 0.0 0.0 0.8
		    transparency 0.25
		}
	    }
	    geometry USE Slab
	}
    ]
}

# Yellow slab (shaded + transparent)
Transform {
    translation 4.5 2.0 3.0
    children [
	# Outer
	Shape {
	    appearance Appearance {
		material Material {
		    diffuseColor 1.0 1.0 0.0
		    transparency 0.5
		}
	    }
	    geometry USE Slab
	}
    ]
}

# Cyan slab (shaded)
Transform {
    translation -3.5 2.0 -5.0
    children [
	Shape {
	    appearance Appearance {
		material Material {
		    diffuseColor 0.0 1.0 1.0
		}
	    }
	    geometry USE Slab
	}
    ]
}

# Magenta slab (shaded + emissive)
Transform {
    translation 2.0 2.0 -6.0
    children [
	Shape {
	    appearance Appearance {
		material Material {
		    diffuseColor 0.5 0.0 0.0
		    emissiveColor 0.5 0.0 0.5
		}
	    }
	    geometry USE Slab
	}
    ]
}