Crystal Palace Form•Z model and Radiance
rendering documentation
Table of Contents
0. Introduction |
1. Scene Geometry |
|
 |
1.1. Form-Z Model
|
|
 |
1.2. File Conversion
|
2. Surface Materials |
3. Light Simulation |
4. Rendering Group I: Geometry |
|
 |
4.1. Symbols
|
|
 |
4.1.1. File name conventions for symbols
|
|
 |
4.1.2. Rendering
|
|
 |
4.1.3. Shell scripts to view different sides of symbol
|
|
 |
4.1.4. To rend one symbol
|
|
 |
4.1.5. To render multiple symbols
|
|
 |
4.1.6. Non-symbols
|
|
 |
4.1.7. Notes for non-symbols
|
|
 |
4.1.8. File name conventions for non-symbols
|
5. Rendering Group II: other parts of Crystal Palace which cannot be exported from Form-Z models |
|
 |
5.1. Canvas
|
|
 |
5.2. Floor
|
|
 |
5.2.1. Instance
|
|
 |
5.3. Trees
|
|
 |
5.3.1. One tree geometry
|
|
 |
5.3.2. Material definition
|
|
 |
5.3.3. Final scene description
|
6. Crystal Palace Complete Model |
7. More Geometry Generated by Radiance |
|
 |
7.1. Complete Map of Gallery Hallway and Stair Railings
|
|
 |
7.2. Gallery Second Floor Railings
|
|
 |
7.2.1. Gallery Hallway Railings
|
|
 |
7.2.1.1. Symbols and instances
|
|
 |
7.2.1.2. Special Cases
|
|
 |
7.2.2. Second Floor Stair Railings
|
|
 |
7.2.2.1. Symbols and Instances
|
|
 |
7.2.2.2. Complete Second Floor Stair Railings
|
|
 |
7.2.3. Complete Second Floor Railings
|
|
 |
7.3. Stairs
|
|
 |
7.3.1. Complete One Piece of Stairs
|
|
 |
7.3.1.1. Landing Floor Rail and Posts
|
|
 |
7.3.1.2. Symbols and Instances
|
|
 |
7.3.1.3. Railings Along the Stair Steps
|
|
 |
7.3.2. Complete Stair Railings
|
|
 |
7.4. New Gallery Geometry
|
|
 |
7.4.1. Old Radiance Geometry to be removed
|
|
 |
7.4.2. New Radiance Geometry to be added for Gallery
|
8. Complete Radiance Model for Crystal Palace |
|
 |
8.1. Crystal Palace Scene Geometries
|
|
 |
8.1.1. West Section
|
|
 |
8.1.2. Center Section
|
|
 |
8.1.3. East Section
|
|
 |
8.2. Symbol to Instance Conversion
|
|
 |
8.2.1. One Example
|
|
 |
8.2.2. Complete List of Conversion for Rails
|
|
 |
8.3. Usage
|
9. Images of Crystal Palace |
|
 |
9.1. Center Section
|
|
 |
9.2. West Section
|
|
 |
9.3. East Section
|
Appendix A. Canvas |
Appendix B. Floor Covering |
|
 |
Appendix B-1. First Floor
|
|
 |
Appendix B-2. Second Floor
|
|
 |
