ThreeDimensional Graphics Directives

In three dimensions, just as in two dimensions, you can give various graphics directives to specify how the different elements in a graphics object should be rendered.

All the graphics directives for two dimensions also work in three dimensions. There are however some additional directives in three dimensions.

Just as in two dimensions, you can use the directives PointSize, Thickness, and Dashing to tell the Wolfram System how to render Point and Line elements. Note that in three dimensions, the lengths that appear in these directives are measured as fractions of the total width of the display area for your plot.

This generates a list of 20 random points in three dimensions.
In[1]:=
Click for copyable input
This displays the points, with each one being a circle whose diameter is 5% of the display area width.
In[2]:=
Click for copyable input
Out[2]=

As in two dimensions, you can use AbsolutePointSize, AbsoluteThickness, and AbsoluteDashing if you want to measure length in absolute units.

This generates a line through 10 random points in three dimensions.
In[3]:=
Click for copyable input
This shows the line dashed, with a thickness of two printer's points.
In[4]:=
Click for copyable input
Out[4]=

For Point and Line objects, the color specification directives also work the same in three dimensions as in two dimensions. For Polygon objects, however, they can work differently.

In two dimensions, polygons are always assumed to have an intrinsic color, specified directly by graphics directives such as RGBColor and Opacity. In three dimensions, however, the Wolfram System generates colors for polygons using a more physical approach based on simulated illumination. Polygons continue to have an intrinsic color defined by color directives, but the final color observed when rendering the graphic may be different based upon the values of the lights shining on the polygon. Polygons are intrinsically white by default.

Lighting->Automaticuse default light placements and values
Lighting->Nonedisable all lights
Lighting->"Neutral"light using only white light sources

Some schemes for coloring polygons in three dimensions.

This draws an icosahedron with default lighting. The intrinsic color value of the polygons is white.
In[5]:=
Click for copyable input
Out[5]=
This draws the icosahedron using the same lighting parameters, but defines the intrinsic color value of the polygons to be gray.
In[6]:=
Click for copyable input
Out[6]=
The intrinsic color value of the polygons becomes more obvious when using the lighting scheme.
In[7]:=
Click for copyable input
Out[7]=
This applies the gray color only to the line, which is not affected by the lights.
In[8]:=
Click for copyable input
Out[8]=
As with two-dimensional directives, the color directive can be scoped to the line by using a sublist.
In[9]:=
Click for copyable input
Out[9]=
EdgeForm[]draw no lines at the edges of polygons
EdgeForm[g]use the graphics directives g to determine how to draw lines at the edges of polygons

Giving graphics directives for all the edges of polygons.

When you render a threedimensional graphics object in the Wolfram System, there are two kinds of lines that can appear. The first kind is lines from explicit Line primitives that you included in the graphics object. The second kind is lines that were generated as the edges of polygons.

You can tell the Wolfram System how to render all lines of the second kind by giving a list of graphics directives inside EdgeForm.

This renders a dodecahedron with its edges shown as thick gray lines.
In[10]:=
Click for copyable input
Out[10]=
FaceForm[gfront,gback]use gfront graphics directives for the front face of each polygon, and gback for the back

Rendering the fronts and backs of polygons differently.

An important aspect of polygons in three dimensions is that they have both front and back faces. The Wolfram System uses the following convention to define the "front face" of a polygon: if you look at a polygon from the front, then the corners of the polygon will appear counterclockwise, when taken in the order that you specified them.

This makes the front (outside) face of each polygon mostly transparent, and the back (inside) face fully opaque.
In[11]:=
Click for copyable input
Out[11]=