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 Form•Z 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 Form•Z 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 Form•Z.
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 Form•Z.
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 Form•Z.

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 Form•Z, 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 Form•Z 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 Form•Z 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:

  1. Change the post from blue to yellow color.
  2. Change the surface rail and pattern among the rail from white into red color.
  3. 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.

  1. 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.
  2. 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.
  3. 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.
  4. The geometry shown in Figure 10 is 96 inches in length.
  5. 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."
  6. 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.

  1. 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.
  2. Upper horizontal part of section G, two short “hand posts” are used instead of big tall columns. Refer to Figure 17.
  3. 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:

  1. Landing floor rails and posts.
  2. 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.

  1. Length of DI segment is 94.375 inches.
  2. Length of KC segment is 93.875 inches.
  3. 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:

  1. The rail piece in Figure 11 is directional, we need to create symbol for each different directional segment.
  2. 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.