Appendix B-3. Landing Floor
|
0. Introduction
Radiance is a lighting simulation engine that calculates light level and renders images. Rendering is the process of taking
a description of three-dimensional geometry and making a two-dimensional image from a specific point of view. The input required
for this simulation is a description of the three-dimensional surface’s geometry and material, and the light sources in a
scene. Rendering an image requires additional specifications for the desired viewpoint, direction, and angles. In the following
sections, we will discuss in detail the model and rendering of the Crystal Palace with Radiance software.
1. Scene Geometry
-
1.1. Form-Z Model
Most parts of the Crystal Palace model were designed using Form-Z software, a three-dimensional form synthesizer. These Form-Z
models can be exported and saved as .obj files. The following exporting options were used.
| Platform: |
MS-DOS |
| Group Method: |
By Color |
| Export Method: |
|
| Solid/Surfaces: |
Object |
| Parametric Objects: |
Preserve Controls |
| Export Visible Layers Only: |
checked |
| Transformation: |
| Coordinate Systems: |
Normals point outward: checked |
| Scales: |
X: 1.000 Y: 1.000 Z: 1.000 |
|
| Decomposition:1 |
| Subdivide Concave Faces: |
checked |
| Triangulate Faces: |
checked |
| Triangulate Options: |
Triangulate All faces: checked |
|
| Attributes: |
| Preserve Face Color: |
checked |
|
-
1.2. File Conversion
To convert an object .obj file to a Radiance scene description .rad file, use the following command
obj2rad *.obj >*.rad
2. Surface Materials
Although the geometry model is very important, representation of materials is equally important to a rendering algorithm,
since it determines how light interacts with the geometry.
| master.mat: |
Defines the property of materials |
3. Light Simulation
A scene will not be visible until a light source and a background are defined.
| Specifies the luminaries, time, date and sky conditions. |
| Specifies the outside conditions. |
4. Rendering Group I: Geometry
The actual renderings of Crystal Palace are divided into two groups. In the first group, the geometry can be directly exported
from Form-Z models, whereas in the second group, the geometry data files are generated using Radiance operations. In the following
sections, we will discuss their rendering in detail.
Most parts of the Crystal Palace geometry can be directly exported from the current Form-Z models, these include ones made
from Form-Z symbols and ones from non-symbols. We will discuss them in the following sections.
-
4.1. Symbols
The Crystal Palace is modular and therefore reuses some elements many times. To simplify rendering these elements, symbols
were created in a Form-Z library for parts used in multiple locations. The following table shows the symbols exported from
Form-Z models, their corresponding Radiance scene description file names, and whether or not triangulation was necessary on
the symbols when exported from Form-Z models.
Most of the symbols were created in only one quality setting. A few symbols were built in multiple quality settings, indicated
with the extension of '_ld,' '_md,' or '_hd' on the symbol name. Notice that those with only one detail setting, even though
they were saved in the file CP_low_detail.zlb, were already close to the original building design with no need to add more
details. For symbols built in multiple detail settings, the high quality versions were closest to the original building design,
and the lower detail versions were created to reduce the size of exporting geometry. For the rendering of the Crystal Palace,
medium detail versions were used if more than one version was available.
| Quality Setting |
| LD: |
Low Detail |
| MD: |
Medium Detail |
| HD: |
High Detail |
| LD Symbol Name (22) |
lib/(*.rad) |
Triangulate? |
| 48truss_ld |
48truss_ld_tri.rad |
Y |
| 72truss_ld |
72truss_ld_tri.rad |
Y |
| canvas |
canvas_tri.rad |
Y |
| col2.3_ld |
col2.3_ld.rad |
N |
| col4.5_ld |
col4.5_ld.rad |
N |
| col6-10_ld |
col6-10_ld.rad |
N |
| door |
door_tri.rad |
Y |
| doorpanel |
doorpanel_tri.rad |
Y |
| flag |
flag.rad |
N |
| floorboard1 |
floorboard1.rad |
N |
| floorboard2 |
floorboard2.rad |
N |
| irongirder_ld |
irongirder_ld_tri.rad |
Y |
| roofframe_ld |
roofframe_ld.rad |
N |
| roofglass_ld |
roofglass_ld.rad |
N |
| walledge |
walledge_tri.rad |
Y |
| walledgesingle |
walledgesingle_tri.rad |
Y |
| wallpanel |
wallpanel_tri.rad |
Y |
| winpanel |
winpanel_tri.rad |
Y |
| winpanelup |
winpanelup_tri.rad |
Y |
| wood_ld |
wood_ld_tri.rad |
Y |
| woodcol |
woodcol.rad |
N |
| woodcolup |
woodcolup.rad |
N |
| MD Symbol Name (4) |
lib/(*.rad) |
Triangulate? |
| col2.3_md |
col2.3_md.rad |
N |
| col4.5_md |
col4.5_md.rad |
N |
| col6-10_md |
col6-10_md.rad |
N |
| xbraceSmall_md |
xbraceSmall_md.rad |
N |
| HD Symbol Name (4) |
lib/(*.rad) |
Triangulate? |
| col2.3_hd |
col2.3_hd.rad |
N |
| col4.5_hd |
col4.5_hd.rad |
N |
| col6-10_hd |
col6-10_hd.rad |
N |
| irongirder_hd |
irongirder_hd_tri.rad |
Y |
All symbols were rendered at four different views: front, right, back, and top. To avoid the confusion caused by light source,
the geometry of the objects were rotated by using the Radiance operation ‘xform’ (as described below), instead of changing
the light source and viewing positions. Cameras are set facing to the south with the light source coming from the southwest.
The time was set to be 2:30pm on May 1.
-
4.1.1. File name conventions for symbols
| Directory: |
view_symbol_ld/ (low detail symbols)
FRONT/
RIGHT/
BACK/
TOP/
view_symbol_md_hd (medium detail and high detail symbols)
FRONT/
RIGHT/
BACK/
TOP/
|
| Radiance input file: |
master_{symbolname}_viewlabel.rif |
| Octree file: |
build_{symbolname}(_tri)_viewlabel.oct |
| Image file: |
pics/build_{symbolname}(_tri)_viewlabel_vw#.pic |
| Smaller image file to fit screen: |
pics/smallpics/build_{symbolname}(_tri)_viewlabel_vw#_small.pic |
| PostScript file of the smaller image: |
pics/smallpics/ps/build_{symbolname}(_tri)_viewlabel_vw#_small.ps |
| Progress Report: |
REPORT/progress_{symbolname}(_tri)_viewlabel.txt |
| (Optional standard output: REPORT/out_{symbolname}_viewlabel.txt) |
Note: ‘(_tri)’ is added only if the triangulation was done on the symbol.
-
4.1.2. Rendering
‘Rad’ is an executive program that reads the given rfile (.rif file) and makes appropriate calls to oconv and pfilt to render
a specific scene. Variables in the rfile give input files and qualitative information about the rendering, so that ‘rad’ can
intelligently set parameter values and control the simulation.
Command to render image:
nice rad master_{symbolname}(_tri)_viewlabel.rif &
OR
nice rad master_{symbolname}(_tri)_viewlabel.rif >&out_{symbolname}_viewlabel.txt&
Note that (_tri) is needed only if the triangulation was done on the symbol.
| View file: |
{symbolname}_vw#.vf
(viewlabel can be: front, right, back, top;
vw# can be: vw1 (front), vw2 (right), vw3 (back), vw4 (top).)
|
To view different sides of the symbol:
| View of object |
Xform |
Radiance Description File |
View File |
| Front |
none |
{symbolname}(_tri)_front.rad |
{symbolname}_vw1.vf |
| Right |
rz -90 |
{symbolname}(_tri)_right.rad |
{symbolname}_vw2.vf |
| Back |
rz 180 |
{symbolname}(_tri)_back.rad |
{symbolname}_vw3.vf |
| Top |
rx 90 |
{symbolname}(_tri)_top.rad |
{symbolname}_vw4.vf |
Command:
cd ~/view_symbol_ld/FRONT/
nice rad master_{symbolname}_front.rif >&REPORT/out_{symbolname}_front_vw1.txt
cd ~/view_symbol_ld/RIGHT/
nice rad master_{symbolname}_right.rif >&REPORT/out_{symbolname}_right_vw2.txt
cd ~/view_symbol_ld/BACK/
nice rad master_{symbolname}_back.rif >&REPORT/out_{symbolname}_back_vw3.txt
cd ~/view_symbol_ld/TOP/
nice rad master_{symbolname}_top.rif >&REPORT/out_{symbolname}_top_vw4.txt
Output images:
| Front view: |
build_{symbolname}(_tri)_front_vw1.pic |
| Right view: |
build_{symbolname}(_tri)_right_vw2.pic |
| Back view: |
build_{symbolname}(_tri)_back_vw3.pic |
| Top view: |
build_{symbolname}(_tri)_top_vw4.pic |
-
4.1.3. Shell scripts to view different sides of symbol
As mentioned earlier, to render an image, information about viewpoint, direction, and angles is desired. This information
is stored inside of the view (.vf) files. Due to the large number of symbols and similarity of the operations on the symbols,
some Perl and shell scripts automate the generation of Radiance input (.rif) and geometry description (.rad) files and semi-automate
the generations of .vf files. However, file naming conventions should be followed in order to use the scripts and then the
files generated by the scripts.
Once a Radiance input file has been created for a "Front View" of a symbol (e.g. master_{symbolname}_front.rif), .rif files
for other views of the object can be generated using the Perl scripts listed in the table below. However, contents may vary
for different view files. For example, gen_vf_viewlabel.pl copies and renames the {symbolname}_vw1.vf in the corresponding
view directory. The contents of the new view file can be edited as necessary. To view the top of the object, the object is
rotated ninety degrees around the x-axis. If the object is not symmetric on the x-axis, the viewpoints may need to be translated
and the contents of the new view file changed. Similarly, if the object is not symmetric about the z-axis, viewpoints would
most likely be changed in order to view the right side of the object.
| Command |
Directory |
Generate .rif file |
Rename .vf file only |
Generate .rad file |
| cd ~/view_symbol_ld/ |
RIGHT |
gen_rif_right.pl |
gen_vf_right.pl |
lib/Conv_right |
|
BACK |
gen_rif_back.pl |
gen_vf_back.pl |
lib/Conv_back |
|
TOP |
gen_rif_top.pl |
lib/Conv_top |
gen_vf_top.pl |
| cd ~/view_symbol_md_hd/ |
RIGHT |
gen_rif_right_md_hd.pl |
gen_vf_right_md_hd.pl |
lib/Conv_right |
|
BACK |
gen_rif_back_md_hd.pl |
gen_vf_back_md_hd.pl |
lib/Conv_back |
|
TOP |
gen_rif_top_md_hd.pl |
gen_vf_top_md_hd.pl |
lib/Conv_top |
-
4.1.4. To rend one symbol
Here is an example listing a series of commands to use.
cd ~/view_symbol_ld/FRONT
emacs master_{symbolname}_front.rif
emacs {symbolname}_vw1.vf
(lib/{symbolname}_front.rad should already be converted by 'obj2rad' after .obj file is exported from FormZ model.)
cd ~/view_symbol_ld/TOP
gen_rif_top.pl (master_{symbolname}_right.rif will be created and ready to use)
gen_vf_top.pl
({symbolname}_vw4.vf will be created; however, the content may need to be changed when necessary.)
lib/Conv_top
({symbolname}_top.rad will be created and ready to use)
-
4.1.5. To render multiple symbols
To render a series of the symbols in a particular view, use the following shell scripts, respectively. After the output .pic
images are created, the Perl script (~/bin/gen_small_ps.pl) can then be used to reduce the size of the images and then convert
the smaller .pic files into the printable PostScript .ps files. (The subdirectories /smallpics and /smallpics/ps should already
be created in the pics/ directory).
cd ~/view_symbol_ld/FRONT/
task_front &
cd pics/
~/bin/gen_small_ps.pl
cd ~/view_symbol_ld/RIGHT/
task_right &
cd pics/
~/bin/gen_small_ps.pl
cd ~/view_symbol_ld/BACK/
task_back &
cd pics/
~/bin/gen_small_ps.pl
cd ~/view_symbol_ld/TOP/
task_top &
cd pics/
~/bin/gen_small_ps.pl
cd ~/view_symbol_md_hd/FRONT/
task_front &
~/bin/gen_small_ps.pl
cd ~/view_symbol_md_hd/RIGHT/
task_right &
cd pics/
~/bin/gen_small_ps.pl
cd ~/view_symbol_md_hd/BACK/
task_back &
cd pics/
~/bin/gen_small_ps.pl
cd ~/view_symbol_md_hd/TOP/
task_top &
cd pics/
~/bin/gen_small_ps.pl
-
4.1.6. Non-symbols
For other parts of Crystal Palace that are not composed of symbols in the Form-Z library, the parts are selected and saved
as .obj files from Form-Z.
Notes:
When exporting from Form-Z, the Guides Layer should not be exported as structure; it was created for design purposes. The
following table lists the layers exported from the Form-Z models, their corresponding Radiance data files, and whether or
not triangulation was done. The floor and canvas sections listed in this table were directly exported from Form-Z models and
they need to be re-designed as discussed later.
| Object Name: |
lib/(*.rad) |
Triangulate? |
Notes |
| Transcept: (transbuild.8.fmz) |
| trans_tbody |
trans_tbody.rad |
N |
style_5 is "white" defined in master_new.mat |
| trans_arch |
trans_arch_tri.rad |
Y |
|
| trans_leadflats |
trans_leadflats.rad |
Y |
If not triangulated, the result is not correct. Extra: bottom_view is done.
|
| Arch: (transbuild.8.fmz) |
| arch_fins |
arch_fins_tri_front.rad |
Y |
|
| arch_glass |
arch_glass_tri_front.rad |
Y |
|
| arch_grillwork |
arch_grillwork_tri_front.rad |
Y |
|
| arch_medalion_back |
arch_medalion_back_tri_front.rad |
Y |
|
| arch_medalion |
arch_medalion_tri_front.rad |
Y |
|
| archface_blue |
archface_blue_tri_front.rad |
Y |
|
| archface_white |
archface_white_tri_front.rad |
Y |
|
| Galleries: (galleries.fmz) |
| floor_underfloor |
floor_underfloor.rad |
N |
Different color for top surface and bottom surface. Top surface is currently defined as white, needs to be re-defined. |
| joist_rail_grill |
joist_rail_grill.rad |
N |
|
| longjoist |
longjoist.rad |
N |
|
| stairs_rail |
stairs_rail.rad |
N |
|
| transjoist_strut |
transjoist_strut.rad |
N |
|
| Roof: (roofSetup.5.fmz) |
| roofW2 |
roof_w.rad |
N |
construction3 is "white" defined in master_new.mat |
| canvasE |
canvasE.rad |
N |
|
| roofElow_mpGuttersE_endcapsE6E7 |
roofElow_mpGuttersE_endcapsE6E7.rad |
N |
construction3 is "white" defined in master_new.mat |
| roofElow |
roofElow.rad |
N |
|
| trimandflag: (trimandflag.fmz) |
| trim |
trim |
Y |
|
| flag |
flag |
N |
|
-
4.1.7. Notes for non-symbols
The Galleries and Roof sections are not made of symbols from the symbol library; they contain different types of objects from
Crystal Palace (include geometry and material) and are all covered. The names of objects are all illustrative, showing which
layers are included.
Galleries:
| floor_underfloor: |
includes floor and underfloor. |
The reason for separating the floor into two geometries is due to the fact that there are two different colors for the top
and bottom sides of the floor. Currently, the top floor is defined as "white" and it needs to be redefined. It is currently
redefined as "floor" in master_new.mat.
| joist_rail_grill: |
includes joist, rail and grill layers. |
| longjoist: |
includes longjoist layer. |
| stairs_rail: |
includes the stairs with rail. |
| transjoist_strut: |
includes transjoist and strut layers. |
Roof:
Different roof and endcaps layers are made from the same geometry and material, only the sizes and locations are different.
Thus, the selected "roofElow_mpGuttersE_endcapsE6E7.rad" covers the following layers:
roofElow
mGutters
pGutters
endcapsE6
endcapsE7
Note that the mGutters layers were cut in order to be the same length with other parts. Also, the canvas layer and roof layer
(made of glass) are rendered separately.
Special note for canvas:
| i. |
Canvas in the symbol library has holes in the middle, and it is the correct one. |
| ii. |
Canvas in the Form-Z model roofSetup.5.fmz has no holes in the middle. When rendering under the previous software, the initial
intention is to avoid the big computational burden due to the large number of holes, and add the holes later using image mapping
method. Thus, we need to substitute the canvas by the ones in the symbol library to render.
|
Trimandflag
There are only six layers to be exported from this Form-Z file; flagsW, flagsC, flagsE, walledgeW, walledgeC, and walledgeE.
Other layer groups (west, east, and center) are for the purpose of designing, i.e. finding alignment.
-
4.1.8. File name conventions for non-symbols
| Directory: |
view_nonsymbol/
FRONT/
RIGHT/
BACK/
TOP/
|
| Radiance input file: |
master_{nonsymbolname}(_tri)_viewlabel.rif |
| Octree file: |
build_{nonsymbolname}(_tri)_viewlabel.oct |
| Image file: |
pics/build_{nonsymbolname}(_tri)_viewlabel_vw#.pic |
| Smaller image file to fit screen: |
pics/smallpics/build_{nonsymbolname}(_tri)_viewlabel_vw#_small.pic |
| Progress Report: |
Report/out_{nonsymbolname}(_tri)__viewlabel.txt |
| (Optional standard output: Report/out_{nonsymbolname}(_tri)_viewlabel.txt) |
Note that (_tri) is added if the triangulation was done on the geometry.
5. Rendering Group II: other parts of Crystal Palace which cannot be exported from Form-Z models
In the current Form-Z model for Crystal Palace, canvas of the roof, floor and trees are not available for direct exporting.
They are discussed below.
-
5.1. Canvas
Each piece of canvas in the physical Crystal Palace had holes in the middle so that the rain could drop into the underneath
gutter. However, the holes add large amounts of geometry and, due to the size of the roof, it would be impossible to export
the canvas geometry from the Form-Z model. Thus, the middle holes were eliminated in the canvas layer in the original Form-Z
model RoofSetup5.fmz.
The canvas designed in the symbol library is the correct version. The canvas symbol can be replicated according to the locations
outlined in the canvas layer in the RoofSetup5.fmz.
In the actual canvas, each 288" long canvas piece is placed one after another above each section of roof, with the exceptions
that the left and the right ends of a canvas piece are cut short by 48" in length respectively to meet the corresponding end
cap of the roof. As a result, four pieces of canvas with different lengths are created.
| canvas_tri_front.rad: |
288" long, it can be directly exported from FormZ library. |
| canvas_ld_leftend.rad: |
240" long, it is obtained by cutting off the 48" portion of the left side of geometry in canvas_tri_front.fmz, and then exported
from FormZ.
|
| canvas_ld_middle.rad: |
192" long, it is obtained by cutting off the 48" portion of both left and right sides of geometry in canvas_tri_front.fmz,
and then exported from FormZ.
|
| canvas_ld_rightend.rad: |
240" long, it is obtained by cutting off the 48" portion of the right side of geometry in canvas_tri_front.fmz, and then exported
from FormZ.
|
The following sections of canvas were created by transformations of the above pre-defined Radiance geometry files for canvas
symbols. They are dynamically generated when creating the octree using calls to ‘xform’ within files to reduce the number
of scene files and to dramatically reduce the file sizes.
(l: stands for left; m stands for middle; r: stands for right.)
canvas_E1_l
canvas_E1_m
canvas_E1_r
canvas_E2_center_l
canvas_E2_center_r
canvas_E3_center_l
canvas_E3_center_r
canvas_E4_center_l
canvas_E4_center_r
canvas_E5_l
canvas_E5_m
canvas_E5_r
canvas_W2_center_l
canvas_W2_center_r
canvas_W3_center_l
canvas_W3_center_r
canvas_W4_center_l
canvas_W4_center_r
canvas_W6_l
canvas_W6_m
canvas_W6_r
canvas_W7_l
canvas_W7_m
canvas_W7_r
canvas_W9E9_center
Refer to Appendix A for a map of complete canvas and location of each section.
-
5.2. Floor
The floor of Crystal Palace was made of wooden strips. Radiance provides a color data function, called colorpict, which can
be used to map a picture onto a surface. It enables rendered or scanned pictures to be mapped to objects within the scene.
Thus, we decide to create some pictures with wood grain strips, and map each picture to a polygon. Four different pictures
are created and mapped onto four polygons separately; and they are tiled one by one to create more random pattern appearance.
The image-mapped floors of Crystal Palace and their corresponding Radiance geometry description files are listed below.
| i. |
First floor:
design_center_1floor.rad
design_east_1floor.rad
design_west_1floor.rad
|
| ii. |
Second floor:
design_galleriesC_2floor_all.rad
design_galleriesE_2floor.rad
design_galleriesW_2floor.rad
|
| iii. |
Landing floor in gallery:
design_galleriesC_landingfloor.rad
design_galleriesE_landingfloor.rad
design_galleriesW_landingfloor.rad
|
Refer to the Appendix B for the maps of different floors and detailed design information.
-
5.2.1. Instance
When designing floor of the Crystal Palace, scene description files contain many surface primitives derived from Radiance
"instance". An instance is defined in terms of a Radiance octree (.oct file), which contains any number of surfaces confined
to a region of space. Multiple occurrences of the same octree in a given scene will use only as much memory as that required
for a single instance, plus some small amount of additional memory to store the associated transformations for each instance's
location. Thus, this mechanism is widely used in designing the floor due to the repetitive nature of the floor patterns.
As mentioned earlier, a special implementation of color data, called colorpict, can be used to map Radiance picture files
to material surfaces. The primitive colorpict uses a two dimensional image stored in Radiance picture format to produce a
colored picture. The dimensions of the picture is normalized so that the smaller dimension is always one unit in length and
the other dimension being the ratio between the larger and the smaller. The colorpict type normally uses a predefined function
called picture.cal. The function file always maps the new picture pattern in the xy plane with its origin at (0,0,0). Assuming
that the z-axis is up, it is as though the picture were placed on the floor facing upward. Thus usually the picture must be
rotated, transformed and scaled. Moreover, the picture remains invisible until it is placed on a canvas. Once the canvas and
the picture have been merged together, the artwork can be located in a file and placed anywhere in the scene by using 'xform'.
The following is a complete example demonstrating how to create an instance, how to reference it, and finally how to include
it in the Radiance input file. Pay special attention on declarations of the relative file paths.
File #1: lib/floor/tile1.pic
# It is the Radiance picture file to be mapped on a piece of floor.
File #2 lib/floor/one_x288_y_288_tile1.rad
# This file is to show how to map a Radiance picture file to a defined
geometry, # which is 288x288 square in this case.
void plastic titanium_white_canvas
0
0
5 .9 .9 .9 0 0
void colorpict image_data_1
15 clip_r clip_g clip_b lib/floor/tile1.pic picture.cal
pic_u pic_v -rz 90 -t 1 0 0 -s 288
0
0
image_data_1 alias art_location_1 titanium_white_canvas
art_location_1 polygon art_floor_1
0
0
12 288 0 0
288 288 0
0 288 0
0 0 0
File #3: create_floor_oct
# This file is to show how to create an instance defined by Radiance octree
# (.oct file).
oconv lib/floor/one_x288_y288_tile1.rad >lib/floor/one_x288_y288_tile1.oct
File #4: lib/floor/one_x288_y288_tile1.ins
# This file contains the actual Radiance instance.
void instance art_work_tile1
1 lib/floor/one_x288_y288_tile1.oct
0
0
File #5: lib/floor/design_center_1floor_tiles.rad
# This file is to put the instance in the desired location inside of the scene.
!xform -t 9216 288 0 -a 3 -t 1152 0 0 -a 18
-t 0 288 0 lib/floor/one_x288_y288_tile1.ins
File #6: master_CP_center_front_2880.rif
# This file is to show how to include the instance inside of the
# Radiance input .rif file.
scene= lib/floor/design_center_1floor_tiles.rad
-
5.3. Trees
There are two trees in the central section of Crystal Palace.
-
5.3.1. One tree geometry
To get the Radiance geometry description file, export Elm1.fmz and save as .obj file without triangulation, and convert the
.obj file to .rad file by using the following:
obj2rad elm1.obj >elm1.rad
| elm1.rad: |
Radiance data file of tree geometry exported from Form-Z. |
-
5.3.2. Material definition
| master_tree.mat: |
Defines the color and material properties of different parts of a tree. In Radiance, a color property is defined by the following
numbers: red, green, blue, specularity, and roughness.
|
To find the numbers for red, green and blue:
Open Elm1.dxf (Form-Z dxf file), click on Options menu --->
Surface Styles, double click on the desired color to get the
Surface Style Parameters window, click on
RenderZone ---> Color ---> Options.
For each color, write down the numbers for red, green and blue, and divide each by 256, respectively; the results are used
for the definition of the corresponding color in master_tree.mat.
-
5.3.3. Final scene description
| design_trees.rad: |
It is the final scene description file included in the Radiance input .rif file. It enlarges two trees into the correct sizes
and places them in the designated places of Crystal Palace.
|
6. Crystal Palace Complete Model
The complete source files of Crystal Palace can be found in ~/CP_completefiles/.
- Obj_files/
- It contains the object files exporting from FormZ, and it does not contain any geometry files for canvas, floor and trees,
which would be generated by many transformations of some pre-defined Radiance data files by using 'xform.'
- Rad_files/
- It contains all the Radiance files to render the images of Crystal Palace. There is a sample executable program to demonstrate
how to run the program.
- Rad_files/lib/
- The following table shows the Radiance scene description files of the complete Crystal Palace, and their corresponding parts
(layers) of FormZ models if available.
| Scene source |
Scene description |
| (EISetup5.fmz) |
|
West Zone: |
layer 1-7 |
west_1_7_tri.rad |
|
West Zone: |
layer 8-12 |
west_8_12.rad |
|
Central Zone: |
layer 1-7 |
center_1_7_tri.rad |
|
Central Zone: |
layer 8-13 |
center_8_13.rad |
|
East Zone: |
layer 1-7 |
east_1_7_tri.rad |
|
East Zone: |
layer 8-12 |
east_8_12.rad |
|
Whole parts: |
landing_cols |
CP_landing_cols.rad |
|
Whole parts: |
base |
CP_base.rad |
|
Whole parts: |
frontsteps |
CP_steps.rad |
|
Whole parts: |
3 named layers |
CP_xbracesSmall_xbraceCeiling_intwalls.rad |
|
Whole parts: |
int doors |
CP_intdoors_tri.rad |
| (galleries.fmz) |
|
All except 2floor+landing floor |
CP_galleries_no2floor_nolandingfloor.rad |
| (roofSetup.5.fmz) |
|
All except canvas layer |
CP_roof_nocanvas.rad |
| (transbuild.8.fmz) |
|
TBody |
trans_tbody.rad |
|
Arch |
trans_arch_tri.rad |
|
LeadFlats |
trans_leadflats_tri.rad |
| (trimandflag.fmz) |
|
walledgeW, walledgeC, walledgeE |
CP_walledge_tri.rad |
|
flagsW, flagsC, flagsE |
CP_flags.rad |
| (elm1.dxf) |
|
All layers |
elm1.rad |
| (Others: The FormZ files are not available for the following geometries.) |
|
canvas |
design_canvas.rad |
|
trees |
design_trees.rad |
|
floor: |
1floor of Central Zone |
design_center_1floor.rad |
|
1floor of East Zone |
design_east_1floor.rad |
|
1floor of West Zone |
design_west_1floor.rad |
|
2floor of Gallery Central |
design_galleriesC_2floor_all.rad |
|
2floor of Gallery East |
design_galleriesE_2floor.rad |
|
2floor of Gallery West |
design_galleriesW_2floor.rad |
|
landing floor of GalleryC |
design_galleriesE_landingfloor.rad |
|
landing floor of GalleryE |
design_galleriesE_landingfloor.rad |
|
landing floor of GalleryW |
design_galleriesW_landingfloor.rad |
Note: We are rendering the Crystal Palace images with quite different view parameters; in other words, there is no significant
overlap between different views. Thus, it does not make sense to save the cached indirect irradiance values to an ambient
file to be reused for later renderings. As a result, we just need one Radiance input .rif file to include multiple view description
files to render images with different views.
7. More Geometry Generated by Radiance
In the original Crystal Palace design, there are railings along the gallery hallways on the second floor, and stair railings
and hand posts along the gallery stairs. However, due to the tremendous size of this railing geometry, it is very difficult
to export them from the Form-Z model. Thus, up to this point, we treat these railings and hand posts as solid white walls.
In creating the previous Crystal Palace animations, a clip-mapping technique was used for the modeling of the railings, which
was similar with the texture mapping method used for the floor in the previous report. The idea was to create a piece of a
two-dimensional white rails on the black background by Form-Z, by using Electric Image, this black background will eventually
be replaced by transparent media to create a see-through effect. However, in Radiance, a similar approach called “colorpict”,
which was introduced in the previous report, can only replicate, resize or change orientation for the original image to be
mapped, i.e. it cannot change the original Radiance picture to make the black background to be transparent. Moreover, this
texture mapping technique can only create two-dimensional railings that are different from the original three-dimensional
railings for the Crystal Palace.
Due to these limitations and considerations, for all the gallery railings, we decide to use the similar approach used for
Canvas section of the roof, that is, because of the repetitive nature of the railings, one section of three-dimensional railing
is first designed in Form-Z, and then this symbol piece is replicated into the appropriate places using “xform” transformations
in Radiance. The detailed design will be illustrated in the following sections.
-
7.1. Complete Map of Gallery Hallway and Stair Railings
Figure 6 shows the locations of each gallery railing section, and stair railing section. It helps the understating of the
following Radiance geometry files:
- lib/Rail/design_galleryrail_west.rad
- lib/Rail/design_galleryrail_center.rad
- lib/Rail/design_galleryrail_east.rad
- lib/Rail/Stair_rail/design_stairway_WEST_nounderfloor.rad
- lib/Rail/Stair_rail/design_stairway_CENTER_nounderfloor.rad
- lib/Rail/Stair_rail/design_stairway_EAST_nounderfloor.rad
Or for the entire Crystal Palace, simply:
- lib/Rail/design_galleryrail_all.rad
- lib/Rail/Stair_rail/design_stairway_all_nounderfloor.rad
 |
| Figure 6: Outline of gallery rails. |
Due to the different geometric features of hallway and stair railings, their designs will be discussed separately. Note that
these section numbers in Figure 6 will be used constantly in this report.
- Hallway Railing Sections:
- A1, A2, B1, B2, C1, C2, D1, D2, E1, E2, F1, F2, G1, G2, H1, H2, I1, I2, J1, J2, K1, K2, L1, L2, M1, M2, N1, N2, O, P, Q, R,
G
- Stair Railing Sections:
- S1, S2, S3, S4, S5, S6, S7, S8, S9, S10
-
7.2. Gallery Second Floor Railings
There are two kinds of railings locating on the second floor of Crystal Palace gallery. They are:
- Gallery hallway railings
- Second floor stair railings
We will discuss them separately in the following sections.
-
7.2.1. Gallery Hallway Railings
As shown in Figure 6, the gallery hallway railings have the following characteristics:
- Each hallway railing section forms an enclosed rectangle.
- With the exception of section G, each rectangular section has a length and width that are multiples of 24 feet or 288 inches,
respectively.
- Pattern of the hallway railing is identical.
- For every 280 inch long of railing, a tall yellow column with 8 inches diameter is located immediately adjacent to it. Refer
to Figure 7 for section A1 to view the relationship between rails and columns. There are four exceptions to this rule; they
are Sections R, G, O and P. We will discuss them in the “Special Case” section.
 |
| Figure 7: Radiance image showing relationship between rails and columns for Section A1. |
With these in mind, we need to find the smallest repetitive railing part and make it into symbol and replicate them throughout
the gallery.
-
7.2.1.1. Symbols and instances
As shown in Figure 7, the rail portion with 280 inches in length between two yellow tall columns is repeated throughout the
gallery. A portion of this repeated part was designed in Form-Z, as shown in the following Figure 8.
 |
| Figure 8: Original geometry file for gallery raile (Rail.9.fmz). |
However, for our purpose, we need to modify it. The changes are:
- Change the post from blue to yellow color.
- Change the surface rail and pattern among the rail from white into red color.
- Cut out the extra diamond shaped structure in the right end.
After the above changes are made in Form-Z, the new geometry is shown in Figure 9.
 |
| Figure 9: Modified Form-Z geometry file for gallery rail. |
Several important design features need to be kept in mind in order to correctly use the geometry shown in Figure 9.
- The current front face of geometry shown in Figure 9 is facing to the inside opening of each rectangular railing section shown
in Figure 6.
- The diamond shaped portion in the rail9.fmz is among the other pure rail portions, i.e. it is not adjacent to the columns
as shown in Figure 7. The function of this is to prevent the rail from moving when someone leans over the rail.
- If cutting out the yellow rail post in Figure 9, we can export the Form-Z geometry without the triangulation to get .obj file
and then convert it to the Radiance geometry file named "rail9_cut_color.rad." The Radiance picture is shown in Figure 10.
- The geometry shown in Figure 10 is 96 inches in length.
- The geometry shown in Figure 11 is 88 inches in length, with 8 inches diamond shaped structure being cut, and shifted 8 inches
to its left direction to form a new Radiance geometry file "rail9_cut_color_center.rad."
- Because of 4) and 5), to make three pieces of rails join together, we can join them like this: rail9_cut_color_center.rad
+ rail9_cut_color.rad + rail9_cut_color.rad into one big symbol as shown in Figure 12.
 |
| Figure 10: Radiance picture for geometry file “rail9_cut_color.rad.” |
 |
| Figure 11: Radiance picture for geometry file “rail9_cut_color_center.rad.” |
 |
| Figure 12: Radiance picture for geometry file “symbol_3rail_facesouth.rad.” |
Notice that the railings in Figure 7 are symmetric about the vertical z-axis, and the front face in “Rail9.fmz” is facing
the inside opening of each rail section, as demonstrated in Figure 7. Also, it is very important to realize that to replicate
a Radiance geometry, a reference point has to be kept consistent in order for transform and translation to happen. This is
one of the key design concepts which will be used repeatedly.
With these considerations, for the ease of the understanding of the symbol replication, we create four different symbols facing
four different directions, respectively. The Radiance pictures of these symbols are shown in Figure 12, 13, 14 and 15.
 |
| Figure 13: Radiance picture for geometry file “symbol_3rails_facenorth.rad” |
 |
| Figure 14: Radiance picture for geometry file “symbol_3rails_facewest.rad” |
 |
| Figure 15: Radiance picture for geometry file “symbol_3rails_faceeast.rad” |
File #1: m test.rad
void polygon object_1
0
0
12 1 2 3
1 4 3
1 4 5
1 2 5
File #2: m test_rz90.rad
# xform -rz 90
void polygon object_1
0
0
12
-2 1 3
-4 1 3
-4 1 5
-2 1 5
File #3: m test_new.rad
# xform -t -1 -2 0 -rz 90 -t 1 2 0
void polygon object_1
0
0
12
1 2 3
-1 2 3
-1 2 5
1 2 5
Remember the reference points and keep consistency with measurements for any translation and rotation!
The following are Radiance files to create four gallery hallway rail symbols facing different directions.
File #1: symbol_3rails_facesouth.rad
!xform -t 16.625 1377.156 -12.094 \
-t 96 0 0 \
-a 2 -t 96 0 0 \
lib/Rail/rail9_cut_color.rad
!xform -t 16.625 1377.156 -12.094 \
lib/Rail/rail9_cut_color_center.rad
File #2: symbol_3rails_facesouth.ins
void instance 3rails_facesouth
5 lib/Rail/symbol_3rails_facesouth.oct -t 0 -0.6715 0
0
0
File #3: symbol_3rails_facenorth.ins
void instance 3rails_facenorth
11 lib/Rail/symbol_3rails_facesouth.oct -rz -180 -t 280 1.343 0 -t 0 -0.6715 0
0
0
File #4: symbol_3rails_facewest.ins
void instance 3rails_facewest
11 lib/Rail/symbol_3rails_facesouth.oct -rz -90 -t 0 280 0 -t -0.6715 0 0
0
0
File #5: symbol_3rails_faceeast.ins
void instance 3rails_faceeast
11 lib/Rail/symbol_3rails_facesouth.oct -rz 90 -t 1.343 0 0 -t -0.6715 0 0
0
0
-
7.2.1.2. Special Cases
For the hallway railings in Figure 6, there are four special cases.
- Lower horizontal edge of section R: two short “hand posts” (shown in Figure 16) are used instead of big tall columns. And
because the new shorter “hand post” has a diameter of 4.938 inches which is smaller than 8 inches columns, the three segments
of rails surrounding two posts need to be enlarged by 0.729% in order to touch the adjacent posts. Two similar cases are the
west end of Section O and east end of Section P, respectively. Refer to Figure 18 and 19, there is no overhead structure to
support, as a result there is no need for the tall column going through the rails; thus, two short hand rails are needed for
the west end and the east end, respectively.
- Upper horizontal part of section G, two short “hand posts” are used instead of big tall columns. Refer to Figure 17.
- For section G, two vertical rails facing east and west are shorter in length than other three-piece rails. Due to the same
reason listed in 1), the rail portions need to be enlarged by 0.3% to touch the adjacent posts.
 |
| Figure 16: Radiance picture for geometry file “rail9_post_tri.rad.” |
Note: The “hand post” shown in Figure 16 is extracted from Figure 9. When exporting the Form-Z geometry into .obj file, the
triangulation has to be used in order to preserve the original geometry.
In order to visualize this special cases about gallery rail section G and R, we change the camera position, take the camera
facing south front entrance of Crystal Palace (as oppose to facing to the north in Figure 6), to take a close up view of section
G and part of section R. The Radiance picture is shown in Figure 17.
 |
| Figure 17: Radiance picture showing the gallery Section G and part of Section R. |
 |
| Figure 18: Radiance picture showing the west end of Section O. |
 |
| Figure 19: Radiance picture showing the west end of Section P. |
In addition, some extra trusses inside of section G are cut out from the original Form-Z geometry file to make the Crystal
Palace model correct. The six extra trusses are shown in Figure 20, namely truss A, B, C, D, E and F.
 |
| Figure 20: Modified gallery Section G: six trusses to be removed from the original model. |
-
7.2.2. Second Floor Stair Railings
In Figure 6, there are ten sets of stair railings locating on the second floor of Crystal Palace. There are sections S1, S2,
S3, S4, S5, S6, S7, S8, S9 and S10. We call these as “second floor stair railings”. Because all these ten sets are identical
in structure, we only need to design one set, and then translate them into the appropriate locations.
Take section S1 as an example, the lower part and upper part are symmetric about the horizontal x-axis, we only need to construct
the lower part (Figure 21) and rotate it about the vertical z-axis, and with proper translation, the upper part can be formed.
Again, it is extremely important to understand how the coordinates are changed after the rotation about the z-axis, and the
reference points have to be kept in consistent in order for the proper rotation and translation to occur. All the necessary
translations have to be done manually in Radiance in order to get the proper results, which is not what-you-see-is-what-you-get
as in Form-Z.
The result is shown in Figure 22 for the complete section S1.
 |
| Figure 21: Radiance picture of lower portion of stair Section S1. |
 |
| Figure 22: Radiance picture of stair rail for Section S1 (second floor only) |
-
7.2.2.1. Symbols and Instances
File #1: symbol_2rails_2posts.rad (Refer to Figure 23.)
!xform -t 96 0 0 \
lib/Rail/rail9_cut_color.rad
!xform lib/Rail/rail9_cut_color_center.rad
!xform -t 8 0 0 -a 2 -t 188.938 0 0 lib/Rail/rail9_post_tri.rad
File #2: symbol_2rails_2posts.ins
void instance rails_posts_2
1 lib/Rail/symbol_2rails_2posts.oct
0
0
 |
| Figure 23: Radiance picture for geometry file “symbol_2rails_2posts.rad.” |
File #3: design_lowstair_rail.rad (Refer to Figure 24, 25, and 26.)
!xform -t -8 0 0 lib/Rail/rail9_cut_color_center.rad
!xform -t 16.625 1377.156 -12.094 -rz 90
-t -24.625 -1377.156 12.094
-t -1.7975 -184 0
lib/Rail/symbol_2rails_2posts.ins
!xform -t 16.625 1377.156 -12.094 -rz -90
-t -24.625 -1377.156 12.094
-t 89.7975 0 0
lib/Rail/symbol_2rails_2posts.ins
File #4: design_lowstair_rail.ins (Refer to Figure 26.)
void instance lowstair_rail
5 lib/Rail/design_lowstair_rail.oct -t 30.063 1570.031 -12.063
0
0
 |
| Figure 24: The first step of construction of lower portion of second floor of Section S1. |
 |
| Figure 25: The second step of construction of lower portion of second floor of Section S1. |
 |
| Figure 26: The last step of construction of lower portion of second floor of Section S1. |
File #5: lib/Rail/design_stair_rail.rad (Refer to Figure 27.)
!xform -rz 180 -t 101 576 0 \
-t -5.4 -2.5 0 \
lib/Rail/design_lowstair_rail.ins
!xform -t -4.4 -2.4 0 \
lib/Rail/design_lowstair_rail.ins
 |
| Figure 27: The construction of lower and upper portion of second floor of Section S1. |
-
7.2.2.2. Complete Second Floor Stair Railings
Once one set of the second floor stair railings is designed, it can be copied to different locations by using Radiance ‘xform’
translation. Again, it is important to know where the reference points are and how many inches to move. The following Radiance
file shows how to construct the second floor stair railings.
File #6: #S1:
!xform -t 2402.672 1152 275 lib/Rail/design_stair_rail.ins
#S2:
!xform -t 2402.516 3168 275 lib/Rail/design_stair_rail.ins
#S3:
!xform -t 9314.672 1152 275 lib/Rail/design_stair_rail.ins
#S4:
!xform -t 9314.516 3168 275 lib/Rail/design_stair_rail.ins
#S5:
!xform -t 12194.672 1152 275 lib/Rail/design_stair_rail.ins
#S6:
!xform -t 12194.516 3168 275 lib/Rail/design_stair_rail.ins
#S7:
!xform -t 15650.672 1152 275 lib/Rail/design_stair_rail.ins
#S8:
!xform -t 15650.516 3168 275 lib/Rail/design_stair_rail.ins
#S9:
!xform -t 19106.672 1152 275 lib/Rail/design_stair_rail.ins
#S10:
!xform -t 19106.516 3168 275 lib/Rail/design_stair_rail.ins
-
7.2.3. Complete Second Floor Railings
For the complete design of gallery second floor railings, refer to ‘lib/Rail/design_galleryrail_all.rad’. Due to the length
of the file, it is not shown on this report.
-
7.3. Stairs
-
7.3.1. Complete One Piece of Stairs
Figure 28 shows the complete stairs and railings for Section S8 in Figure 6.
 |
| Figure 28: Radiance picture of complete railings of Section S8. |
Underneath the second floor stair railings, there are several geometries, as shown in Figure 29. They are:
- Landing floor rails and posts.
- Stairs and rails along the stairs.
We will discuss them separately in the following sections.
 |
| Figure 29: Radiance picture of stair rails and landing floor rails. |
-
7.3.1.1. Landing Floor Rail and Posts
Figure 30 shows the landing floor structure of section S8. We will use this label convention in the following discussion.
 |
| Figure 30: Landing rail labels for Section S8. |
Some useful measurements are shown below.
Length of AD segment is 96.875 inches.
- Length of DI segment is 94.375 inches.
- Length of KC segment is 93.875 inches.
- Length of CB segment is 96.875 inches.
Recall that one segment of railing geometry designed in Form-Z has a length of 88 inches as shown in Figure 11. With the addition
of post (with base width of 6.5 inches), it is very close to the above segment measurements. Thus, we can use the geometry
for the above four segments. A few things need to be considered:
- The rail piece in Figure 11 is directional, we need to create symbol for each different directional segment.
- There are total of six posts at locations A, D, I, K, C and B.
Figure 31 shows the Radiance picture of the landing floor rails and posts. We will discuss how to construct this in details
in the following section.
 |
| Figure 31: Radiance picture for landing floor rail of Section S8. |
-
7.3.1.2. Symbols and Instances
File #1A: symbol_rail_post_faceeast.rad
!xform -rz 90 -t 5.938 0 0 lib/Rail/Stair_Rail/symbol_rail_post_facesouth.ins
File #1B: symbol_rail_post_faceeast.ins
void instance rail_post_faceeast
1 lib/Rail/Stair_Rail/symbol_rail_post_faceeast.oct
0
0
File #2A: symbol_rail_2posts_facesouth.rad
!xform -a 2 -t 92.438 0 0 lib/Rail/rail9_post_tri.rad
!xform -t -8 0 0 \
lib/Rail/rail9_cut_color_center.rad
File #2B: symbol_rail_2posts_facesouth.ins
void instance rail_2posts_facesouth
5 lib/Rail/Stair_Rail/symbol_rail_2posts_facesouth.oct -t 30.063 1379.531 -12.063
0
0
File #3A: symbol_rail_post_alt_facesouth.rad
!xform lib/Rail/rail9_post_tri.rad
!xform -t -100.938 0 0 \
lib/Rail/rail9_cut_color_center.rad
File #3B: symbol_rail_post_alt_facesouth.ins
void instance rail_post_facesouth_alt
5 lib/Rail/Stair_Rail/symbol_rail_post_alt_facesouth.oct -t 24.125 1373.594 -12.063
0
0
File #4A: symbol_rail_post_alt_facewest.rad
!xform -rz -90 lib/Rail/Stair_Rail/symbol_rail_post_alt_facesouth.ins
File #4B: symbol_rail_post_alt_facewest.ins
void instance rail_post_alt_facewest
1 lib/Rail/Stair_Rail/symbol_rail_post_alt_facewest.oct
0
0
File #5A: one_stairway_all_nounderfloor.rad (Refer to Figure 30 for labels.)
#AD (Refer to Figure 32.):
!xform -t 15559.688 3407.547 140 \
lib/Rail/Stair_Rail/symbol_rail_post_faceeast.ins
#DI (Refer to Figure 33.):
!xform -t 15559.688 3498.220 140 \
lib/Rail/Stair_Rail/symbol_rail_2posts_facesouth.ins
#KC (Refer to Figure 34.):
!xform -t 15733.500 3498.2345 140 \
lib/Rail/Stair_Rail/symbol_rail_2posts_facesouth.ins
#CB (Refer to Figure 35.):
!xform -t 15831.875 3407.2655 140 \
lib/Rail/Stair_Rail/symbol_rail_post_alt_facewest.ins
#Other part: (Refer to Figure 36 and 37.)
!xform lib/Rail/Stair_Rail/stair_railing_part1_nounderfloor.ins
File #5B: one_stairway_all_nounderfloor.ins
void instance one_stairway_all_nounderfloor
5 lib/Rail/Stair_Rail/one_stairway_all_nounderfloor.oct -t -15559.688 -3407.547 -140
0
0
 |
| Figure 32: Radiance picture for landing floor rail Section S8 with rail segment ‘AD.’ |
 |
| Figure 33: Radiance picture for landing floor rail Section S8 with rail segments ‘AD’ and ‘DI.’ |
 |
| Figure 34: Radiance picture for landing floor rail Section S8 with rail segments ‘AD,’ ‘DI,’ and ‘KC.’ |
 |
| Figure 35: Radiance picture for landing floor rail Section S8 with rail segments ‘AD,’ ‘DI,’ ‘KC,’ and ‘CB.’ |
-
7.3.1.3. Railings Along the Stair Steps
Figure 36 shows the geometry designed in Form-Z which was exported by .obj file without the need of the triangulation, and
it is then converted to Radiance geometry file by using the Radiance command ‘obj2rad’. Figure 37 is the Radiance picture
of the corresponding structure.
Notice that for the landing floor section, there is a layer called “underfloor” right underneath the second floor and landing
floor, this is due to the fact that the floor looks different in color when looking down from upside and looking up from downside.
However, we already include this “underfloor” layer when we export the rest of the gallery geometry; thus, no duplication
is done here. To better view this “underfloor” layer, refer to the red color part in Figure 38.
There is a special note for exporting the geometry from Form-Z file “stair_railing_part1_nounderfloor.fmz”. The “galleryrail”
layer and the rest of layers have to be exported into different .obj files in order to export all the necessary geometry,
i.e. we have to export “galleryrail” layer into one .obj file, and then export the other five layers from the Form-Z model
“stair_railing_part1_nounderfloor.fmz” into another .obj file. Otherwise, when exporting all geometry into one .obj file,
the layer “galleryrail” will not be saved. This looks like a bug from the Form-Z software.
 |
| Figure 36: Rail and step geometry (Form-Z) along the stairs for Section S8. |
 |
| Figure 37: Radiance picture for stairs portion only for Section S8. |
 |
| Figure 38: “Underfloor” layer for gallery stair rail Section S8. |
-
7.3.2. Complete Stair Railings
 |
| Figure 39: Outline of stair rail sections. |
Once one set of stair is designed, the other identical ones can be copied by ‘xform’ operations in Radiance (Refer to the
“File #6” below). Figure 39 shows the location of stairs in Crystal Palace gallery.
File #6: design_stairway_all_nounderfloor.rad (Refer to Figure 39.)
# West Section:
# S2:
!xform -t 2311.688 3407.547 140
lib/Rail/Stair_Rail/one_stairway_all_nounderfloor.ins
# S1:
!xform -t 2311.844 1391.547 140
lib/Rail/Stair_Rail/one_stairway_all_nounderfloor.ins
# Center Section:
# S4:
!xform -t 9223.688 3407.547 140
lib/Rail/Stair_Rail/one_stairway_all_nounderfloor.ins
# S3:
!xform -t 9223.844 1391.547 140
lib/Rail/Stair_Rail/one_stairway_all_nounderfloor.ins
# S6:
!xform -t 12103.688 3407.547 140
lib/Rail/Stair_Rail/one_stairway_all_nounderfloor.ins
# S5:
!xform -t 12103.844 1391.547 140
lib/Rail/Stair_Rail/one_stairway_all_nounderfloor.ins
# East Section:
# S8:
!xform -t 15559.688 3407.547 140
lib/Rail/Stair_Rail/one_stairway_all_nounderfloor.ins
# S7:
!xform -t 15559.844 1391.547 140
lib/Rail/Stair_Rail/one_stairway_all_nounderfloor.ins
# S10:
!xform -t 19015.688 3407.547 140
lib/Rail/Stair_Rail/one_stairway_all_nounderfloor.ins
# S9:
!xform -t 19015.844 1391.547 140
lib/Rail/Stair_Rail/one_stairway_all_nounderfloor.ins
-
7.4. New Gallery Geometry
-
7.4.1. Old Radiance Geometry to be removed
As mentioned earlier, we treat the railings and hand posts as solid white walls in the previous design. Once these parts are
modified, the original parts should be removed to avoid the duplication of geometry.
For the original galleries.fmz: the following layers of structure should not be saved:
galleryrail
galleryGrill
sideRail1
sideRail2
sideRail3
landing floor
landing rail
2 floor
In addition, cut out the extra six trusses as shown in the previous Figure 20.
-
7.4.2. New Radiance Geometry to be added for Gallery
Note: CP_galleries_noorgsolidrails.obj is
galleries_nosurfacerail_nogrill_nolandingfloor_no2floor_cut_nolandingrail_
nosideRails_nogalleryrail.obj
scene= lib/Rail/CP_galleries_noorgsolidrails.rad
scene= lib/Rail/design_galleryrail_all.rad
scene= lib/Rail/Stair_Rail/design_stairway_all_nounderfloor.rad
8. Complete Radiance Model for Crystal Palace
During the rendering of the Crystal Palace, we discover and correct some mistakes in the original Form-Z model. Specifically,
we create the modified version for symbols “winpanel” and “woodcol”, the new names are “copy of winpanel” and “copy of woodcol”
in the Form-Z low detail symbol library. This is because some of the “winpanel” and “woodcol” structure inside of the Crystal
Palace should have a shorter height than those near the exterior sections of the palace. Thus, we have to apply different
height symbols at the appropriate places.
In the following section, we list the Radiance geometry files included in the main .rif file. However, note that many additional
Radiance geometry files located in the /lib and its subdirectories are called from these files.
-
8.1. Crystal Palace Scene Geometries
scene= lib/sky.rad
scene= lib/outside.rad
materials= lib/master_new.mat lib/master_tree.mat
###Common###
scene= lib/CP_base.rad
scene= lib/CP_flags.rad
scene= lib/Rail/CP_galleries_noorgsolidrails.rad
scene= lib/Rail/design_galleryrail_all.rad
scene= lib/Rail/Stair_Rail/design_stairway_all_nounderfloor.rad
scene= lib/CP_intdoors_tri.rad
scene= lib/CP_landing_cols.rad
scene= lib/CP_roof_nocanvas.rad
scene= lib/CP_steps.rad
scene= lib/CP_walledge_tri.rad
scene= lib/CP_xbracesSmall_xbraceCeiling_intwalls.rad
scene= lib/design_canvas.rad
###Center###
scene= lib/design_trees.rad
scene= lib/center_1_7_tri.rad
scene= lib/center_8_13.rad
scene= lib/floor/design_center_1floor.rad
scene= lib/floor/design_galleriesC_landingfloor.rad
scene= lib/floor/design_galleriesC_2floor_all.rad
scene= lib/trans_arch_tri.rad
scene= lib/trans_leadflats_tri.rad
scene= lib/trans_tbody.rad
###West###
scene= lib/west_1_7_tri.rad
scene= lib/west_8_12.rad
scene= lib/floor/design_west_1floor.rad
scene= lib/floor/design_galleriesW_landingfloor.rad
scene= lib/floor/design_galleriesW_2floor.rad
###East###
scene= lib/east_1_7_tri.rad
scene= lib/east_8_12.rad
scene= lib/floor/design_east_1floor.rad
scene= lib/floor/design_galleriesE_landingfloor.rad
scene= lib/floor/design_galleriesE_2floor.rad
-
8.1.1. West Section
scene= lib/sky.rad
scene= lib/outside.rad
materials= lib/master_new.mat lib/master_tree.mat
###NEW WEST_1###
scene= lib/WEST/roof_west_nocanvas.rad
scene= lib/WEST/west_base.rad
scene= lib/WEST/west_flags.rad
scene= lib/WEST/west_intdoors_tri.rad
scene= lib/WEST/west_landing_cols.rad
scene= lib/WEST/west_walledge_tri.rad
scene= lib/WEST/west_xbracesSmall_xbracesCeiling_intwalls.rad
scene= lib/WEST/WEST_galleries_noorgsolidrails.rad
scene= lib/Rail/design_galleryrail_west.rad
scene= lib/design_canvas_west.rad
scene= lib/Rail/Stair_Rail/design_stairway_WEST_nounderfloor.rad
###West###
scene= lib/west_1_7_tri.rad
scene= lib/west_8_12.rad
scene= lib/floor/design_west_1floor.rad
scene= lib/floor/design_galleriesW_landingfloor.rad
scene= lib/floor/design_galleriesW_2floor.rad
-
8.1.2. Center Section
scene= lib/sky.rad
scene= lib/outside.rad
materials= lib/master_new.mat lib/master_tree.mat
###NEW CENTER###
scene= lib/CENTER/center_base_cut.rad
scene= lib/CENTER/center_flags.rad
scene= lib/CENTER/center_intdoors_cut_tri.rad
scene= lib/CENTER/center_landing_cols_cut.rad
scene= lib/CENTER/center_steps.rad
scene= lib/CENTER/center_walledge_tri.rad
scene= lib/CENTER/center_xbracesSmall_intwalls_cut.rad
scene= lib/CENTER/design_canvas_center.rad
scene= lib/CENTER/roof_center_nocanvas_cut.rad
scene= lib/Rail/design_galleryrail_center.rad
scene= lib/Rail/Stair_Rail/design_stairway_CENTER_nounderfloor.rad
scene= lib/CENTER/CENTER_galleries_noorgsolidrails.rad
###Center###
scene= lib/design_trees.rad
scene= lib/center_1_7_tri.rad
scene= lib/center_8_13.rad
scene= lib/floor/design_center_1floor.rad
scene= lib/floor/design_galleriesC_landingfloor.rad
scene= lib/floor/design_galleriesC_2floor_all.rad
scene= lib/trans_arch_tri.rad
scene= lib/trans_leadflats_tri.rad
scene= lib/trans_tbody.rad
-
8.1.3. East Section
scene= lib/sky.rad
scene= lib/outside.rad
###NEW EAST###
scene= lib/EAST/design_canvas_east.rad
scene= lib/EAST/east_base.rad
scene= lib/EAST/east_flags.rad
scene= lib/EAST/east_intdoors_tri.rad
scene= lib/EAST/east_landing_cols.rad
scene= lib/EAST/east_walledge_tri.rad
scene= lib/EAST/east_xbracesSmall_xbraceCeiling_intwalls.rad
scene= lib/EAST/roof_east_nocanvas.rad
scene= lib/Rail/design_galleryrail_east.rad
scene= lib/Rail/Stair_Rail/design_stairway_EAST_nounderfloor.rad
scene= lib/EAST/EAST_galleries_noorgsolidrails.rad
###East###
scene= lib/east_1_7_tri.rad
scene= lib/east_8_12.rad
scene= lib/floor/design_east_1floor.rad
scene= lib/floor/design_galleriesE_landingfloor.rad
scene= lib/floor/design_galleriesE_2floor.rad
-
8.2. Symbol to Instance Conversion
-
8.2.1. One Example
To create an instance in Radiance, we have to convert the Radiance geometry into an octree (.oct file). It is important to
keep consistency on the relative file path locations.
Command:
oconv lib/master_new.mat lib/Rail/symbol_3rails_facesouth.rad
>lib/Rail/symbol_3rails_facesouth.oct
The following file defines the actual Radiance instance.
File #1: symbol_3rails_facenorth.ins
void instance 3rails_facenorth
11 lib/Rail/symbol_3rails_facesouth.oct -rz -180 -t 280 1.343 0 -t 0 -0.6715 0
0
0
File #2: lib/Rail/design_galleryrail_all.rad (Only Section A1 is extracted here.)
# This file is to put the instance in the desired location inside of the scene.
#A1:
!xform -t 292 1152 275 -a 7 -t 288 0 0 \
lib/Rail/symbol_3rails_facenorth.ins
!xform -t 292 1728 275 -a 7 -t 288 0 0 \
lib/Rail/symbol_3rails_facesouth.ins
!xform -t 288 1156 275 -a 2 -t 0 288 0 \
lib/Rail/symbol_3rails_faceeast.ins
!xform -t 2304 1156 275 -a 2 -t 0 288 0 \
lib/Rail/symbol_3rails_facewest.ins
File #3: master_CP_complete_2880.rif (Excerpt)
# This file is to show how to include the instance inside of the Radiance input
# .rif file.
scene= lib/Rail/design_galleyrail_all.rad
-
8.2.2. Complete List of Conversion for Rails
In the main directory where the .rif is located, we need to create a file named “create_oct” to convert the symbols into instance
to be used in the corresponding Radiance geometry file. Below is a list for all defined symbols for the rail construction.
#!/usr/bin/csh
oconv lib/master_new.mat lib/Rail/symbol_3rails_facesouth.rad
>lib/Rail/symbol_3rails_facesouth.oct
oconv lib/master_new.mat lib/Rail/symbol_2rails_facesouth.rad
>lib/Rail/symbol_2rails_facesouth.oct
oconv lib/master_new.mat lib/Rail/design_lowstair_rail.rad
>lib/Rail/design_lowstair_rail.oct
oconv lib/master_new.mat lib/Rail/design_stair_rail.rad
>lib/Rail/design_stair_rail.oct
oconv lib/master_new.mat lib/Rail/design_3rails_2posts.rad
>lib/Rail/design_3rails_2posts.oct
oconv lib/master_new.mat lib/Rail/symbol_2rails_2posts.rad
>lib/Rail/symbol_2rails_2posts.oct
oconv lib/master_new.mat lib/Rail/symbol_3rails_2posts.rad
>lib/Rail/symbol_3rails_2posts.oct
oconv lib/master_new.mat lib/Rail/rail9_post_tri.rad
>lib/Rail/rail9_post_tri.oct
oconv lib/master_new.mat lib/Rail/Stair_Rail/symbol_rail_post_facesouth.rad
>lib/Rail/Stair_Rail/symbol_rail_post_facesouth.oct
oconv lib/master_new.mat lib/Rail/Stair_Rail/symbol_rail_post_faceeast.rad
>lib/Rail/Stair_Rail/symbol_rail_post_faceeast.oct
oconv lib/master_new.mat lib/Rail/Stair_Rail/symbol_rail_post_alt_facesouth.rad
>lib/Rail/Stair_Rail/symbol_rail_post_alt_facesouth.oct
oconv lib/master_new.mat lib/Rail/Stair_Rail/symbol_rail_post_alt_facewest.rad
>lib/Rail/Stair_Rail/symbol_rail_post_alt_facewest.oct
oconv lib/master_new.mat lib/Rail/Stair_Rail/symbol_rail_2posts_facesouth.rad
>lib/Rail/Stair_Rail/symbol_rail_2posts_facesouth.oct
oconv lib/master_new.mat
lib/Rail/Stair_Rail/stair_railing_part1_nounderfloor_nogalleryrail.rad
lib/Rail/Stair_Rail/stair_railing_part1_nounderfloor_galleryrail.rad
>lib/Rail/Stair_Rail/stair_railing_part1_nounderfloor.oct
oconv lib/master_new.mat lib/Rail/Stair_Rail/one_stairway_all_nounderfloor.rad
>lib/Rail/Stair_Rail/one_stairway_all_nounderfloor.oct
The above list also demonstrates the fact that many files in subdirectories are needed for the final rendering of the Crystal
Palace. The benefit of using relatively small and separate symbols is when we want to replace one of the symbols, we can simply
change that particular symbol and use ‘oconv’ to recreate all the instances related to that symbol, and thus we do not have
to change anything else.
-
8.3. Usage
In Unix environment, we can use the following commands to render the images for the Crystal Palace. Because the tremendous
computation power is required for the successful rendering of the images, sometimes it is not possible to render the complete
Crystal Palace at one time, so we divide the geometry into three parts, namely center, west and east part, so that part of
the palace can be rendered successfully.
Complete Crystal Palace: nice rad master_CP_complete_2880.rif >>&REPORT/out_CP_complete_2880.txt &
Center Section only: nice rad master_CP_center_2880.rif >>&REPORT/out_CP_center_2880.txt &
West Section only: nice rad master_CP_west_2880.rif >>&REPORT/out_CP_west_2880.txt &
East Section only: nice rad master_CP_east_2880.rif >>&REPORT/out_CP_east_2880.txt &
9. Images of Crystal Palace
-
9.1. Center Section
 |
| Figure 40: Radiance picture showing the front of the Crystal Palace center section. |
 |
| Figure 41: Radiance picture showing the inside of the Crystal Palace center section. |
 |
| Figure 42: Radiance picture showing the inside of the Crystal Palace center section (Section G). |
 |
| Figure 43: Radiance picture showing the back of the Crystal Palace center section. |
 |
| Figure 44: Radiance picture showing the gallery section G and part of section R. |
 |
| Figure 45: Radiance picture showing the top view of the Crystal Palace center section. |
 |
| Figure 46: Radiance picture showing the right side view of the Crystal Palace center section. |
-
9.2. West Section
 |
| Figure 47: Radiance picture showing the roof of the Crystal Palace west section. |
 |
| Figure 48: Radiance picture showing the roof of the Crystal Palace west section. |
 |
| Figure 49: Radiance picture showing the first floor of the Crystal Palace west section. |
 |
| Figure 50: Radiance picture showing the second floor of the Crystal Palace west section. |
 |
| Figure 51: Radiance picture showing the hallway of the Crystal Palace west section. |
 |
| Figure 52: Radiance picture showing the gallery of the Crystal Palace west section. |
 |
| Figure 53: Radiance picture showing the west end of the Crystal Palace (Section O). |
 |
| Figure 54: Radiance picture showing the stairs of the Crystal Palace west section (Section S2). |
-
9.3. East Section
 |
| Figure 55: Radiance picture showing the outside of the Crystal Palace east section. |
 |
| Figure 56: Radiance picture showing the hallway of the Crystal Palace east section. |
 |
| Figure 57: Radiance picture showing the east end of the Crystal Palace (Section P). |
 |
| Figure 58: Radiance picture showing the second floor of the Crystal Palace east section. |
 |
| Figure 59: Radiance picture showing the stairs and landing floor of the Crystal Palace east section (Section S8). |
Appendix A. Canvas
The following map shows the location of each canvas section, which helps the understanding of the Radiance geometry file ‘design_canvas.rad’.
 |
| Figure 1: Map of the Canvas sections. |
Appendix B. Floor Covering
-
Appendix B-1. First Floor
The following map displays the location of the first floor of the Crystal Palace, which helps the understanding of the following
Radiance geometry files:
- design_west_1floor.rad
- design_center_1floor.rad
- design_east_1floor.rad
For the convenience of the design, the first floor was subdivided into small 288”x288” square, with the exceptions of all
border boxes which were 10” longer toward the outside due to the columns on the floor.
 |
| Figure 2: Map of the flrst floor. |
-
Appendix B-2. Second Floor
The following map displays the locations of the second floor of Crystal Palace gallery, which helps the understanding of the
following Radiance geometry files: design_galleriesW_2floor.rad and design_galleriesE_2floor.rad
 |
| Figure 3: Map of the second floor (west and east sections). |
Due to the symmetric nature of the second floor of the center section, floor covering for one quarter of the center section
was designed first; the other parts were “mirrored” by rotation and translation operations. The following diagram shows how
a quarter of center section was labeled; and it helps the understanding of the Radiance geometry file: ‘design_galleriesC_2floor_quarter_tiles.rad’.
 |
| Figure 4: Map of the second floor (one quarter of the center section). |
-
Appendix B-3. Landing Floor
The following map shows the locations and labels of landing floor of the Crystal Palace, which helps the understanding of
the Radiance geometry files ‘design_galleriesW_landingfloor.rad’, ‘design_galleriesC_landingfloor.rad’, and ‘design_galleriesE_landingfloor.rad’.
 |
| Figure 5: Map of the landing floor sections. |
Notes
1 The "decomposition" is done only where '_tri' is a suffix in the file name. [back]
2 Optional. [back]
Change log
date: 02 Sept 2005 done by: Ying Yao, programmer wrote Word document
date: 18 Aug 2006 done by: Sarah Wells, writer edited and tagged document
Copyright 2006 IATH at the University of Virginia. All rights reserved.
|