File: raduser1_6.rtf

package info (click to toggle)
radiance 3R9+20080530-4
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 26,244 kB
  • ctags: 10,546
  • sloc: ansic: 105,887; csh: 3,558; tcl: 3,358; python: 875; makefile: 280; sh: 14
file content (1 line) | stat: -rw-r--r-- 589,157 bytes parent folder | download | duplicates (2)
1
{\rtf1\mac\ansicpg10000\uc1\deff0\stshfdbch0\stshfloch12\stshfhich12\stshfbi0\deflang1033\deflangfe1033{\upr{\fonttbl{\f0\fnil\fcharset256\fprq2{\*\panose 00020206030504050203}Times New Roman;}
{\f1\fnil\fcharset256\fprq2{\*\panose 00020b06040202020202}Arial;}{\f2\fmodern\fcharset77\fprq1{\*\panose 00020703090202050204}Courier New;}{\f3\fnil\fcharset2\fprq2{\*\panose 00020005000000000000}Symbol;}
{\f4\froman\fcharset77\fprq2{\*\panose 00020005000000000000}Times;}{\f5\fnil\fcharset256\fprq2{\*\panose 00020005000000000000}Helvetica;}{\f6\fmodern\fcharset77\fprq1{\*\panose 00020005000000000000}Courier;}
{\f7\fswiss\fcharset77\fprq2{\*\panose 00020b05030304040402}Geneva;}{\f8\froman\fcharset77\fprq2{\*\panose 00000000000000000000}Tms Rmn;}{\f9\fswiss\fcharset77\fprq2{\*\panose 00000000000000000000}Helv;}
{\f10\froman\fcharset77\fprq2{\*\panose 00000000000000000000}MS Serif;}{\f11\fswiss\fcharset77\fprq2{\*\panose 00000000000000000000}MS Sans Serif;}{\f12\fnil\fcharset256\fprq2{\*\panose 00020205020603050602}New York;}
{\f13\fswiss\fcharset77\fprq2{\*\panose 00000000000000000000}System;}{\f14\fnil\fcharset2\fprq2{\*\panose 00050201020108040807}Wingdings;}{\f15\froman\fcharset128\fprq1{\*\panose 00000000000000000000}\'82l\'82r \'96\'be\'92\'a9;}
{\f16\fnil\fcharset129\fprq1{\*\panose 00000000000000000000}\'b9\'d9\'c5\'c1;}{\f17\fnil\fcharset134\fprq2{\*\panose 00000000000000000000}\'cb\'ce\'cc\'e5;}{\f18\fnil\fcharset136\fprq2{\*\panose 00000000000000000000}\'b7s\'b2\'d3\'a9\'fa\'c5\'e9;}
{\f19\fmodern\fcharset128\fprq1{\*\panose 00000000000000000000}\'82l\'82r \'83S\'83V\'83b\'83N;}{\f20\froman\fcharset77\fprq2{\*\panose 00020406040505050203}Century;}{\f21\froman\fcharset77\fprq2{\*\panose 00020b06040305040402}Verdana;}
{\f22\fnil\fcharset256\fprq2{\*\panose 00020b06040305040402}Tahoma;}{\f23\fnil\fcharset2\fprq2{\*\panose 00010106010101010101}Monotype Sorts;}{\f24\fnil\fcharset256\fprq2{\*\panose 00020b08060806040402}Chicago;}
{\f25\fnil\fcharset256\fprq2{\*\panose 00020005000000000000}Monaco;}{\f26\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Venice;}{\f27\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}London;}
{\f28\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Athens;}{\f29\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}San Francisco;}{\f30\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Toronto;}
{\f31\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Cairo;}{\f32\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Los Angeles;}{\f33\fnil\fcharset2\fprq2{\*\panose 00050201020107040206}Zapf Dingbats;}
{\f34\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Bookman;}{\f35\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Helvetica Narrow;}{\f36\fnil\fcharset256\fprq2{\*\panose 00020005000000000000}Palatino;}
{\f37\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Zapf Chancery;}{\f38\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Mobile;}{\f39\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Avant Garde;}
{\f40\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}New Century Schoolbook;}}{\*\ud{\fonttbl{\f0\fnil\fcharset256\fprq2{\*\panose 00020206030504050203}Times New Roman;}{\f1\fnil\fcharset256\fprq2{\*\panose 00020b06040202020202}Arial;}
{\f2\fmodern\fcharset77\fprq1{\*\panose 00020703090202050204}Courier New;}{\f3\fnil\fcharset2\fprq2{\*\panose 00020005000000000000}Symbol;}{\f4\froman\fcharset77\fprq2{\*\panose 00020005000000000000}Times;}
{\f5\fnil\fcharset256\fprq2{\*\panose 00020005000000000000}Helvetica;}{\f6\fmodern\fcharset77\fprq1{\*\panose 00020005000000000000}Courier;}{\f7\fswiss\fcharset77\fprq2{\*\panose 00020b05030304040402}Geneva;}
{\f8\froman\fcharset77\fprq2{\*\panose 00000000000000000000}Tms Rmn;}{\f9\fswiss\fcharset77\fprq2{\*\panose 00000000000000000000}Helv;}{\f10\froman\fcharset77\fprq2{\*\panose 00000000000000000000}MS Serif;}
{\f11\fswiss\fcharset77\fprq2{\*\panose 00000000000000000000}MS Sans Serif;}{\f12\fnil\fcharset256\fprq2{\*\panose 00020205020603050602}New York;}{\f13\fswiss\fcharset77\fprq2{\*\panose 00000000000000000000}System;}
{\f14\fnil\fcharset2\fprq2{\*\panose 00050201020108040807}Wingdings;}{\f15\froman\fcharset128\fprq1{\*\panose 00000000000000000000}\u-211 _\u-205 _ \u26126 _\u26397 _;}{\f16\fnil\fcharset129\fprq1{\*\panose 00000000000000000000}\u-17388 _\u-12075 _;}
{\f17\fnil\fcharset134\fprq2{\*\panose 00000000000000000000}\u23435 _\u20307 _;}{\f18\fnil\fcharset136\fprq2{\*\panose 00000000000000000000}\u26032 _\u32048 _\u26126 _\u-25900 _;}
{\f19\fmodern\fcharset128\fprq1{\*\panose 00000000000000000000}\u-211 _\u-205 _ \u12468 _\u12471 _\u12483 _\u12463 _;}{\f20\froman\fcharset77\fprq2{\*\panose 00020406040505050203}Century;}
{\f21\froman\fcharset77\fprq2{\*\panose 00020b06040305040402}Verdana;}{\f22\fnil\fcharset256\fprq2{\*\panose 00020b06040305040402}Tahoma;}{\f23\fnil\fcharset2\fprq2{\*\panose 00010106010101010101}Monotype Sorts;}
{\f24\fnil\fcharset256\fprq2{\*\panose 00020b08060806040402}Chicago;}{\f25\fnil\fcharset256\fprq2{\*\panose 00020005000000000000}Monaco;}{\f26\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Venice;}
{\f27\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}London;}{\f28\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Athens;}{\f29\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}San Francisco;}
{\f30\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Toronto;}{\f31\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Cairo;}{\f32\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Los Angeles;}
{\f33\fnil\fcharset2\fprq2{\*\panose 00050201020107040206}Zapf Dingbats;}{\f34\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Bookman;}{\f35\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Helvetica Narrow;}
{\f36\fnil\fcharset256\fprq2{\*\panose 00020005000000000000}Palatino;}{\f37\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Zapf Chancery;}{\f38\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Mobile;}
{\f39\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}Avant Garde;}{\f40\fnil\fcharset77\fprq0{\*\panose 00000000000000000000}New Century Schoolbook;}}}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;
\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;
\red192\green192\blue192;}{\stylesheet{\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \snext0 Normal;}{
\s1\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f12\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 1;}{
\s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 2;}{
\s3\ql \li360\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin360\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 3;}{
\s4\ql \li360\ri0\widctlpar\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin360\itap0 \f12\ul\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 4;}{
\s5\ql \li720\ri0\widctlpar\aspalpha\aspnum\faauto\outlinelevel4\adjustright\rin0\lin720\itap0 \b\f12\fs20\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 5;}{
\s6\ql \li720\ri0\widctlpar\aspalpha\aspnum\faauto\outlinelevel5\adjustright\rin0\lin720\itap0 \f12\fs20\ul\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 6;}{
\s7\ql \li720\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel6\adjustright\rin0\lin720\itap0 \i\f12\fs20\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 7;}{\*\cs10 \additive 
Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv 
\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 Normal Table;}{\*\cs15 \additive \super \sbasedon10 \styrsid10355392 endnote reference;}{
\s16\qc \li0\ri0\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\fs36\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 
\sbasedon0 \snext16 \styrsid10355392 Cover;}{\s17\ql \li1440\ri1440\widctlpar\brdrt\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin1440\lin1440\itap0 \f12\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext17 \styrsid10355392 
Title Line;}{\s22\ql \li1440\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin1440\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon0 \snext0 toc 3;}{\s23\ql \li720\ri720\widctlpar
\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon0 \snext0 toc 2;}{\s24\ql \li0\ri720\widctlpar
\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon0 \snext0 toc 1;}{\s34\ql \li0\ri0\widctlpar
\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon0 \snext34 footer;}{\s35\ql \li0\ri0\widctlpar
\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon0 \snext35 header;}{\*\cs36 \additive \fs16\up6 \sbasedon10 footnote reference;}{
\s37\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon0 \snext37 footnote text;}{\s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl
\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon1 \snext43 Example Heading;}{\s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon43 \snext44 Example Text;}{
\s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 
\sbasedon0 \snext45 Command Heading;}{\s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon2 \snext46 Command Text;}{\s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 
\f12\fs20\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon0 \snext47 Glossary Entry;}{\s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 
\f12\fs20\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon0 \snext48 Definition Entry;}{\s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 
\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon0 \snext49 Notes;}{\s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 
\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 \sbasedon49 \snext50 Note Continued;}}{\*\revtbl {Unknown;}{Greg Ward;}}{\*\rsidtbl \rsid10355392}{\info{\title Introduction to Radiance}{\author Greg Ward}{\operator Greg Ward}{\creatim\yr2007\mo10\dy8\hr14\min44}
{\revtim\yr2007\mo10\dy8\hr14\min45}{\version3}{\edmins2}{\nofpages110}{\nofwords21657}{\nofchars123447}{\nofcharsws151601}{\vern24971}}\margl2160\margr1440 
\facingp\widowctrl\ftnbj\aenddoc\hyphhotz0\margmirror\sprstsp\otblrul\brkfrm\sprstsm\truncex\nolead\msmcap\lytprtmet\hyphcaps0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow0
\jexpand\viewkind1\viewscale100\bdrrlswsix\nolnhtadjtbl\rsidroot10355392 \fet0\sectd \pgnrestart\linex0\endnhere\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}
{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}
{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain 
\s16\qc \li0\ri0\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\fs36\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid10355392 
\par 
\par 
\par 
\par 
\par 
\par }{\b\fs48\insrsid10355392 RADIANCE
\par }{\b\insrsid10355392 
\par User's Manual
\par 
\par }{\b\outl\insrsid10355392 DRAFT}{\insrsid10355392 
\par 
\par 
\par 
\par 
\par 
\par 
\par 
\par }{\fs28\insrsid10355392 Lighting Systems Research Group
\par Lawrence Berkeley Laboratory}{\insrsid10355392 
\par }{\fs28\insrsid10355392 Berkeley, California}{\insrsid10355392 
\par 
\par 
\par }{\fs28\insrsid10355392 Cindy Larson
\par February 1, 1991
\par }{\insrsid10355392 
\par 
\par 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10355392 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \page 
\par }\pard \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }{\fs28\insrsid10355392 Acknowledgements
\par 
\par }\pard\plain \s17\ql \li1440\ri1440\widctlpar\brdrt\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin1440\lin1440\itap0 \f12\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par 
\par }\pard \ql \li1440\ri1440\widctlpar\tx4680\aspalpha\aspnum\faauto\adjustright\rin1440\lin1440\itap0 {\insrsid10355392 Greg Ward\tab Program Manager
\par \tab Principal Author
\par 
\par Francis Rubinstein\tab Program Manager
\par 
\par Sam Berman\tab Principal Investigator
\par 
\par Rudy Verderber\tab Group Leader
\par 
\par Steve Selkowitz\tab Program Leader
\par 
\par Robert Clear\tab Technical Advisor
\par 
\par Charles Ehrlich\tab Technical Advisor
\par 
\par Paul Heckbert\tab Technical Advisor
\par 
\par Cindy Larson\tab Documentation
\par 
\par Anat Grynberg\tab Program Validation
\par 
\par Jennifer Schuman\tab CAD Interfaces
\par 
\par Ning Zhang\tab CAD Interfaces
\par 
\par 
\par 
\par 
\par }\pard \ql \li0\ri900\widctlpar\tx4680\aspalpha\aspnum\faauto\adjustright\rin900\lin0\itap0\pararsid10355392 {\insrsid10355392 
This work was supported by the Assistant Secretary of Conservation and Renewable Energy, Office of Building Energy Research and Development, Buildings Equipment Division of the U.S. Department of Energy under Contract No. DE-AC-03-76SF00098.
\par }\pard \ql \li1440\ri1440\widctlpar\tx4320\aspalpha\aspnum\faauto\adjustright\rin1440\lin1440\itap0 {\insrsid10355392 
\par }\pard\plain \s24\ql \li0\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\field{\*\fldinst {\insrsid10355392  TOC \\o "1-3"  }}{\fldrslt {
\insrsid10355392 Introduction to Radiance\tab 1
\par }\pard\plain \s23\ql \li720\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Radiance Capabilities\tab 2
\par System Requirements\tab 5
\par Using this Manual\tab 6
\par }\pard\plain \s24\ql \li0\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Radiance Installation\tab 8
\par }\pard\plain \s23\ql \li720\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Getting Started\tab 8
\par }\pard\plain \s24\ql \li0\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Scene Descriptions\tab 9
\par }\pard\plain \s23\ql \li720\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Introduction\tab 9
\par Basic Format of Input Files\tab 9
\par Materials\tab 12
\par Surfaces\tab 14
\par Instances\tab 22
\par Textures\tab 23
\par Patterns\tab 24
\par Mixtures\tab 26
\par Antimatter\tab 26
\par Light Sources\tab 27
\par Importing from CAD Systems\tab 31
\par Tutorial Example\tab 32
\par }\pard\plain \s22\ql \li1440\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin1440\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Input Files\tab 35
\par Materials\tab 35
\par Surfaces\tab 37
\par Instances\tab 56
\par Textures\tab 56
\par Patterns\tab 57
\par Light Sources\tab 60
\par }\pard\plain \s24\ql \li0\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Image Generation\tab 67
\par }\pard\plain \s23\ql \li720\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Introduction\tab 67
\par Scene Compilation\tab 67
\par Batch\tab 69
\par Interactive\tab 71
\par Other Lighting Calculations\tab 73
\par Tutorial Example\tab 74
\par }\pard\plain \s22\ql \li1440\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin1440\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Scene Compilation\tab 74
\par Batch\tab 75
\par Interactive\tab 75
\par Other Lighting Calculations\tab 76
\par }\pard\plain \s24\ql \li0\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Image Manipulation\tab 77
\par }\pard\plain \s23\ql \li720\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Introduction\tab 77
\par Image Display & Conversion\tab 77
\par Image Processing Filters\tab 78
\par Other Utilities\tab 79
\par Tutorial Example\tab 80
\par }\pard\plain \s22\ql \li1440\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin1440\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Image Display & Conversion\tab 80
\par Image Processing Filters\tab 80
\par Other Utilities\tab 80
\par }\pard\plain \s24\ql \li0\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Advanced Topics\tab 81
\par }\pard\plain \s23\ql \li720\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Introduction\tab 81
\par Auxiliary Files\tab 81
\par Using Make\tab 82
\par Simulation Options\tab 84
\par Animation\tab 84
\par Tutorial Example\tab 85
\par }\pard\plain \s22\ql \li1440\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin1440\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Coordinate Mapping\tab 85
\par Textures\tab 86
\par Instancing\tab 88
\par }\pard\plain \s24\ql \li0\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Glossary\tab 93
\par Terms\tab 97
\par }\pard \s24\ql \li0\ri720\widctlpar\tldot\tx8280\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin720\lin0\itap0 {\insrsid10355392 Programs\tab 101
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 }}\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 
\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \sect }\sectd \pgnrestart\linex0\endnhere\sectdefaultcl\sftnbj {\headerl \pard\plain \s35\ql \li0\ri0\widctlpar
\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Introduction to Radiance
\par }}{\headerr \pard\plain \s35\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab Introduction to Radiance
\par }}{\footerl \pard\plain \s34\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\field{\*\fldinst {\insrsid10355392  DATE  }}{\fldrslt {
\insrsid10355392 10/8/07}}}{\insrsid10355392  Draft\tab - }{\field{\*\fldinst {\insrsid10355392  PAGE  }}{\fldrslt {\insrsid10355392 6}}}{\insrsid10355392  -\tab 
\par }}{\footerr \pard\plain \s34\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab - }{\field{\*\fldinst {\insrsid10355392  
PAGE  }}{\fldrslt {\insrsid10355392 7}}}{\insrsid10355392  -\tab }{\field{\*\fldinst {\insrsid10355392  DATE  }}{\fldrslt {\insrsid10355392 10/8/07}}}{\insrsid10355392  Draft
\par }}\pard\plain \s1\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f12\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Introduction to Radiance
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Radiance is a software package for accurately calculating and displaying lighting.  The program takes a scene description with light sources, sun, sky, buildings, rooms, furniture
, etc. and produces spectral radiance values which can be collected in a "photo-accurate" color image.  As a lighting design tool, Radiance represents a significant advance in the state of the art.  Since Radiance is a research tool, it lacks many of the 
user-friendly features found in commercial software packages.  However, Radiance is more versatile than other lighting simulations and faster than other ray tracing programs, with some important capabilities not found in either.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 By simulating the behavio
r of light, Radiance calculates radiance (or luminance) and predicts the appearance of any geometrically described scene, usually an architectural space.  The software fulfills the traditional role of a renderer, except that this renderer provides an accu
rate simulation of lighting from lamp photometric data and advanced surface reflectance models which can correctly account for both diffuse and specular interreflection in complicated spaces.  Because the calculations are accurate, they can be used for ma
king design decisions, and the images produced by Radiance provide a client with a genuine preview of how the design will appear when it is completed.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\b\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Radiance was written for lighting designers who want to produce energy efficient designs that require some innovation, and are hampered by the limitations of conventional methods.  When designers want to use fixtures with unusual distributions, non-standa
rd fixture placements, indirect lighting, task lighting, or daylighting, they currently have to draw solely
 on their own resources and experience to create a good solution.  Radiance allows lighting designers, engineers, architects, and their clients to visualize their solutions to these more difficult problems during the design phase, and to try out alternati
ve designs and novel approaches without risk.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
You might say "This sounds great, but why not just use conventional CAD rendering systems?"  The problem with current computer aided drafting (CAD) software is that it produces images that are not predictive of
 lighting.  For example, a few CAD systems will calculate shadows from a small number of light sources, but they will not consider light source distributions or interreflections between objects.  Commercial lighting programs, on the other hand, are incapa
ble of simulating realistic spaces in their full detail.  Some of the more advanced lighting programs calculate interreflection only in limited circumstances such as empty rectangular spaces, and they do not account for obstructions (such as partitions), 
co
lor, and the effect of non-Lambertian surfaces (such as metal and glass).  Since all the subtleties of lighting and reflections the viewer normally associates with real scenes are present in the final images, there can be a very strong psychological impac
t when viewing a computer graphic image generated by Radiance. 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Lighting simulation is typically a two or three step process.  The first step is describing the geometry, which is usually done within a CAD system.  Note that this step may already have been 
carried out by the architect, so only a small extra effort is required on the part of the lighting designer.  The second step, if it was not included in the geometric description, is the addition of materials and fixtures from libraries and manufacturer's
 catalogs to complete the model for the simulation software.  The third step is running the lighting simulation program and evaluating the output.  As a result of this evaluation, the designer will probably return to step two and, in some cases, will go a
ll the way back to step one for another iteration.  This process continues until the designer and client are satisfied that the choice and layout of the lighting system will provide the level and quality of illumination desired for the space.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Radiance has been compared to scale model measurements and different lighting calculation programs in validation studies and comparisons of empty rooms and diffuse surfaces that show good correlation with measured data and conventional lighting simulation
s.  The program
's accuracy has also been verified for unempty spaces, but more work is needed in the validation of non-Lambertian surfaces.  Radiance is capable of going beyond the limitations of other programs and the simple cases presented in this documentation.
\par }\pard\plain \s4\ql \li360\ri0\widctlpar\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin360\itap0 \f12\ul\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Radiance Capabilities
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Radiance uses the simulation technique called image-oriented ray tracing, which is particularly well-suited to computer graphics and visualization.  The path of light is tracked from its presumed destination to one or more sources, taking 
into account specular reflection, transmission, and virtually any geometry.  Following light paths in reverse is a much more efficient approach than tracing them from the light sources, because only a minute percentage of the photons that are emitted ente
r a viewer's eyes.  If light were followed from the sources, most of the calculation would be wasted on rays that do not contribute to the desired image.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 The input to the program is the scene geometry, which describes the location and shape of every surf
ace, and the materials, which describe how light interacts with each surface.  Rays are followed from the viewpoint into the scene, and then are traced to other surfaces and light sources to calculate luminance.  In this way, ray tracing calculates lumina
nce directly, which is ideal for the visualization of illuminated spaces since images are just collections of luminance values.  Lighting calculation based on illuminance must convert to luminance prior to display, which results in a significant loss of i
nf
ormation.  Recent advances in ray tracing techniques have resulted in a complete lighting calculation that incorporates diffuse interreflection and daylight.  Since the quality of the images created by Radiance depends on the number of rays traced, a larg
e number of operations must be performed to produce a high-quality image.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The three main Radiance programs use ray tracing to calculate luminance and then (1) display images interactively with RVIEW, or (2) produce picture files in batch mode with RPICT, o
r (3) compute specific values for other purposes with RTRACE.  Numerous other programs provide "filtering" (translation) within and between various formats, image processing and display functions, procedural object generation, light distribution calculati
on, and so forth.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li720\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 {\insrsid10355392 {\pict{\*\picprop\shplid1025{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}
\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw417\pich264\picwgoal8340\pichgoal5280\macpict\bliptag-1195838848{\*\blipuid b8b8f280a6180a037660dc2b3618c1f0}
18fbffffffff010701a01101a00082a0008c01000affffffff010701a0090000000000000000510025001c004a006509ffffffffffffffff58a10096000c0200
00000200000000000000a1009a000800010000000c000001000a002b001c004300630300030d00092b3335065363656e650d28004100260b4465736372697074
696f6ea0009701000affffffff010701a009000000000000000051007f001c00a4006509ffffffffffffffff58a10096000c020000000200000000000000a100
9a0008fffb0000000e000001000a008b001c009700632b0b54064f6374726565a0009701000affffffff010701a00900000000000000005100ac001c00d10065
09ffffffffffffffff58a10096000c020000000200000000000000a1009a0008000200000015000001000a00b2002a00ca00562800bc002b0a417578696c6961
72790d2b0b0c0546696c6573a0009701000affffffff010701a009000000000000000031000100010014003809ffffffffffffffff38a10096000c0200000002
00000000000000a1009a0008fffc00000015000001000a000400050010003328000e00060947656e657261746f72a0009701000affffffff010701a009000000
000000000031000100520014008909ffffffffffffffff38a10096000c020000000200000000000000a1009a0008fffc0000000d000001000a0004005e001000
7b29590578666f726da0009701000affffffff010701a009000000000000000031005b0025006e005c09ffffffffffffffff38a10096000c0200000002000000
00000000a1009a0008fffc0000000c000001000a005e0032006a004d2800680033056f636f6e76a0009701000affffffff010701a00900000000000000003100
6d00a3008000da09ffffffffffffffff38a10096000c020000000200000000000000a1009a0008fffc0000000d000001000a007000af007c00cd2b7d12067274
72616365a0009701000affffffff010701a009000000000000000031008800a3009b00da09ffffffffffffffff38a10096000c020000000200000000000000a1
009a0008fffb0000000a000001000a008b00b3009700ca2b041b057270696374a0009701000affffffff010701a00900000000000000003100a300a300b600da
09ffffffffffffffff38a10096000c020000000200000000000000a1009a0008fffc0000000d000001000a00a600b000b200cc2800b000b1057276696577a000
9701000affffffff010701a0090000000000000000510088010600ad014f09ffffffffffffffff58a10096000c020000000200000000000000a1009a0008fffc
0000000f000001000a0094011900a0013b28009e011a0750696374757265a0009701000affffffff010701a00900000000000000005100e201060107014f09ff
ffffffffffffff58a10096000c020000000200000000000000a1009a0008fffc0000000c000001000a00ee011d00fa01382b045a05496d616765a0009701000a
ffffffff010701a009000000000000000051002e01060053014f09ffffffffffffffff58a10096000c020000000200000000000000a1009a000800020000000b
000001000a0034011b004c013928003e011e064f746865720d28004a011c0656616c756573a0009701000affffffff010701a009000000000000000031006401
0f0077014609ffffffffffffffff38a10096000c020000000200000000000000a1009a0008fffb0000000d000001000a0067011b007301392a27067076616c75
65a0009701000affffffff010701a00900000000000000003100be010f00d1014609ffffffffffffffff38a10096000c020000000200000000000000a1009a00
08fffb0000000e000001000a00c1011b00cd013a2a5a06447269766572a0009701000affffffff010701a0090000000000000000310091016900a401a009ffff
ffffffffffff38a10096000c020000000200000000000000a1009a0008fffc0000000c000001000a0094017800a0019228009e01790646696c746572a0009701
000affffffff010701a0070002000222006300a2005aa10064000a4d44504c000901010002a0008c71001e008d0095009400a3009100a3009400950091009500
8d0095009100a3a100d80004ffff8000a100d60004ffff8000a000d7a100b400050000020909070001000108001722009100643100a000b5a100d60004ffff80
00a000d7a000d9a100d60004ffff8000a100d80004ffff8000a000bea000d9080008220091006408002200910076080022009100880800a100d80004ffff8000
a000bfa000d9a000d7a0008da1006400084d44504c000a0000a10064000a4d44504c000901010002a0008c71001e004c003c005b0043005b0040004c003c004c
0040004c0043005b0040a100d80004ffff8000a100d60004ffff8000a000d7a100b40005000002090908001722004900400003a000b5a100d60004ffff8000a0
00d7a000d9a100d60004ffff8000a100d80004ffff8000a000bea000d908000822004900400002a100d80004ffff8000a000bfa000d9a000d7a0008da1006400
084d44504c000a0000a10064000a4d44504c000901010002a0008c71001e00700045007f004c007f004900700045007000490070004c007f0049a100d80004ff
ff8000a100d60004ffff8000a000d7a100b40005000002090908001722006d00490003a000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100
d80004ffff8000a000bea000d908000822006d00490002a100d80004ffff8000a000bfa000d9a000d7a0008da1006400084d44504c000a0000a10064000a4d44
504c000901010002a0008c71001e006d0033007b003a006d0037007b003a007b0037007b0033006d0037a100d80004ffff8000a100d60004ffff8000a000d7a1
00b40005000002090908001722007f003700fca000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100d80004ffff8000a000bea000d9080008
22007e003700fda100d80004ffff8000a000bfa000d9a000d7a0008da1006400084d44504c000a0000a10064000a4d44504c000901010002a0008c71001e0018
00210025002e0025002e001d0021001b0024001800260025002ea100d80004ffff8000a100d60004ffff8000a000d7a100b40005000002090908001722001300
1c0808a000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100d80004ffff8000a000bea000d9080008220013001c0606a100d80004ffff8000
a000bfa000d9a000d7a0008da1006400084d44504c000a0000a10064000a4d44504c000901010002a0008c71001e00130057001f006400130064001f005c001c
005a001a005700130064a100d80004ffff8000a100d60004ffff8000a000d7a100b400050000020909080017220025005208f7a000b5a100d60004ffff8000a0
00d7a000d9a100d60004ffff8000a100d80004ffff8000a000bea000d9080008220025005206f9a100d80004ffff8000a000bfa000d9a000d7a0008da1006400
084d44504c000a0000a10064000a4d44504c000901010002a0008c71001e00200064002e006f002e0064002000690022006c0024006f002e0064a100d80004ff
ff8000a100d60004ffff8000a000d7a100b4000500000209090800172200130076f60fa000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100
d80004ffff8000a000bea000d90800082200130076fb07220021006c0001a100d80004ffff8000a000bfa000d9a000d7a0008da1006400084d44504c000a0000
a100d80004ffff8000a100d60004ffff8000a000d7a100b400050000020909080017220064005b2400a000b5a100d60004ffff8000a000d7a000d9a100d60004
ffff8000a100d80004ffff8000a000bea000d9a0008c080008220064005b0800220064006d0800a0008da100d80004ffff8000a000bfa000d9a000d7a100d800
04ffff8000a100d60004ffff8000a000d7a100b4000500000209090800172200be00641b00a000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000
a100d80004ffff8000a000bea000d9a0008c0800082200be006408002200be00760800a0008da100d80004ffff8000a000bfa000d9a000d7a100d80004ffff80
00a100d60004ffff8000a000d7a100b400050000020909080017220064007f001ba000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100d800
04ffff8000a000bea000d9a0008c080008220064007f0008220076007f0008a0008da100d80004ffff8000a000bfa000d9a000d7a100d80004ffff8000a100d6
0004ffff8000a000d7a100b4000500000209090800172200be007f00e5a000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100d80004ffff80
00a000bea000d9a0008c0800082200bd007f00f82200ab007f00f8a0008da100d80004ffff8000a000bfa000d9a000d7a10064000a4d44504c000901010002a0
008c71001e007b0095008200a3007f00a300820095007f0095007b0095007f00a3a100d80004ffff8000a100d60004ffff8000a000d7a100b400050000020909
08001722007f007f1600a000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100d80004ffff8000a000bea000d908000822007f007f08002200
7f00910300a100d80004ffff8000a000bfa000d9a000d7a0008da1006400084d44504c000a0000a10064000a4d44504c000901010002a0008c71001e009f0095
00a600a300a300a300a6009500a30095009f009500a300a3a100d80004ffff8000a100d60004ffff8000a000d7a100b4000500000209090800172200a3007f16
00a000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100d80004ffff8000a000bea000d90800082200a3007f08002200a300910300a100d800
04ffff8000a000bfa000d9a000d7a0008da1006400084d44504c000a0000a100d80004ffff8000a100d60004ffff8000a000d7a100b400050000020909080017
22007600d91b00a000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100d80004ffff8000a000bea000d9a0008c08000822007600d908002200
7600eb0800a0008da100d80004ffff8000a000bfa000d9a000d7a100d80004ffff8000a100d60004ffff8000a000d7a100b4000500000209090800172200f400
be00c1a000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100d80004ffff8000a000bea000d9a0008c0800082200f300be00f82200e100be00
f82200cf00be00f82200bd00be00f8a0008da100d80004ffff8000a000bfa000d9a000d7a100d80004ffff8000a100d60004ffff8000a000d7a100b400050000
02090908001722009100d91b00a000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100d80004ffff8000a000bea000d9a0008c080008220091
00d9080022009100eb0800a0008da100d80004ffff8000a000bfa000d9a000d7a100d80004ffff8000a100d60004ffff8000a000d7a100b40005000002090908
00172200ac00d91b00a000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100d80004ffff8000a000bea000d9a0008c0800082200ac00d90800
2200ac00eb0800a0008da100d80004ffff8000a000bfa000d9a000d7a10064000a4d44504c000901010002a0008c71001e00a300f800ac010600a3010600ac00
fb00a900f900a600f800a30106a100d80004ffff8000a100d60004ffff8000a000d7a100b4000500000209090800172200ac00f405fda000b5a100d60004ffff
8000a000d7a000d9a100d60004ffff8000a100d80004ffff8000a000bea000d90800082200ac00f405fda100d80004ffff8000a000bfa000d9a000d7a0008da1
006400084d44504c000a0000a10064000a4d44504c000901010002a0008c71001e009000f8009a0106009a0106009600f8009300f9009000fb009a0106a100d8
0004ffff8000a100d60004ffff8000a000d7a100b40005000002090908001722009100f40502a000b5a100d60004ffff8000a000d7a000d9a100d60004ffff80
00a100d80004ffff8000a000bea000d908000822009100f40502a100d80004ffff8000a000bfa000d9a000d7a0008da1006400084d44504c000a0000a100d800
04ffff8000a100d60004ffff8000a000d7a100b40005000002090908001722007600f400caa000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000
a100d80004ffff8000a000bea000d9a0008c08000822007500f400f822006300f400f822005100f400f8a0008da100d80004ffff8000a000bfa000d9a000d7a1
0064000a4d44504c000901010002a0008c71001e00f000f800f7010600f4010600f700f800f400f800f000f800f40106a100d80004ffff8000a100d60004ffff
8000a000d7a100b4000500000209090800172200f400be3a00a000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100d80004ffff8000a000be
a000d90800082200f400be08002200f400d008002200f400e208002200f400f40300a100d80004ffff8000a000bfa000d9a000d7a0008da1006400084d44504c
000a0000a10064000a4d44504c000901010002a0008c71001e00af012600be012d00be012a00af012600af012a00af012d00be012aa100d80004ffff8000a100
d60004ffff8000a000d7a100b4000500000209090800172200ac012a0003a000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100d80004ffff
8000a000bea000d90800082200ac012a0002a100d80004ffff8000a000bfa000d9a000d7a0008da1006400084d44504c000a0000a10064000a4d44504c000901
010002a0008c71001e00d3012600e2012d00e2012a00d3012600d3012a00d3012d00e2012aa100d80004ffff8000a100d60004ffff8000a000d7a100b4000500
000209090800172200d0012a0003a000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100d80004ffff8000a000bea000d90800082200d0012a
0002a100d80004ffff8000a000bfa000d9a000d7a0008da1006400084d44504c000a0000a10064000a4d44504c000901010002a0008c71001e0079012f008801
36008801330079012f007901330079013600880133a100d80004ffff8000a100d60004ffff8000a000d7a100b40005000002090908001722007601330003a000
b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100d80004ffff8000a000bea000d908000822007601330002a100d80004ffff8000a000bfa000
d9a000d7a0008da1006400084d44504c000a0000a10064000a4d44504c000901010002a0008c71001e0076011d00840124007601210084012400840121008401
1d00760121a100d80004ffff8000a100d60004ffff8000a000d7a100b400050000020909080017220088012100fca000b5a100d60004ffff8000a000d7a000d9
a100d60004ffff8000a100d80004ffff8000a000bea000d9080008220087012100fda100d80004ffff8000a000bfa000d9a000d7a0008da1006400084d44504c
000a0000a10064000a4d44504c000901010002a0008c71001e0055012f00640136006401330055012f005501330055013600640133a100d80004ffff8000a100
d60004ffff8000a000d7a100b40005000002090908001722005201330003a000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100d80004ffff
8000a000bea000d908000822005201330002a100d80004ffff8000a000bfa000d9a000d7a0008da1006400084d44504c000a0000a10064000a4d44504c000901
010002a0008c71001e0052011d006001240052012100600124006001210060011d00520121a100d80004ffff8000a100d60004ffff8000a000d7a100b4000500
00020909080017220064012100fca000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100d80004ffff8000a000bea000d90800082200630121
00fda100d80004ffff8000a000bfa000d9a000d7a0008da1006400084d44504c000a0000a10064000a4d44504c000901010002a0008c71001e003c00f8004301
0600400106004300f8004000f8003c00f800400106a100d80004ffff8000a100d60004ffff8000a000d7a100b40005000002090908001722004000f40400a000
b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100d80004ffff8000a000bea000d908000822004000f40300a100d80004ffff8000a000bfa000
d9a000d7a0008da1006400084d44504c000a0000a10064000a4d44504c000901010002a0008c71001e008d015b00940169009101690094015b0091015b008d01
5b00910169a100d80004ffff8000a100d60004ffff8000a000d7a100b400050000020909080017220091014e0d00a000b5a100d60004ffff8000a000d7a000d9
a100d60004ffff8000a100d80004ffff8000a000bea000d9080008220091014e0800a100d80004ffff8000a000bfa000d9a000d7a0008da1006400084d44504c
000a0000a10064000a4d44504c000901010001a0008c71001e009f014e00a6015c00a3014e009f015c00a3015c00a6015c00a3014ea100d80004ffff8000a100
d60004ffff8000a000d7a100b4000500000209090800172200a3015c0d00a000b5a100d60004ffff8000a000d7a000d9a100d60004ffff8000a100d80004ffff8000a000bea000d90800082200a3015c0800a100d80004ffff8000a000bfa000d9a000d7a0008da1006400084d44504c000a0000a0008da00083ff}
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The Radiance system allows the user to describe a scene and generate images based on three basic surface types:  polygons, spheres, and cones.  From these primitive shapes, compound surfaces of arbitrary complexity can be construc
ted and then manipulated and displayed.  Through a process called instancing, hierarchical scenes containing millions of surfaces have been constructed.  The interface to Radiance is command-based for maximum flexibility.  Input files are created by CAD p
rograms, text editors, and object generator programs.  There is a library of useful generators to make prisms, patches, and so on, and objects such as furniture and light sources are provided.  The UNIX}{\up6\insrsid10355392  }{\insrsid10355392 
utility can be used to automate scene creation and rendering, and several other bundled programs simplify the creation of custom generators.  Import programs for a few popular CAD systems are provided.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Basic Radiance material types include composite, metal, glass, and self-luminous surfaces.  Each material type describes the basic interaction of light with a surface, and variable parameters determine things such as color, polish, refractive index, and i
ntensity.  To these materials one can add procedural and scanned textures and patterns that add local variat
ions to the surface orientation, color or intensity.  By increasing the realism of the reflection model in this way, the viewer gets a much better feel for the lighting present in a space. 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The Radiance system is composed of a few dozen C programs that have been compiled and run on DEC and Sun workstations, Apple Mac II's (under A/UX), CRAY's, and a number of other UNIX machines.  The software was developed at Lawrence Berkeley Laboratory (L
BL), and has been in use since 1987 by the Architecture Department at the University of California at Berkeley, which augments its computer modeling courses with rendering and simulation.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The computer aided drafting (CAD) system used most frequently to produce geometric descriptions for Radiance is GDS (Graphical Design System) from McDonnell Douglas, because it happens to be installed on the UCB Architecture Department machines.  Although
 it takes little effort to write translators from other CAD formats, limited access to these systems has curtailed LBL's translator development.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 System Requirements
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Radiance is used by architectural and engineering firms that have the necessary computer equipment and expertise, and a desire to produce better designs.  Radiance is best suited for color UNIX workstations, but it will work on any machine running the UNI
X operating system including IBM's running AIX, and Macintoshes running A/UX.  Ideally, a computer system for the prediction of lighting should consist of a color workstation with a pointer device such as a tablet or mouse,
 optional input devices such as scanners or frame grabbers for obtaining material properties and textures, and optional output devices such as color printers or film recorders for recording simulation results.  The platform must have enough memory and com
puting power to provide good interactive response time and reasonable turnaround of large batch jobs.  The system should have access to large amounts of secondary storage such as bulletin boards and CD-ROM catalogs to aid in the development of building de
scriptions.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 Radiance includes C source code for compiling on BSD or AT&T UNIX platforms, and has been compiled for the following hardware platforms:
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par \tab \bullet  Sun 3, Sun 4 workstations
\par \tab \bullet  DECstation running ULTRIX
\par \tab \bullet  Silicon Graphics IRIS
\par \tab \bullet  Mac II running A/UX
\par 
\par Radiance currently supports the following graphics interfaces:
\par 
\par \tab \bullet  X11 8-bit color or greyscale and 24-bit color displays
\par \tab \bullet  X10 8-bit color or greyscale displays
\par \tab \bullet  SunView 8-bit color or greyscale
\par \tab \bullet  NeWS color or greyscale
\par \tab \bullet  AED 512 color graphics terminal
\par 
\par Radiance comes with translators for the following file types:
\par 
\par \tab \bullet  GDS Things File
\par \tab \bullet  IES Luminaire Data
\par \tab \bullet  Sun 8 and 24-bit Rasterfiles
\par \tab \bullet  Architrion Text File
\par \tab \bullet  AutoCAD DXF (next release)
\par \tab \bullet  Targa 8, 16, 24 and 32-bit images
\par 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Using this Manual
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Since the Radiance system requires complete scene descriptions before images can be generated and then manipulated, this manual follows this same basic organization: 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par \tab Scene Descriptions
\par \tab Image Generation (Rendering)
\par \tab Image Manipulation
\par \tab Advanced Topics
\par \tab 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 R
eaders who are already familiar with the basic capabilities of Radiance and would like to learn more about using more sophisticated features will find examples throughout this document, and may benefit from a special section devoted entirely to advanced t
opics (such as auxiliary files, simulation options, and animation).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Tutorial examples have been provided at the end of the Scene Description, Image Generation, and Image Manipulation sections for readers who are interested in getting started with Radiance.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Glossary, Terms, and Programs sections are included at the end of this document to help the reader understand some of the technical terminology used in this document, as well as some of the basic concepts required for understanding ray tracing in general 
and Radiance in particular.  Since this user's manual does not contain detailed descriptions of how to use the various hardware platforms, operating systems, graphics interfaces, and translators, it is expected that readers already have a working knowledg
e of the systems they are using to run Radiance.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
It is recommended that readers use the Radiance Reference Manual as a complete guide to Radiance commands and input primitives, since this user's manual does not include descriptions of all commands and primitives.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par \sect }\sectd \linex0\endnhere\sectdefaultcl\sftnbj {\headerl \pard\plain \s35\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Radiance Installation
\par }}{\headerr \pard\plain \s35\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab Radiance Installation
\par }}{\footerl \pard\plain \s34\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\field{\*\fldinst {\insrsid10355392  DATE  }}{\fldrslt {
\insrsid10355392 10/8/07}}}{\insrsid10355392  Draft\tab - }{\field{\*\fldinst {\insrsid10355392  PAGE  }}{\fldrslt {\insrsid10355392 8}}}{\insrsid10355392  -\tab 
\par }}{\footerr \pard\plain \s34\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab - }{\field{\*\fldinst {\insrsid10355392  
PAGE  }}{\fldrslt {\insrsid10355392 9}}}{\insrsid10355392  -\tab }{\field{\*\fldinst {\insrsid10355392  DATE  }}{\fldrslt {\insrsid10355392 10/8/07}}}{\insrsid10355392  Draft
\par }}\pard\plain \s1\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f12\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Radiance Installation
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Getting Started
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
The most current release of the Radiance synthetic imaging system is the fourth release, Version 1.3, and it includes all source files.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 You may want to start by reading the basic Radiance Reference Manual d
ocumentation contained in "doc/ray.1".  Use troff with the "-ms" macro package.  Individual manual pages may be found in the subdirectory "doc/man1".  Use the "-man" macro package for these documents.  If you have a question, the answer is probably in one
 of these manuals, but you must read everything very carefully.  Also, read the file called "doc/notes/ReleaseNotes".
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 The executables in bin.sun3 should be installed on all Sun 3 machines, those in bin.sun4 on Sun 4 machines, bin.IRIS on SGI Iris, and bin.
DEC on DECstations, and bin.mac on MacIntoshes running A/UX 2.0.  Not all of the programs in the source directory have been compiled on every machine, and not all are documented in the manual pages.  In general, the documentation of the source is non-exis
tent.  If the binaries for your hardware are not present, you will have to compile the programs yourself; check the Makefiles carefully before compiling.  The X drivers in this distribution work with X10R4 and X11Rany.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 The files in the "lib" subdirectory s
hould be installed in "/usr/local/lib/ray".  If this location is different on your system, you will have to define RAYPATH to override the default, or change the LIBDIR variable in "src/rt/Makefile" and rebuild the renderers.  RAYPATH is an environment va
riable, similar to PATH, that tells the programs where and in what order to look for auxiliary files.  The default RAYPATH in this distribution is ":/usr/local/lib/ray" which searches in the current directory, then "/usr/local/lib/ray".
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 The first thing you
 should do is run the script in this directory called "RUNME" that requests you to provide some information about your use of Radiance.  It will take only a moment to provide some basic information from and e-mail it back.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par Good luck!
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par \sect }\sectd \linex0\endnhere\sectdefaultcl\sftnbj {\headerl \pard\plain \s35\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Scene Descriptions
\par }}{\headerr \pard\plain \s35\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab Scene Descriptions
\par }}{\footerl \pard\plain \s34\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\field{\*\fldinst {\insrsid10355392  DATE  }}{\fldrslt {
\insrsid10355392 10/8/07}}}{\insrsid10355392  Draft\tab - }{\field{\*\fldinst {\insrsid10355392  PAGE  }}{\fldrslt {\insrsid10355392 28}}}{\insrsid10355392  -\tab 
\par }}{\footerr \pard\plain \s34\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab - }{\field{\*\fldinst {\insrsid10355392  
PAGE  }}{\fldrslt {\insrsid10355392 27}}}{\insrsid10355392  -\tab }{\field{\*\fldinst {\insrsid10355392  DATE  }}{\fldrslt {\insrsid10355392 10/8/07}}}{\insrsid10355392  Draft
\par }}\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s1\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f12\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Scene Descriptions
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Introduction
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
The first step in creating any Radiance images is to describe the scene you are designing using three basic geometric shapes:  polygons, spheres, and cones.  You can choose to either describe your scene mathematically for Radiance, or import 
this information to Radiance from a CAD system.  It is most efficient to use a CAD system to create the descriptions of building and room geometries used by Radiance, if you have access to a CAD system capable of describing your scene.  CAD descriptions a
re translated into Radiance input with the addition of material and light source descriptions, which you will need to define.  Radiance can then be used to quickly and interactively view the scene from different perspectives, and can render high-quality i
mages which can be displayed on the screen or on hardcopy devices such as film recorders and color printers for client evaluations and presentations.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The best way to get started with Radiance is to envision a scene you would like to describe, and either use a CAD system to sketch it out in three-dimensions, or start jotting down some notes on paper.  The minimum requirements for creating a Radiance sce
ne are a light source, a type of material, a surface, and a view.  As you read the examples and tutorial exa
mple in this manual, think about your own scene and what you'll need to do to describe it for Radiance in terms of input files, materials, surfaces, textures, patterns, and light sources.  The best way to appreciate Radiance's capabilities is to see how i
t can be used to bring your ideas to life!
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Basic Format of Input Files
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Input to the Radiance program comes from one or more }{\i\insrsid10355392 
object description files}{\insrsid10355392 .  These files specify the location, size, shape, and makeup of the objects and sources in the scene.  The o
bject descriptions can be created directly with a text editor, although this process is time consuming.  Object libraries and object generators make the work go faster, but a three-dimensional graphics editor or CAD system is really needed to make the inp
ut process user-friendly.  It's a good idea to understand how to read and understand Radiance input files in any event, since even scenes developed on CAD systems will require some additional work (such as defining materials and light sources) before they
 can be used by Radiance.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\b\ul\insrsid10355392 Primitives}{\insrsid10355392 
 are the basic building blocks of Radiance input files, which combine together to make up the scene description.  All the materials you plan to use in your scene will need to be defined as primitives, according to a specific input format, and all the surf
aces that describe objects in your scene also need to be defined as primitives.  It helps to start thinking in advance about how you plan to organize your primitives together into Radiance input files, since good organiz
ation early on when you describe the scene can make the task of generating images much easier later on.  For example, you might decide to put all the material definitions together in a file called "materials", so you can easily find the materials you've d
efined together in one place when you decide to add, change, or delete materials from your scene description.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Primitive Format
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\i\insrsid10355392 modifier type identifier
\par n  S1  S2  S3 ... Sn}{\insrsid10355392 
\par 0
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {
\i\insrsid10355392 m  R1  R2  R3 ... Rm
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Primitive Example
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 void }{\b\insrsid10355392 plastic}{\insrsid10355392  fireplace_stone
\par 0
\par 0
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
5   .6   .05   .02   0   0
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
A Radiance scene description file lists the materials and surfaces that are used to create a specific scene.  Radiance scene descriptions represent the scene in three-dimensional Cartesian (x,y,z rectilinear) coordinates.  The scene description file is st
ored in ascii text, according to the format shown here.  For a more complete description of Radiance primitives, refer to the Radiance Reference Manual.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 Modifiers are either the word "void", which indicates no modifier, or some previously
 defined primitive identifier.  (The most recent definition of a modifier is the one used, and later definitions do not cause relinking of loaded primitives.  Thus, the same identifier can be used repeatedly, and each new definition will apply to the prim
itives following it.)  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The type can be the material type (eg:  plastic, metal, glass) or surface type (eg:  sphere, polygon, cone, cylinder), as well as one of a few other type categories (pattern, texture, or mixture), and the identifier is the name of t
he primitive being described.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
String arguments (words) are listed next (S1,S2,S3,...Sn) for variable names, file names, or transformations being used, preceeded by the number (n) of arguments there are.  No integer arguments are yet being used by Radiance, so the next line is always z
ero.  Real arguments are always numeric (eg:  red,  blue, green, specularity, roughness), and are listed last (R1,R2,R3,...Rm), preceeded by the number (m) of real arguments to be listed.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\b\insrsid10355392 
\par }\pard \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\b\insrsid10355392 Note:  Coordinate Systems & Units}{\insrsid10355392 
\par }\pard\plain \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
Radiance uses a right-handed coordinate system, which means this is the only real restriction on the definition of world coordinates.  
\par }\pard \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 \tab \tab \tab }{\insrsid10355392 
{\pict{\*\picprop\shplid1026{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw122\pich107\picwgoal2440\pichgoal2140\macpict\bliptag-952370061{\*\blipuid c73bfc73896400bbfeba79c9354919e3}0197ffffffff006a00791101a00082a0008ca10064000a4d44504c000900010002a0008c01000affffffff006a007971001e004100010048000f004500010041
000f0045000f0048000f00450001220045004cc300a0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e00010048000f
004f0001004c000f004f000f004c000f00480001004c220045004c00caa0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71
001e005c006a00670077006700770061006a005e006c005c006e00670077220045004c2019a0008da1006400084d44504c000a0000a10096000c010000000200
000000000000a1009a0008fffc00000004000001000a000e004e001e00580300030d000c2b4f1a017aa00097a10096000c010000000200000000000000a1009a
0008fffc00000004000001000a004400120054001c28005000130178a00097a10096000c010000000200000000000000a1009a0008fffb00000004000001000a005900600069006a2b4e150179a00097a0008da00083ff}}{\insrsid10355392 
\par }\pard \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
\par }\pard \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
Dimensions are in whatever units the user desires.  The units can be thought of as meters, inches, feet, microns, or anything else, but they must be used consistently within a given scene.  It is also important to keep to reasonable values (ie:  between 1
0}{\fs18\up6\insrsid10355392 -5}{\insrsid10355392  and 10}{\fs18\up6\insrsid10355392 8}{\insrsid10355392  in magnitude) to avoid calculation anomolies.  However, it will be much easier to use other Radiance programs if a few conventions are followed.  

\par }\pard \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
\par }\pard \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
First, the z-vector should be the pointing in the zenith (up) direction.  Second, if there is a North direction, it should be aligned with the y-axis if possible (which implies that the x-axis would point East).  Finally, when creating a separate object f
ile, it is best to place the origin at the most logical point for rotation, and explain the dimensions and units in a comment at the beginning of the file. 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\b\ul\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\b\ul\insrsid10355392 Comments}{\insrsid10355392  are preceeded by a pound sign, '#', and continue to the end of the line.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Alias Format
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
# }{\i\insrsid10355392 Comment
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {
\i\insrsid10355392 
\par modifier }{\b\insrsid10355392 alias}{\insrsid10355392  }{\i\insrsid10355392 identifier reference}{\insrsid10355392 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Alias Example
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392  
\par # Cabin porch material definition
\par # (the same as fireplace material)
\par 
\par void }{\b\insrsid10355392 alias}{\insrsid10355392  yzbrick
\par \tab xzbrick
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\b\ul\insrsid10355392 Aliases}{\insrsid10355392 
 can be defined for modifiers (material, pattern, or texture) that have the same characteristics as another (such as the materials xzbrick and yzbrick, which are both the exact same brick color, specularity, and roughness).  Aliases relate identifiers tha
t share identical attributes but are identified by different names and may have different modifiers, and can be used to organize identifiers referring to the same thing in different places.  It's important to remember to }{\ul\insrsid10355392 fully}{
\insrsid10355392  specify the required data in the primitive for the reference part of the alias, so there will be some data to be referred to somewhere (and not just an alias primitive).  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Command Format
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par # }{\i\insrsid10355392 Comment
\par 
\par !command
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\b\ul\insrsid10355392 Inline commands}{\insrsid10355392 
 are useful for quickly and easily generating complicated objects with many surfaces (instead of manu
ally determining and specifying every vertex), and placing objects correctly within the scene, among other things.  Inline commands must begin with an exclamation point, '!', in order to be identified as commands.  These commands are executed by the shell
, and their output is read as input to the program.  The command must not try to read from its standard input, or confusion will result.  A command may be continued over multiple lines using a backslash, '\\', to escape the newline.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 The formats for Radiance primitives may look a bit strange at first, but will become familiar to you as you gain experience using them.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Materials
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
When the scene geometry is being described, the user must be prepared to assign material names to each surface.  The definition of these materials will determine how each surface interacts with light.  Radiance provides several material types for this pur
pose; the four basic classes of surface types supported are:  light, normal, dielectric, and BRDF (bidirectional reflectance distribution function).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 \f12\fs20\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Light\tab 
The basic type of emissive surfaces source is simply called }{\b\i\insrsid10355392 light}{\insrsid10355392 .  Variations are provided for efficient modeling of spotlights, called }{\b\i\insrsid10355392 spotlight}{\insrsid10355392 
; secondary emitters, called }{\b\i\insrsid10355392 illum}{\insrsid10355392 ; and weak sources, called }{\b\i\insrsid10355392 glow}{\insrsid10355392 .  A light source can be a polygon, a sphere, a disk, or a source.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 Normal\tab A normal surface is typically }{\b\i\insrsid10355392 metal}{\insrsid10355392  or }{\b\i\insrsid10355392 plastic}{
\insrsid10355392 .  It has a diffuse and specular component, and a color.  A roughness factor is also given.  If the material is purely specular and has a roughness of zer
o, it is a mirror.  If the material is purely diffuse, it is Lambertian.  Most real materials are neither purely specular nor purely diffuse.  Metal differs from plastic in that its specular component is influenced by the metal's color.  A variation calle
d }{\b\i\insrsid10355392 trans}{\insrsid10355392  is translucent.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 Dielectric\tab A }{\b\i\insrsid10355392 dielectric}{\insrsid10355392 
 material, such as crystal or water, has an index of refraction and a spectral absorbence.  Snell's laws and Fresnel's equations are used to compute the reflected and transmitted components and directions.  A variation of dielectric called }{
\b\i\insrsid10355392 glass}{\i\insrsid10355392  }{\insrsid10355392 
 is optimized for efficient computation of thin glass surfaces such as windows, and another variation used to describe the surface between two dielectric materials (such as between crystal and water) is called }{\b\i\insrsid10355392 interface}{
\insrsid10355392 .
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 BRDF\tab Materials with arbitrary bidirectional reflectance distribution functions (BRDF's) can be modeled as one of four types.  }{
\b\i\insrsid10355392 Plasfunc}{\insrsid10355392  is used for a plastic-like material (white highlights) whose specular BRDF can be described as a function.  }{\b\i\insrsid10355392 Metfunc}{\insrsid10355392  is
 identical except that the highlights will be given the material's color.  Likewise, }{\b\i\insrsid10355392 plasdata}{\insrsid10355392  and }{\b\i\insrsid10355392 metdata}{\insrsid10355392 
 are used for BRDF's with white and colored highlights, based on data file input.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Plastic
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # This defines a plastic type of 
\par # material called red_plastic
\par # with Red=.7, Blue=.06,
\par # Green=.08, Specularity=.05
\par # and Roughness=.005
\par 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
void }{\b\insrsid10355392 plastic}{\insrsid10355392  red_plastic\line 0\line 0\line 5   .7   .06   .08   .05   .005
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Examples of material name assignments to Radiance are given for a type of plastic called "red_plastic", and a type
 of glass called "window_glass".  Once a material name has been defined to Radiance, it may be used as many times as it's needed in the scene description by simply using the material name as a modifier to a surface.  The number of parameters required for 
each material definition should always immediately preceed those parameters; the number five (5) shows up on the plastic example, right before the five required real parameters, and the number three (3) appears immediately before the three color transmiss
ion parameters in the glass example.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Glass
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # This defines a glass type of
\par # material called 
\par # window_glass with Red 
\par # transmission=.96, Green 
\par # transmission=.96, and
\par # Blue transmission=.96
\par 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
void }{\b\insrsid10355392 glass}{\insrsid10355392  window_glass\line 0\line 0\line 3   .96   .96   .96
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Any of the above materials can be modified by a set of textures and patterns to simulate a broad range of light interactions.  For example, plastic can take on the appearance of any paint, paper, ceramic, or wood simply by varying parameters and applying 
optional texture
s and patterns.  A texture modifies the surface normal direction.  A pattern modifies the surface color.  Textures and patterns are defined as functions of the surface normal, intersection point, and ray direction.  The functions are stored in separate fi
les which are read in and interpreted as necessary.  Source distributions are implemented as light patterns, for example (please refer to the section on light sources).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Surfaces
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 At the lowest level, Radiance models }{\i\insrsid10355392 polygons}{\insrsid10355392 , 
}{\i\insrsid10355392 spheres}{\insrsid10355392  and }{\i\insrsid10355392 cones}{\insrsid10355392 .  From these basic boundary representations (surfaces), varied and complicated shapes can be produced.  An }{\i\insrsid10355392 object}{\insrsid10355392 
 is a collection of one or more surfaces contained in a seperate description file.  In addition to these geometric entities, there is a special type for distant sources, called }{\i\insrsid10355392 source}{\insrsid10355392 
.  Surface normals need to be considered when describing objects, since their description to Radiance defines how the object is viewed (where the "front" of the object is).  The "front" of an object is typically the side it is viewed from.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
It's also very important to follow the right-hand rule to put vertices in the proper order on polygons, since mistakes can create very unusual and undesirable self-intersecting polygons that look something like bowties!
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\b\insrsid10355392 
\par }\pard \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\b\insrsid10355392 Note:  Right Hand Rule\tab 
\par }\pard\plain \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
A method for determining or specifying the surface normal direction (the thumb) from the curved direction of vertices across the other two dimensions of space (our fingers).  In the following illustration, vertices entered in the circular direction sh
own (counter-clockwise) would result in a surface normal pointing out of the page in the y-direction.
\par }\pard \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
\par }\pard \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 \tab \tab \tab }{\insrsid10355392 
{\pict{\*\picprop\shplid1027{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw147\pich137\picwgoal2940\pichgoal2740\macpict\bliptag-1733984514{\*\blipuid 98a57efe1f6a1927609a87bc38816b9e}02baffffffff008800921101a00082a0008c01000affffffff0088009209000000000000000031001300150057007609ffffffffffffffff38a10064000a4d44
504c000900010002a0008c71001e00660001006d000f006a00010066000f006a000f006d000f006a000122006a00868900a0008da1006400084d44504c000a00
00a10064000a4d44504c000900010002a0008c71001e00010082000f008900010086000f0089000f0086000f00820001008622006a008600a5a0008da1006400
084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e007a00660086007300860066007a006e007d0071007f00730086006622006a0086eb
13a0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffb00000003000001000a000f0087001f00912c0009000306
47656e6576610300030d000c2b881b017aa00097a10096000c010000000200000000000000a1009a0008fffb00000004000001000a006b0010007b001a280077
00110178a00097a10096000c010000000200000000000000a1009a0008fffc00000004000001000a0076007a008600842b6a0b0179a0009701000affffffff00
880092070000000022003c00510000a000a0a100a4000201fc01000a00000000000000000700010001220041004d04fb2301f923fdf823fafc23f8ff23f90323
fc07230108a000a301000affffffff00880092220041004d01ff2302fd2301fe2300fe2300ff2300002300fe2300fd2300ff23ffff2300fe23fefd23feff23ff
ff23fcff23feff23fe0023fc0123ff0023fe0123fd0323ff0123000123ff02230003230004230002a000a1a10064000a4d44504c000900010002a0008c71001e003700350045003f0045003f003a0035003900380037003b0045003f22003e003bfdfba0008da1006400084d44504c000a0000a0008da00083ff}}{
\insrsid10355392 
\par }\pard \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Most users will be familiar with polygonal representations of objects.  Providing a variety of surface types (ie: spheres, cones, & polygons) reduces both the user's time entering complicated object approximations and the program time required for the ext
ra surfaces.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 \f12\fs20\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Polygons\tab }{\b\i\insrsid10355392 Polygons}{
\insrsid10355392  are specified as a list of at least three coordinate triplets.  These vertices must lie in the same plane to be 
interpreted correctly.  The order in which they are listed defines the surface normal orientation.  A polygon can be concave or convex, and there is no upper limit to the number of vertices.  Self-intersecting polygons should be avoided.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 Spheres\tab A }{\b\i\insrsid10355392 sphere}{\insrsid10355392 
 is defined as a center point and a radius.  By default, the surface normal points away from the center.  Spheres with inward pointing normals are specified as }{\b\i\insrsid10355392 bubbles}{\insrsid10355392 .
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 Cones\tab In the family of cones, several surface shapes are represented.  A }{\b\i\insrsid10355392 cylinder}{\insrsid10355392  has a
 starting point, an ending point, and a radius.  A }{\b\i\insrsid10355392 ring}{\insrsid10355392  has a center, a normal direction, and an inner and outer radius.  A }{\b\i\insrsid10355392 cone}{\insrsid10355392 
 has a starting point and a radius, and an ending point and a radius.  A }{\b\i\insrsid10355392 tube}{\insrsid10355392  is a cylinder whose surface normal is directed inwards rather than outwards.  A }{\b\i\insrsid10355392 cup}{\insrsid10355392 
 is an inverted cone.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 Sources\tab A light }{\b\i\insrsid10355392 source}{\insrsid10355392 
 is represented as a very distant disc.  It is not really a surface, but a direction and an angular diameter.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Scenes are composed of many objects, and these objects may in turn 
contain many objects.  This hierarchy is constructed through the simple mechanism of command expansion.  When the program comes across a command in a scene file, it executes the command and interprets the output as more scene input.  The ability to have a
 command within a scene file also simplifies the use of generator programs.  Rather than including the output of a program that produces a box, for example, the command itself can be included in the scene file.  Changes are straightforward, and the scene 
description is more compact.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The ability to move, rotate, and scale objects is essential to the creation of complex environments.  XFORM allows these simple transformations, along with the mirroring of objects about any axis, and the generation of object arrays.  Arbitrary transforma
tions such as non-uniform scaling and skewing are not allowed simply because they don't make sense for all surface types.  The main XFORM options are:
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 \f12\fs20\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 -t x y z\tab 
Translate the scene along the vector x y z.  Since most objects generated by Radiance start out at the origin, they need to be repositioned to their final location.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 -rx }{\i\insrsid10355392 degrees}{\insrsid10355392  (ry,rz)\tab Rotate the scene }{\i\insrsid10355392 degrees}{\insrsid10355392 
 about the x axis (respectively y or z axis).  An object created at the origin may not be facing the correct direction, and might even be on its side, requiring rotation to lift it up or swivel it into place.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 -s }{\i\insrsid10355392 factor}{\insrsid10355392 \tab Scale the scene by }{\i\insrsid10355392 factor}{\insrsid10355392 
.  The conversion factor between inches and feet is .08333 feet equals one inch.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 -mx,my,mz\tab Mirror the scene respectively a
bout the yz, xz, xy plane.  Rather than recreating an object that shares some kind of symmetry with an existing object (such as doors that open different directions), it's easier to use the mirror option of xform.
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1028{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw231\pich123\picwgoal4620\pichgoal2460\macpict\bliptag-1687470017{\*\blipuid 9b6b403f2bfb25819e888a109ee9337d}
0135ffffffff007a00e61101a00082a0008ca0008ca0008c01000affffffff007a00e631002200310078006438090000000000000000310023002f0079006209
ffffffffffffffff3809000000000000000051004d00590054005f09ffffffffffffffff582200220030ff012200770062ff01a0008da0008c31002200820078
00b5380900000000000000003100230084007900b709ffffffffffffffff3809000000000000000051004d00870054008d09ffffffffffffffff5822002200b5
010122007700830101a0008da0008da10096000c020000000200000000000000a1009a0008fffb00000071000001000a00000000001300e52c000900030647656e65766103000304010d000e2b010e1b4d6972726f72696e67206120446f6f7220776974682078666f726da00097a0008da00083ff}}{\insrsid10355392 

\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 xform Command for Mirroring Door
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # This command is executed from inside a file, and mirrors the\line # contents of the file called "door" about the y-axis, with a \line 
# translation of 1.375 inches in the y-direction, to account for\line # the thickness of the door.\line \line !xform  -my  -t  0  1.375  0  door
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
If the file name "door" was left out in the example above, xform would try to read from standard input all the expected data, and would then undoubtedly confuse the user with unusual results.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 The specialized programs designed to create certain classes of objects are called }{\i\insrsid10355392 generators}{\insrsid10355392 
.  Their primary task is to simplify the task of entering descriptions of common or complex objects, and they are useful as inline commands in input files.  Some examples of generators are:
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 \f12\fs20\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 GENBOX\tab Creates a parallelopiped wit
h sharp, beveled, or rounded corners.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 GENPRISM\tab Produces a Radiance scene description of a prism (an extruded polygon).
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par GENREV\tab Creates a surface of revolution using cones.
\par 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 GENSKY \tab Creates a sky for use in daylighting calculations or outdoor simulation.  
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 GENSURF\tab Creates an arbitrary curved surface patch by breaking a parametric function into polygons.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 GENWORM\tab Creates a three-dimensional curve of varying thickness made up of cones and spheres.
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 When we want to describe a three-dimensional wall that cont
ains a window, we can use either genbox or genprism to help us create the wall.  Using genbox, we would build four boxes that surround the window and whose outer edges correspond to the perimeter edges of our wall.  We'll need to issue four seperate genbo
x commands, one for each of the boxes in the wall.  Genbox commands require specification of the material type and an identifying name for the surface being described, as well as the (x,y,z) size dimensions.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1029{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw227\pich113\picwgoal4540\pichgoal2260\macpict\bliptag-361818928{\*\blipuid ea6f14d07815feca25cbaea8173c8a39}
037fffffffff007000e21101a00082a10096000c020000000200000000000000a1009a0008fffb0000006f000001000a00000000001300e103000304010d000e
2b010e1b4275696c64696e6720612057616c6c20776974682067656e626f78a0009701000affffffff007000e20988002200880022003100260031006f00aa09
ffffffffffffffff38070000000022002000370000a000a0a100a400020ffb09800008008000080071001e00200031002600af0026003100200037002000af00
2600a90026003101000a0000000000000000070001000109ffffffffffffffff220026003106fa23000023780023000023fa062300002388002300000a800008
008000080084000a0000000000000000a000a301000affffffff007000e284000a00000000000000002306fa23780023fa06238800a000a10700000000220020
00af0000a000a0a100a400020ffb09aa55aa55aa55aa5571001e002000a9006e00af002600a9002000af006800af006e00a9002600a901000a00000000000000
00070001000109ffffffffffffffff22002600a906fa23000023004823000023fa062300002300b82300000aaa55aa55aa55aa5584000a0000000000000000a0
00a301000affffffff007000e284000a00000000000000002306fa23004823fa062300b8a000a109000000000000000031003e00610057007a09ffffffffffff
ffff38070000000022005600610000a000a0a100a400020ffb09aa55aa55aa55aa5571001e003e006100560066003e00610056006100500066003e0066003e00
6101000a0000000000000000070001000109ffffffffffffffff22003e006100182300002305fa2300002300ee23000023fb0023000084000a00000000000000
00a000a301000affffffff007000e284000a00000000000000002300182305fa2300ee23fb00a000a1070000000022005600610000a000a0a100a400020bfb09
800008008000080071001e0050006100560079005000660056006100560079005000790050006601000a0000000000000000070001000109ffffffffffffffff
2200500066fb062300002318002300002300fa23000023ed002300000a800008008000080084000a0000000000000000a000a301000affffffff007000e284000a000000000000000023fb062318002300fa23ed00a000a122003e00a98900220056006100182200560079300022003e00a906fc22005500a906fca00083ff}
}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 genbox command example
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # This is the genbox command for creating the first of four\line # boxes that together form a wall with a window.\line \line 
!genbox wood_panel top_wall 2  .2  .333 | xform  -t  0  0  .667
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par 
\par }\pard\plain \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\b\insrsid10355392 Note:  Coinciding Surfaces
\par }{\insrsid10355392 
\par }\pard \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
When Radiance surfaces coincide, so that two or more surfaces are located on top of one another, interesting and often undesirable effects can result when the objects have different modifiers (eg:  different materials and patterns).  
\par }\pard \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
\par }\pard \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
There is no problem in assigning different surfaces the same coordinates, as long as this 
"bleed-through" at the intersection is acceptable.  For example, it is generally a good idea to place furniture up off the floor and away from walls, and the concrete foundation a little bit separate from the floor, but boxes created with genbox for a fir
eplace can be placed right on top of each other, since they share the same materials and patterns.
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 Using genprism to build our wall, we would build one prism that surrounds the window.  Genprism requires specification of the material type and an identifyi
ng name for the surface being described, as well as the number of vertices to be entered, the vertices themselves (x,y), and finally an extrusion vector (-l option, for "length") that provides genprism with information about the missing (z) dimension.  Th
e order of the vertices and the extrusion vector determines the surface orientations, according to the right-hand rule (where the right thumb points in the direction of the surface normal as the right hand fingers curl around with the vertices).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1030{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw244\pich113\picwgoal4880\pichgoal2260\macpict\bliptag-1571259205{\*\blipuid a2587cbb659de3ec4328f1ebdb1e8c48}
0368ffffffff007000f31101a00082a10096000c020000000200000000000000a1009a0008fffb00000078000001000a00000000001300f203000304010d000e
2b010e1d4275696c64696e6720612057616c6c20776974682067656e707269736da0009701000affffffff007000f3098800220088002200310026003a007000
b309ffffffffffffffff38070000000022002000400000a000a0a100a400020ffb09800008008000080071001e0020003a002600b80026003a00200040002000
b8002600b20026003a01000a0000000000000000070001000109ffffffffffffffff220026003a06fa23000023780023000023fa062300002388002300000a80
0008008000080084000a0000000000000000a000a301000affffffff007000f384000a00000000000000002306fa23780023fa06238800a000a1070000000022
002000b80000a000a0a100a400020ffb09aa55aa55aa55aa5571001e002000b2006f00b8002600b2002000b8006800b8006f00b2002600b201000a0000000000
000000070001000109ffffffffffffffff22002600b206fa23000023004823000023fa072300002300b72300000aaa55aa55aa55aa5584000a00000000000000
00a000a301000affffffff007000f384000a00000000000000002306fa23004823fa072300b7a000a109000000000000000031003f006a0057008309ffffffff
ffffffff3822003f006a00e72304fa0700000000220056006a0000a000a0a100a400020ffb09aa55aa55aa55aa5571001e003f006a0056006f003f006a005600
6a0050006f003f006f003f006a01000a0000000000000000070001000109ffffffffffffffff22003f006a00172300002305fa2300002300ef23000023fb0023
000084000a0000000000000000a000a301000affffffff007000f384000a00000000000000002300172305fa2300ef23fb00a000a10700000000220056006a00
00a000a0a100a400020bfb09800008008000080071001e0050006a005600820050006f0056006a00560082005000820050006f01000a00000000000000000700
01000109ffffffffffffffff220050006ffb062300002318002300002300fa23000023ed002300000a800008008000080084000a0000000000000000a000a301000affffffff007000f384000a000000000000000023fb062318002300fa23ed00a000a1a00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 genprism command example
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 !genprism wood_panel wall 10  0  1  0  0  2  0  2  1  .8  1  \\\line \tab .8  .333  1.2  .333  1.2  .667  .8  .667  .8  1  -l  0  0  -.2
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1031{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw304\pich118\picwgoal6080\pichgoal2360\macpict\bliptag-1115848111{\*\blipuid bd7d8251cbdedf78a8bc40b6b654ce30}
0462ffffffff0075012f1101a00082a0008ca10096000c020000000200000000000000a1009a0008fffb00000096000001000a000000000013012e2c00090003
0647656e65766103000304010d000e2b010e234372656174696e6720437572766564205375726661636520776974682067656e726576a00097a0008ca1006400
0a4d44504c000900010002a0008c01000affffffff0075012f71001e001c0093002a009b001c0097002a009b002a0097002a0093001c0097220073009700b7a0
008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffc00000002000001000a0026009c003200a204000d00092b9c22
017aa0009701000affffffff0075012f070000000022007300df0000a000a0a100a400020dfc01000a0000000000000000070001000122007300974800230000
2300f923000021006c005023000023ff07230000234800230000a000a301000affffffff0075012f2348002300f921006c005023ff07234800a000a107000000
0022006c00de0000a000a0a100a400020dfc01000a0000000000000000070001000122006c0097470023000023fef8230000210064005223000023fe08230000
234700230000a000a301000affffffff0075012f23470023fef8210064005223fe08234700a000a1070000000022006400dc0000a000a0a100a400020dfc0100
0a000000000000000007000100012200640097450023000023faf923000023820023000023fa07230000234500230000a000a301000affffffff0075012f2345
0023faf923820023fa07234500a000a1070000000022005d00d60000a000a0a100a400020dfc01000a0000000000000000070001000122005d00973f00230000
23f4f9230000239b0023000023f307230000233f00230000a000a301000affffffff0075012f233f0023f4f9239b0023f307233f00a000a10700000000220056
00c90000a000a0a100a400020dfc01000a000000000000000007000100012200560097320023000023f9f923000023aa0023000023f907230000233200230000
a000a301000affffffff0075012f23320023f9f923aa0023f907233200a000a1070000000022004f00c20000a000a0a100a400020dfc01000a00000000000000
00070001000122004f00972b0023000023f9f923000023b80023000023f907230000232b00230000a000a301000affffffff0075012f232b0023f9f923b80023
f907232b00a000a1070000000022004800bb0000a000a0a100a400020dfc01000a000000000000000007000100012200480097240023000023f2f823000023d5
0023000023f108230000232400230000a000a301000affffffff0075012f23240023f2f823d50023f108232400a000a1070000000022004000ad0000a000a0a1
00a400020dfc01000a000000000000000007000100012200400097160023000023edf923000023fa0023000023ee07230000231500230000a000a301000affffffff0075012f23160023edf923fa0023ee07231500a000a1a0008da0008da00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Genrev is very useful for generating surfaces of revolution that contain radial symmetry, such as glasses and vases.  Surfaces are always rotated around the z-axis with genrev, and the surface is described in terms of z(t), the radius r(t) where t is an i
ndependent variable, and the number of segments.  The example shown above consists of eight segments.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Gensurf could also be used to build a wall, although using gensurf to create such a rectangular object would be a tricky task; gensurf is better suited to curved surface patches.  Any curved surface that can be defined parametrically can be built with gen
surf, using (s,t) curved coordinates that might mean there are more than one "x" value for any given "y" value.  Since gensurf allows the user to create as many sub-sections as desired along the s-axis and t-axis, it's very useful for subdividing surfac
es automatically, as is sometimes desirable for large light sources.  The "-s" option in the genrev command indicates that smoothing is desired for the generated curve, so the ridges between segments don't show up as sharp corners.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1032{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw318\pich193\picwgoal6360\pichgoal3860\macpict\bliptag-1324590871{\*\blipuid b10c58e9af6ef4384946864a1a00bf7e}
049cffffffff00c0013d1101a00082a0008ca10096000c020000000200000000000000a1009a0008fffb0000009d000001000a000000000013013c2c00090003
0647656e65766103000304010d000e2b010e254372656174696e672043757276656420537572666163657320776974682067656e73757266a00097a0008c0100
0affffffff00c0013d070000000022009700590000a000a0a100a400020dfb01000a000000000000000007000100012200680069f02f23000023470c23000023
10ca23000023b8fb230000230100230000a000a301000affffffff00c0013d23f02f23470c2310ca23b8fb230100a000a1070000000022006800680000a000a0
a100a400020dfb01000a000000000000000007000100012200410065032723000023470523000023ffcc23000023b80823000023ff00230000a000a301000aff
ffffff00c0013d23032723470523ffcc23b80823ff00a000a107000000002200a300a00000a000a0a100a400020dfb01000a0000000000000000070001000122
006d00b0f0362300002346152300002312bc23000023b8f9230000a000a301000affffffff00c0013d23f0362346152312bc23b8f9a000a10700000000220038
00ae0000a000a0a100a400020dfb01000a0000000000000000070001000122006d00b0fecb230000234ff223000023fb4a23000023b8f9230000a000a301000a
ffffffff00c0013d23fecb234ff223fb4a23b8f9a000a15100950057009a005c58a0008c6000510050007c005e005a005aa10064000a4d44504c000900010002
a0008c71001e005d0059006b0060005d005c006a0060006b005d006b0059005d005c220062005c0109a0008da1006400084d44504c000a0000a0008da0008c60
00a6005300b400900000005aa10064000a4d44504c000900010002a0008c71001e00a5008800ae009600ae009600ab008800a8008900a5008b00ae00962200ab
0090f9fda0008da1006400084d44504c000a0000a0008da10096000c010000000200000000000000a1009a0008fffc00000019000001000a00900022009c0057
04000d00092b228c0b28732c74293d28302c3029a0009701000affffffff00c0013d51003f00630044006858a10096000c010000000200000000000000a1009a
0008fffb0000000b000001000a003b004900470062280045004a0528302c3129a0009701000affffffff00c0013d5100b500e300ba00e858a10096000c010000
000200000000000000a1009a0008fffb0000000b000001000a00b300ea00bf01032ba1780528312c3029a0009701000affffffff00c0013d51002800fa002d00
ff58a10096000c010000000200000000000000a1009a0008fffc0000000b000001000a002601010032011a28003001020528312c3129a0009701000affffffff
00c0013d51007200f6007700fb5851003600ac003b00b15851006a00ad006f00b2585100650066006a006b58a10096000c010000000200000000000000a1009a
0008fffc00000001000001000a00a4007b00b000812800ae007c0173a00097a10096000c010000000200000000000000a1009a0008fffc00000001000001000a006a00530076005828007400540174a00097a0008da0008da00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
We'll use gensurf in the tutorial example at the end of this section to allow us to subdivide illuminated windows, and in the tutorial example at the end of the Advanced Topics chapter to generate a bumpy ground surface around the cabin.  The surfaces gen
surf is capable of creating are only limited by one's imagination (and mathematical prowess).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard\plain \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\b\insrsid10355392 Note:  Hermite Curves
\par }\pard \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Hermite Function
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # }{\i\insrsid10355392 Hermite Curve Arguments\line }{\insrsid10355392 # }{\i\insrsid10355392 p0, p1 \tab - start & end points\line }{\insrsid10355392 # }{\i\insrsid10355392 
r0, r1\tab - start & end direction\line }{\insrsid10355392 # }{\i\insrsid10355392 t\tab \tab - independent \line }{\insrsid10355392 #}{\i\insrsid10355392 \tab \tab     parameter (0 to 1)
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {
\i\insrsid10355392 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {
\i\insrsid10355392 hermite (p0, p1, r0, r1, t)
\par }\pard\plain \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Hermite functions are useful for specifying curves to generator functions.  With a hermite curve function in Radiance, we only have to specify the starting point, end point, starting direction vector, and ending direction vec
tor.  The specifics for a hermite curve are predefined for us.  
\par }\pard \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
\par }\pard \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
Each hermite function can be used to describe a curve containing up to one inflection point, where the second derivative changes sign (positive to negative, or vice versa).
\par }\pard \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
\par }\pard \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 {\pict{\*\picprop\shplid1033{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw335\pich118\picwgoal6700\pichgoal2360\macpict\bliptag380791153{\*\blipuid 16b269710fd668c90c6c64b0dd4bbc8a}
071fffffffff0075014e1101a00082a0008ca10096000c020000000200000000000000a1009a0008000500000045000001000a0000003e002600ca2c00090003
0647656e65766103000304010d000e2b3f0e104578616d706c65204865726d697465202b291306437572766573a00097a10064000a4d44504c000900010002a0
008c01000affffffff0075014e71001e00630042006b005300670053006b0042006700420063004200670053070002000222006600103100a0008da100640008
4d44504c000a0000510065000d006a0012070001000158a10064000a4d44504c000900010002a0008c71001e0043004c0051005c0051005c004a004c0047004e
004300510051005c070002000222004000460706a0008da1006400084d44504c000a000051003f0044004400490700010001580700000000220067001e0000a0
00a0a100a40002010501000a00000000000000000700010001220067000e10002308fd2306f82304f12304f4230bfc230604a000a301000affffffff0075014e
220067000e02002303002303002303002304ff2302002301002302ff2300002301002301ff2302ff2302fe2301ff2301ff2301fe2301fd2302fc2300ff2301fc
2302f92301fd2301fe2301fe2302fe2302ff2302ff2301002303ff230301230301230101a000a1a10064000a4d44504c000900010002a0008c71001e0057007a
006800820068007e0057007a0057007e005700820068007e0700020002220050007d0006a0008da1006400084d44504c000a000051004e007c00540081070001
000158a10064000a4d44504c000900010002a0008c71001e003400d1004000e2003400e2004000d5003c00d3003800d1003400e2070002000222005300a62ce8
a0008da1006400084d44504c000a000051005200a4005800a9070001000158070000000022005900870000a000a0a100a40002010501000a0000000000000000
0700010001220051007f0808230d02230efd2304fea000a301000affffffff0075014e220051007f020223030323040223040223010023010023040023040023
03002302ff2301002304ff2303ff2302002301ffa000a1a10064000a4d44504c000900010002a0008c71001e0057010100680109006801050057010100570105
0057010900680105070002000222003501040021a0008da1006400084d44504c000a0000510033010300390108070001000158a10064000a4d44504c00090001
0002a0008c71001e001f012e002e013c001f012e0029013c002c0139002e0135001f012e0700020002220030013cfcfba0008da1006400084d44504c000a0000
51002f013b00340141070001000158070000000022004801090000a000a0a100a40002010501000a000000000000000007000100012200350105041323060c23
0609230907230c03230bfd2308f82303f52302f723fff323fdf9a000a301000affffffff0075014e220035010501032300032301042301042301032301032301
032301022300002302032303052301022302032303042302022303022305022303012301002303002304002301002302ff2301002303ff2302ff2303fe2301ff
2302fe2303fb2301fd2301fd2301fc2300fe2301fd2300fb2300fc2300fd23fefa23fefca000a1a10096000c010000000200000000000000a1009a0008fffc00
000005000001000a00600000006c000c04000d000928006a0001027030a00097a10096000c010000000200000000000000a1009a0008fffb0000000500000100
0a00310040003d004c28003b0041027031a00097a10096000c010000000200000000000000a1009a0008fffc00000004000001000a0068003500740041280072
0036027230a00097a10096000c010000000200000000000000a1009a0008fffb00000004000001000a0045003f0051004b28004f0040027231a00097a1009600
0c010000000200000000000000a1009a0008fffb00000005000001000a00430078004f008428004d0079027030a00097a10096000c0100000002000000000000
00a1009a0008fffb00000005000001000a0045009e005100aa2b2602027031a00097a10096000c010000000200000000000000a1009a0008fffb000000050000
01000a0057006e0063007a280061006f027230a00097a10096000c010000000200000000000000a1009a0008fffb00000005000001000a003f00cc004b00d828
004900cd027231a00097a10096000c010000000200000000000000a1009a0008fffb00000005000001000a002700fe0033010a28003100ff027030a00097a100
96000c010000000200000000000000a1009a0008fffc00000004000001000a002a01410036014d2b4303027031a00097a10096000c0100000002000000000000
00a1009a0008fffb00000005000001000a004b00f80057010428005500f9027230a00097a10096000c010000000200000000000000a1009a0008fffb00000005000001000a00170134002301402800210135027231a00097a0008da00083ff}}{\insrsid10355392 
\par }\pard \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The genworm command is very handy for creating curved elongated surfaces, given a formula of some kind describing the path and radius of the curve.  To create a cylindrical shape that curves like a quarter-circle, one must first be familiar with the formu
las for a un
it circle.  The number of segments must be decided upon for all genworm creations, since the genworm curves are not perfectly smooth.  The higher the number of segments, the greater the realism and the more time required for generating the image.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1034{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw342\pich187\picwgoal6840\pichgoal3740\macpict\bliptag-1005848401{\*\blipuid c40bf8afe1b0a0c7b2c0bed545d31280}
05d3ffffffff00ba01551101a00082a0008ca10096000c020000000200000000000000a1009a0008fffb0000009d000001000a0000000b001301492c00090003
0647656e65766103000304010d000e2b0c0e244372656174696e6720437572766564205375726661636520776974682067656e776f726da00097a0008ca0008c
01000affffffff00ba015560005fffe200b700390000005a60006affec00ac002f0000005aa10096000c010000000200000000000000a1009a0008fffb000000
02000001000a005900030065000a04000d000928006300040131a00097a10096000c010000000200000000000000a1009a0008fffc00000002000001000a008e
0036009a003d2b33350131a00097a10096000c010000000200000000000000a1009a0008fffb0000001e000001000a006d004a00790088280077004b0d526164
697573203d202e323522a00097a10064000a4d44504c000900010002a0008c01000affffffff00ba015571001e0087004b008e0059008b0059008e004b008b00
4b0087004b008b005922008b000d3e00a0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e003b000900490011003b00
0d004900110049000d00490009003b000d22008b000d00bea0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffc
00000002000001000a003c00000048000728004600010179a00097a10096000c010000000200000000000000a1009a0008fffc00000002000001000a008c004d
009800542b4d500178a0009701000affffffff00ba015522005f000dfd00220075000dfe0022008d002300fe22008e003900fda0008da0008c09000000000000
000051004700ca009c012109ffffffffffffffff5860004700c9009f01210000005aa10064000a4d44504c000900010002a0008c71001e006f01320076014000
7301400076013200730132006f01320073014022007300bc7600a0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e00
2300f1003100f8002300f4003100f8003100f4003100f1002300f42200ac00f40085a0008da1006400084d44504c000a0000a10096000c010000000200000000
000000a1009a0008fffc00000002000001000a002400e7003000ee28002e00e80179a00097a10096000c010000000200000000000000a1009a0008fffc000000
02000001000a007401340080013b2b4d500178a00097a10096000c010000000200000000000000a1009a0008fffb00000003000001000a006b00ae007700b728
007500af01b9a00097a10096000c010000000200000000000000a1009a0008fffb00000009000001000a003900dd004500f228004300de03b92f32a00097a100
96000c010000000200000000000000a1009a0008fffb0000000c000001000a00ad00e800b901032b0b740433b92f32a00097a10064000a4d44504c0009000100
02a0008c01000affffffff00ba015571001e004400ec004b00fa004800ec004400fa004800fa004b00fa004800ec22004800f30700a0008da1006400084d4450
4c000a000060006800e9007f01010000005aa0008c09000000000000000051006100fe006b010509ffffffffffffffff5822006600fe0600a0008da10096000c
010000000200000000000000a1009a0008fffc00000018000001000a002a01210036015428003401220c756e697420636972636c653aa00097a0008ca0008c01
000affffffff00ba015509000000000000000051003c01440046014b09ffffffffffffffff5822004101450500a0008da0008c09000000000000000051004b01
440055014b09ffffffffffffffff5822004f01450500a0008da10096000c010000000200000000000000a1009a0008fffb0000000d000001000a003b01280047
01442b071105783d636f73a00097a10096000c010000000200000000000000a1009a0008fffb0000000b000001000a00490129005501432b010e05793d73696ea00097a0008da0008da0008da0008da00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 genworm Command Example
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 !genworm brass right_bend 'cos(t*PI/2 + PI/2)+1'\\\line \tab 'sin(t*PI/2 + PI/2) + 1'   '0'  .25  5
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par 
\par 
\par }\pard\plain \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\b\insrsid10355392 NOTE:  Hierarchy
\par 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Hierarchy Example
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\ul\insrsid10355392 In a file called "tableset"}{\insrsid10355392 :
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
# A table with four chairs\line !xform table\line !xform -t 0 2 0 -a 4 -rz 90 chair
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par }{\ul\insrsid10355392 In the main scene file}{\insrsid10355392 :
\par # A row of 5 tables with chairs
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
!xform -a 5 -t 10 0 0 tableset
\par }\pard\plain \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
In a hierarchy, the XFORM command is used to read other scene files, transforming them to new positions.  These scene files may contain other XFORM commands, thus producing a tree of transformations.  XFORM can also be used to create arrays of objects, su
ch as furniture or light sources.  
\par }\pard \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
\par }\pard \s50\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 If desired, XFORM may be used to expand all commands, creating a "flat" scene description.  
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Instances
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Instancing is a way to constr
uct complicated or repetitive scenes by taking an object that has been described once and duplicating it as many times as are required, such as creating a forest by defining one pine tree and selecting locations for duplicate pine trees to be placed in th
e scene.  Using this technique tells Radiance that these objects are identical, except that they are placed in different locations and possibly consist of different material types.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 Instancing helps to minimize memory requirements.  Although the limit to 
the number of surfaces in the expanded geometric model is large -- around 18,000, depending on memory -- it is not infinite.  Since the same objects are repeated many times throughout the space, instances can share the data of those objects, requiring mem
ory for only individual transformations.  Using hierarchical instancing (instances that in turn contain other instances), scenes with hundreds of billions of primitives can be modeled.  Although rendering time does increase with the scene complexity, it i
s a sub-linear relationship O(n}{\up6\insrsid10355392 1/3}{\insrsid10355392 
) such that an image with 1,000 surfaces takes roughly twice as long as a scene with 125 surfaces, and a scene with 8,000 surfaces takes four times as long as a scene with 125 surfaces.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Instancing Example
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # Planting a couple of trees
\par # (both from tree.oct)
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\line void }{\b\insrsid10355392 instance}{\insrsid10355392  first_tree
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
9  tree.oct  -rz  50  -s  .9\\
\par \tab -t  35  -10  -1.5
\par 0
\par 0
\par 
\par void }{\b\insrsid10355392 instance}{\insrsid10355392  second_tree
\par 9  tree.oct  -rz  125  -s  .8\\
\par \tab -t  -8   20  -1.5
\par 0
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
0
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Instancing is accomplished by creating an octree of the object
 which is repeated in the scene, so that subsequent instances of that object refer back to the same octree.  For the pine tree forest example, an octree for the pine tree would be created (called "tree.oct" in this case), and the locations of each instanc
e of the pine tree would be defined in primitives.  
\par 
\par Each tree can be rotated a different amount about the z-axis with the "-rz" option, and scaled with the "-s" option before being placed with the translation coordinates ("-t" option) desired.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 Slightly
 different rotations and sizes of trees help provide the scene with some diversity in its trees, so it's not too apparent that all the trees are actually identical to each other.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Textures
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Textures add important visual detail to surfaces without adding substantially to the model complexity.  We define a }{\i\insrsid10355392 texture}{\insrsid10355392 
 as a perturbation of the surface normal (as opposed to a perturbation of the material color), giving the object the appearance of having a bumpy surface that could be felt if touched.  A texture affe
cts the illumination and highlights of an object.  There are two types of textures:  texfunc, and texdata.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 \f12\fs20\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\b\insrsid10355392 texfunc}{\insrsid10355392  \tab 
is the most commonly used type of texture.  It uses a functional procedure to give surfaces a bumpy (non-smooth) appearance.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\b\insrsid10355392 texdata}{\insrsid10355392  \tab can be used if you have a data file corresponding to surface normal perturbations of a surface.

\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Patterns
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 We define a }{\i\insrsid10355392 pattern}{\insrsid10355392 
 as a perturbation of the material color (as opposed to a perturbation of the surface normal).  A pattern affects the reflectance (or t
ransmittance) of an object.  Radiance provides several means for pattern specification.  A procedural pattern is given as a formula that defines the pattern's value in terms of the current intersection point, ray direction, surface normal, distance, etc. 
 Patterns may also be scanned from photographs or video.  The coordinate mapping for a pattern is determined by the user, and mappings from rectangular images to rectangles, cylinders, and spheres are provided.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 There are three general classes of pattern types used by Radiance:  functions, data, and text.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 \f12\fs20\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Functions\tab }{\b\insrsid10355392 Brightfunc}{
\insrsid10355392  and }{\b\insrsid10355392 colorfunc}{\insrsid10355392  describe patterns as functional procedures.  Brightfunc changes the overall reflectance variable for an object, while colorfunc changes the colors (red, green, and blue).
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 Data\tab }{\b\insrsid10355392 Brightdata}{\insrsid10355392  and }{\b\insrsid10355392 colordata}{\insrsid10355392 
 take information from data files (rather than from functional procedures) to change the overall reflectance colors of an object.  }{\b\insrsid10355392 Colorpict}{\insrsid10355392 
 is the same as colordata, but it takes a Radiance picture file as input, rather than three data files.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 Text\tab }{\b\insrsid10355392 Brighttext}{\insrsid10355392  and }{\b\insrsid10355392 colortext}{\insrsid10355392 
 produce text (eg: page from a book) when the text and font are specified.  Brighttext requires foreground and background reflectivity, while colortext requires foreground and background color.
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par 
\par }\pard\plain \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\b\insrsid10355392 Note:  Auxiliary Files
\par }{\insrsid10355392 
\par }\pard \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
There are several auxiliary files which are useful for creating patterns; these files are stored in the system Radiance directory (/usr/local/lib/ray, on most machines).
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Data Pattern Example
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 void }{\b\insrsid10355392 colorpict}{\insrsid10355392  needlepat
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
9 red green blue forestfl.pic picture.cal\\
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\tab match_u  match_v  -s 2
\par 0
\par 0
\par 
\par needlepat }{\b\insrsid10355392 plastic}{\insrsid10355392  groundmat
\par 0
\par 0
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
5  .5  .3  .2  0  0
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
This example of a ground material modified by a pattern called "needlepat" shows how a data function can be used to modify a material.  The needle pattern called "needlepat" is taken from a picture file called "forestfl.pic", which is a scanned image.  Th
e "picture.cal" file is used to specify how the picture file will be used, and contains different variables for different options (such as match_u and match_
v for tiling so the edges match).  The scaling for this data pattern has been set to 2 with the "-s" option.  Note how the modifier "void" is now used for the pattern called "needlepat", and the material in turn uses "needlepat" for its modifier.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 A List of Modifiers
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 void }{\b\insrsid10355392 brightfunc}{\insrsid10355392  filthy
\par 4  dirt  dirt.cal  -s 2
\par 0
\par 1  .6
\par 
\par filthy }{\b\insrsid10355392 colorpict}{\insrsid10355392  needlepat
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
9 red green blue forestfl.pic picture.cal\\
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\tab match_u match_v -s 2
\par 0
\par 0
\par 
\par needlepat }{\b\insrsid10355392 plastic}{\insrsid10355392  groundmat
\par 0
\par 0
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
5  .5  .3  .2  0  0
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 If we now added a functional pattern ca
lled "filthy" to modify our forest floor pattern so that the appearance of regularly spaced tiles would be minimized, we would have a list of modifiers influencing our final "groundmat" material.  The functional pattern used to create dirty surfaces can b
e scaled to whatever factor is desired with the "-s" option (2 in this example), and the intensity of dirt can be provided as a real argument (60% dirt for "filthy").  The "needlepat" modifier for our "groundmat" material is in turn modified by the functi
onal dirt pattern called "filthy", whose modifier is now "void", since it is modified by nothing else.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
This dirt brightness pattern is an extremely valuable companion to any scanned-in pattern for introducing a more natural, uneven look.  The dirt pattern is based on a noise function, so it produces an unpredictably varied pattern.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
It's possible to have as large a string of modifiers as you wish (within reason), so that patterns or textures modify other patterns or textures that in turn modify some material.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard\plain \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\b\insrsid10355392 Note:  Noise Functions
\par }{\insrsid10355392 
\par }\pard \s49\ql \li1440\ri0\sb20\sa20\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \aspalpha\aspnum\faauto\adjustright\rin0\lin1440\itap0 {\insrsid10355392 
There are two basic types of noise functions available that can be used to good effect with patterns.  }{\b\insrsid10355392 Fractal noise}{\insrsid10355392  is the rougher type of noise, that contains a lot of high frequencies, while }{\b\insrsid10355392 
noise}{\insrsid10355392 
 is smoother.  Both types of noise are useful for introducing an element of randomness to the appearance of things, and both two-dimensional and three-dimensional noise functions are available for use with Radiance.  (Look at "rayinit.cal" in /usr/local/l
ib/ray to learn what functions are predefined and find out variable names).
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Mixtures
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Mixtures allow the combination of textures and patterns in unique and exciting ways (eg:  weaving leather strips in burlap cloth)}{\cs36\fs16\up6\insrsid10355392\charrsid10355392 \u8224\'a0{\footnote \pard\plain 
\s37\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\cs36\fs16\up6\insrsid10355392\charrsid10355392 \uc1\u8224\'a0}{\insrsid10355392 
  Radiance does not currently support the mixing of different materials (such as glass and plastic, or two different plastics).}}}{\insrsid10355392 
.  By specifying in the mixture a coefficient that describes a combination of patterns and textures, it's a lot easier to generate pattern and texture combinations (by "toggling" them off or on) than it would be if different pieces of polygons were pieced
 together, and some effects can be produced that can't be produced any other way (such as creating a "soft blend").  There are three basic types of mixtures:  mixfunc, mixdata, and mixtext.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 \f12\fs20\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\b\insrsid10355392 mixfunc}{\insrsid10355392  \tab 
allows specification of a function that determines the mixture coefficients.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }{\b\insrsid10355392 mixdata}{\insrsid10355392  \tab takes information about the mixture from a data file.
\par 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\b\insrsid10355392 mixtext}{\insrsid10355392  \tab handles mixtures of text, such as bumpy lettering on a piece of wood.
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Antimatter
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Antimatter allows the "subtraction" or removal of one surface from another.  Once a surface has been defined as antimatter to another type of sur
face, the subsequent intersection of these two surfaces will result in a "hole" where the two surfaces meet, resulting in the subtraction of a volume from the original surface.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
This feature does not work with all material types (the trans material type, specifically), and care must be taken to avoid intersecting two or more antimatter surfaces in a scene (intersecting antimatter surfaces don't work properly).  Additionally, the 
antimatter surface can't be used with a viewpoint located inside the volume (simply ensure that the viewpoint is located elsewhere).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Antimatter can also be used to describe our previous example of a three-dimensional wall containing a window; an antimatter window can be placed inside a genbox-defined wall.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1035{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw260\pich113\picwgoal5200\pichgoal2260\macpict\bliptag-86266569{\*\blipuid fadbad375a2b02ab97035878f1a1d35e}
0360ffffffff007001031101a00082a10096000c020000000200000000000000a1009a0008fffb00000080000001000a000000000013010203000304010d000e
2b010e1f4275696c64696e6720612057616c6c207769746820416e74696d6174746572a0009701000affffffff00700103098800220088002200310026004200
7000bb09ffffffffffffffff38070000000022002000480000a000a0a100a400020ffb09800008008000080071001e00200042002600c0002600420020004800
2000c0002600ba0026004201000a0000000000000000070001000109ffffffffffffffff220026004206fa23000023780023000023fa06230000238800230000
0a800008008000080084000a0000000000000000a000a301000affffffff0070010384000a00000000000000002306fa23780023fa06238800a000a107000000
0022002000c00000a000a0a100a400020ffb09aa55aa55aa55aa5571001e002000ba006f00c0002600ba002000c0006800c0006f00ba002600ba01000a000000
0000000000070001000109ffffffffffffffff22002600ba06fa23000023004823000023fa072300002300b72300000aaa55aa55aa55aa5584000a0000000000
000000a000a301000affffffff0070010384000a00000000000000002306fa23004823fa072300b7a000a109000000000000000031003f00720057008b09ffff
ffffffffffff38070000000022005600720000a000a0a100a400020ffb09aa55aa55aa55aa5571001e003f007200560077003f00720056007200500077003f00
77003f007201000a0000000000000000070001000109ffffffffffffffff22003f007200172300002305fa2300002300ef23000023fb0023000084000a000000
0000000000a000a301000affffffff0070010384000a00000000000000002300172305fa2300ef23fb00a000a1070000000022005600720000a000a0a100a400
020bfb09800008008000080071001e005000720056008a00500077005600720056008a0050008a0050007701000a0000000000000000070001000109ffffffff
ffffffff2200500077fb062300002318002300002300fa23000023ed002300000a800008008000080084000a0000000000000000a000a301000affffffff0070010384000a000000000000000023fb062318002300fa23ed00a000a1a00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Light Sources
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Because light sources are critical to the illumination of a scene, they are given special attention by the program.  In general, a light source is differentiated from other surfaces by its material type.  Currently polygons, spheres, and disks may be used
 for local sources; area sources and odd shapes may be modeled with polygonal meshes.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Distant light sources such as the sun are modeled as special cases.  A non-Lambertian source distribution (that doesn't emit light equally in all directions) is another kind of special case.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 gensky Example
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # Hemispherical Blue Sky
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\line !gensky  4  1  14
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par skyfunc }{\b\insrsid10355392 glow}{\insrsid10355392  skyglow
\par 0
\par 0
\par 4  .9  .9  1  0
\par 
\par skyglow }{\b\insrsid10355392 source}{\insrsid10355392  sky
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
0
\par 0
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
4  0  0  1  180
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
The generator program called gensky creates a sky that can be used for daylighting calculati
ons or outdoor simulations.  Gensky can create a Radiance scene description for the CIE standard sky distribution at the given date and time; for gensky, the x-axis points east, the y-axis points north, and the z-axis points up (towards the zenith).  The 
sky can be sunny with or without sun, or cloudy.  The materials and surfaces used for describing the sky are left up to the user; this example describes a simple hemispherical blue sky.  Since Radiance has defaults set for the San Francisco bay area, long
itude, lattitude and meridian information need to be supplied for different locations.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\b\insrsid10355392 IES lighting files}{\insrsid10355392 
 are available to all Radiance users that contain Radiance descriptions for a bunch of IES fixtures (and can be found under /usr/local/lib/ray/source/ies).  The files were converted from standard format to Radiance using the "ies2rad" conversion program (
see Radiance Reference Manual).  Lamp color was not used in these files (all are white), because colored lights have to be balanced before they can pro
vide color-balanced renderings.  Light source colors are especially important when comparing incandescents and fluorescents -- the natural color balancing in your eyes compensates for this effect.  The ies2rad program converts one ies file (usually ending
 in ".ies") into a Radiance file (ending ".rad"), and an auxiliary file used by Radiance (ending ".dat") that contains output distribution data.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 If a light source is missing some frequency (part of the color spectrum), it looks color-balanced, but not very
 colorful.  Incandescents can't render blue, violet, and purple very well because they don't have as many higher frequencies (which fluorescents do have).  Color-balancing is the technique of seeing lights that are not heavily weighted in blue, green, or 
any one color.  If color-balancing doesn't take place somewhere (in your eyes, on camera film, with a software filter), the resulting images don't look natural.  Using all white instead of colored lights is kind of a cheat, but Radiance doesn't have any e
asier way to color balance (other than pfilt).  Mixed source types require consideration of the colors of each contributing source, where converging areas show gradiation.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1036{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw334\pich86\picwgoal6680\pichgoal1720\macpict\bliptag-1638437421{\*\blipuid 9e576dd39b142ab4bb16a684a1732e70}
022fffffffff0055014d1101a00082a0008ca10096000c020000000200000000000000a1009a0008fffb0000003d000001000a00000067001300e52c00090003
0647656e65766103000304010d000e2b680e0e4c6967687420537065637472756da00097a0008c01000affffffff0055014d20004300090043013522003e0045
000a22003e00f8000aa10096000c010000000200000000000000a1009a0008fffc00000007000001000a0048003d0054004e04000d0009280052003e03526564
a00097a10096000c010000000200000000000000a1009a0008fffc0000000c000001000a004800ed0054010829b00656696f6c6574a00097a10096000c010000
000200000000000000a1009a0008fffc00000012000001000a0048000000540026280052000108496e667261726564a00097a10096000c010000000200000000
000000a1009a0008fffc00000018000001000a0048011a0054014c280052011b0b556c74726176696f6c6574a00097a10064000a4d44504c000900010003a000
8c01000affffffff0055014d71001e0030004500380053003400450030005300340053003800530034004571001e003000eb003800f9003400f9003800eb0034
00eb003000eb003400f92000340053003400eba0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffb00000025000001000a00270079003300c6280031007a1056697369626c6520537065637472756da00097a0008da0008da00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Radiance uses a RGB (red, green, blue) color model.  Our eyes have receptors for these three colors.  Three well-chosen colors will represent almost all of the colors we're able to see, but it's still not the same as representing all the full spectral con
tent of the scene (since we're only sampling three colors, instead of continuously sampling the entire spectrum).  An example showing how a light source and surface can interact helps to illustrate this point.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Example Source Spectrum
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\tab }{\insrsid10355392 {\pict{\*\picprop\shplid1037{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw148\pich51\picwgoal2960\pichgoal1020\macpict\bliptag-913331360{\*\blipuid c98fab60efc92fab8cf77f79f0e66a22}01dfffffffff003200931101a00082a0008ca0008c01000affffffff00320093200031000100310092220001000100302200010092002fa0008d070000000022
000e000c0000a000a0a100a4000201fc01000a0000000000000000070001000122001200010bfc2311ff230c07230a012306ff2308032306fa2302ff23080623
07fb2306fb23050f23050c2304032305e82305f92305002306042305fd230a062301ffa000a301000affffffff00320093220012000103ff2304ff2305ff2305
ff2302002302002304002304002303012302012302012303022303012302002301002303012303002302ff2302002303012302002301012302002301002302ff
2301ff2301ff2302fe2301ff2300002301002301012302012301012301012302012302002302ff2301ff2302ff2302fe2302fe23000023010023010023010023
01012300002301022301022300002301042302072301032301022301022301022302022300002300002300002301002301fe2300002301fd2300ff2301fc2300
ff2301fd2301fb2301fc2302fd2300ff2301ff2302ff2301ff2301002300002302002303012301012301012301002301002301002301ff230000230200230200230201230201230201230201230000230200230000a000a1a0008da00083ff}}{\insrsid10355392 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
This example of a light source spectrum illustrates the situation where a light source clearly shows a deficiency in the blue range of the spectrum when we look at a graph showing its performance over the entire visual spectrum.  Even though this dip show
s up clearly on our graph, the light source will still appear mostly white to Radiance, since its RGB values would be something like (10,10,8).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Example Surface Spectrum
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\tab }{\insrsid10355392 {\pict{\*\picprop\shplid1038{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw148\pich51\picwgoal2960\pichgoal1020\macpict\bliptag-1879656856{\*\blipuid 8ff6b668fdc1517163d5b23c11e16ff0}01dfffffffff003200931101a00082a0008ca0008c01000affffffff00320093200031000100310092220001000100302200010092002fa0008d070000000022
002900100000a000a0a100a4000201fc01000a0000000000000000070001000122002b00010ffe230fff230b00230bff2306fd2307002305022303fe23030223
07fc2307fe2308ff2305e72303fd23051f2309f92306012304072308fd230703230000a000a301000affffffff0032009322002b000103002307ff2305ff2306
ff2301002302002304002303002303002301002303002306002302002301002304ff2302ff2301002301ff2301002304ff230200230200230201230100230201
2301002301ff2301002301002301002300002301002302002301002301ff2302ff2303ff2302ff2302002304ff2302ff2301002300002301ff2301ff2301fd23
01fe2300ff2301fc2300ff2300ff2301fd2301fd2300ff2301fd2300002301fe2300ff2300002300002300002301002301032301012300022301032301042300
012300022301042300022301022301022301012301002300002301ff2302ff2302ff2301002302002301002301002301002301012301012301012301012300012303012301002301ff230200230300230200230402a000a1a0008da00083ff}}{\insrsid10355392 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
An example surface that just happens to have a reflectance peak in the blue range would look blue under white light, and might have RGB values something like (.5,.5,.7), which don't fully describe the striking peak in the blue range that we can see when w
e look at the entire visual spectrum.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Example Reflected Spectrum
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\tab }{\insrsid10355392 {\pict{\*\picprop\shplid1039{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw148\pich51\picwgoal2960\pichgoal1020\macpict\bliptag816236070{\*\blipuid 30a6c626202092d59983a2ba21bfa615}0185ffffffff003200931101a00082a0008ca0008c01000affffffff00320093200031000100310092220001000100302200010092002fa0008d070000000022
002600100000a000a0a100a4000201fe01000a0000000000000000070001000122002600010f00230eff230b00230a002308022307ff2305fd2306012306fc23
05022306ff2305fd2306002305ff2304012308fe2306022305002305ff2304012303ffa000a301000affffffff00320093220026000104002306002305002306
ff2301002304002306002303002303002305002302002303002304012302002302012304002302002301002303fe2301ff2301002304ff230100230000230200
2302002301002301ff2300002302ff2301002303002300002301012302002302ff2302002302ff2301ff2301002304ff2301002302002302002301ff23020023
02002301002301012303002302ff2302002303002302002302012303002301002301002302002302ff2301002302002301002301012302002302ffa000a1a0008da00083ff}}{\insrsid10355392 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
When our example surface is viewed under our example light source, the peak and the deficiency cancel e
ach other out, and the surface that should appear bluish instead appears grey, with RGB values on the order of (5,5,5.6).  This example illustrates the point that taking only three color samples is inadequate; the RGB system is the best we have to work wi
th, but it's important to understand its limitations as well.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The file called "lamp.tab" (located under /usr/local/lib/ray) contains all sorts of useful lamp information, including:  lamp types, xy chromaticity coordinates, and depreciation lists.  This in
formation is useful for looking up the RGB values of different types of lamps.  For example, an incandescent lamp has an x-chromaticity of .453 (Red) and a y-chromaticity of .405 (Green) with a depreciation factor of .95.  Since the chromaticity factors h
ave been normalized to one, the Blue value can be computed (Blue = 1 - .453 - .405 = .152).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
When you choose to determine your light source's radiance yourself, without aid from the IES files, there is a four-step process you can follow.  Starting with the 
lumen value of the light source you wish to describe to Radiance, you will need to convert the lumens to watts (power), and divide by the area of the source.  The fourth and final step is compensating by some depreciation value.  The result from using thi
s computation will be a light value you can use for the RGB values in Radiance when you create your light source primitive}{\cs36\fs16\up6\insrsid10355392\charrsid10355392 \u8224\'a0{\footnote \pard\plain 
\s37\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\cs36\fs16\up6\insrsid10355392\charrsid10355392 \uc1\u8224\'a0}{\insrsid10355392 
 You can use about 15 lumens/watt for an incandescent source, as a general rule of thumb.  A 50 watt incandescent bulb is approximately equivalent to 500 lumens.}}}{\insrsid10355392 .
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Computing radiance
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 (1)\tab Determine light output in lumens.\line (2)\tab Convert lumens to watts\line \tab \tab (multiply by 1 watt / 179 lumens)\line (3)\tab Divide
 watts by emitting area of source\line \tab \tab in square meters and by \u960\'b9, \line \tab \tab resulting in final units of\line \tab \tab watts/steradians/meter}{\fs18\up6\insrsid10355392 2}{\insrsid10355392  for R,G, & B.\line (4)\tab 
Compensate for fixtures and lumen depreciation\line \tab \tab (in the range 5% to 20%).
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Example radiance computation
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 (1) 860 lumens
\par (2) 860 *(1/179)=4.80 watts
\par (3) (4.80/(3.5"*
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
       (.0254 m/inch))}{\fs18\up6\insrsid10355392 2}{\insrsid10355392 *4* \u960\'b9)/\u960\'b9\line \tab =15.4watts/steradian/meter}{\fs18\up6\insrsid10355392 2}{\insrsid10355392 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
(4) 14.5 w/sr/m}{\fs18\up6\insrsid10355392 2
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
An example of computing Radiance for an incandescent bulb with output of 860 lumens (which we looked up in a manufacturer's table) will help illustrate this process.  We convert our 860 lumens to watts in step two, and divide the value in watts by 4\u960
\'b9 and the area of a 3.5 inch sphere.  Our final result of 15.4 w/sr/m}{\fs18\up6\insrsid10355392 2}{\insrsid10355392  is reduced to 14.5 w/sr/m}{\fs18\up6\insrsid10355392 2}{\insrsid10355392 
, to compensate for lumen depreciation of the bulb and the fixture.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The computation outlined above is embodied in a program called LAMPCOLOR for your convenience.  LAMPCOLOR asks questions about the lamp type, output and geometry and computes the radiance value accordingly.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Importing from CAD Systems
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Radiance typically operates in conjunction with a commercial computer aided drafting (CAD) system, which is used to create the scene geometry.  An import program takes the CAD scene description and converts it to the Radiance input format.  Details such a
s surface properties are added, analysis is performed, and design modifications are made based on the result.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \page 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Tutorial Example
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
We've chosen an example of a cabin in the woods for this tutorial, which we'll start in this section and continue workin
g on in the following chapters.  The floorplan is shown below, and some of the pine forest surroundings are also shown.  Since we'll need to describe the scene before we can generate and manipulate images, we'll be starting off by defining a few materials
 for the scene, setting up the basic geometry (walls, the door, and windows), and describing the basic setting of sky and ground surrounding the cabin.  Once we've gotten the basics defined, we'll also be experimenting with patterns and textures in the ca
bin, and using instancing to create a forest of pine trees.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
This example is a fairly simple building structure, yet it will allow us to learn the skills necessary to complete much more complex scene descriptions.  In the following chapters, we will be using this scene description to learn about Radiance's image ge
neration and image manipulation capabilities.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 {\pict{\*\picprop\shplid1040{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}
\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw531\pich438\picwgoal10620\pichgoal8760\macpict\bliptag2009081470{\*\blipuid 77c0267e0806997c906badb87c986619}
349cffffffff01b502121101a0008201000affffffff01b502120900000000000000003100cb019c011401b509ffffffffffffffff380900000000000000000b
0006000641006b008e008600ac09ffffffffffffffff48070000000022018d004a0000a000a0a100a4000201fb01000a0000000000000000070001000122017f
004bff0e2306fd2306f7230a0923060423fffd23fdf62304fd2309fd23ffff23f9fa2303ff230a002306fb23f7fb23fafe2306f323f90223fc022300f723fcfc
23f70a23f4f623050b23020423e9fc23010023080c23ff0023fa0223fd0723030023080023f20b23fc042306fe2308fe23ff0223ff072302ff2309fa23fe02a0
00a301000affffffff01b5021222017f004b00012300032300032300032300002301022300002301002300002300002302ff2301ff2302fe2301ff2300002301
ff2301ff2301002301002302002300002301012301012303022304032301012301012301002301002300002300ff23000023fffe23000023fffd2300ff2300ff
23fffe2300fe2301ff2300002300002301ff2302ff2303ff2301002304fe23000023fefe23fefe23ffff23feff2300ff2301002300002300002302ff23010023
02002301002301002302002302ff2302ff2301ff2300002301ff2300fe23ffff23ffff23feff23fcff23feff23000023ffff2300fe2300fe2301fe2301fe2301
fd23000023ffff23ff0023fe0123fd0123ff0023000023fe002300ff2300ff2300ff2300ff2300fe23fffd23000023ffff23000023feff23ff0123fd0223ff01
23000023fe0223000023fe0123ff0023feff23000023feff23ffff23ffff23ffff23ff0023000023ff002300ff23000123000223000023010223010223010223
010223000023000023000123ff0023000023fe0023ff0023fe0023fdff23ff0023ff0023fcff23ff0023fe0023feff23ff002300002300002300002304062304
0623000023fd0123ff0023000023fe0123ff0123ff0223ff01230000230001230001230001230000230100230300230200230100230000230000230001230001
23ff0123000023fe0123ff0123fe0223fd0223fe0223fe0223000023ff012300012300ff2302002300002301002304ff2302ff23010023010023010023010023
000023ff012300022300012300012300012300012300012300002300002301ff2302ff2301ff2302ff2301ff2302ff23000023000023ff01a000a10900000000
0000000031004101470066019109ffffffffffffffff382200bf007048000900000000000000000b001b001b4100a0007200b900b009ffffffffffffffff48a0
008c09000000000000000051007400780087008709ffffffffffffffff580900000000000000000b0011001141006b00750075008b09ffffffffffffffff48a0
008d0900000000000000005100730094008300a609ffffffffffffffff580900000000000000003100fb0070013200b909ffffffffffffffff38070000000022
016400b80000a000a0a100a4000201fb01000a0000000000000000070001000122017100b800f323fb0323fa0823f6f723fafd23010223030a23fd0323f70323
010023060623fe0123f60023fb0523080523060123fa0d2307fe2303fe2300092305042308f6230b0a23fcf523fefc23150423000023f8f52301002306fe2303
f923fd0023f800230ef62304fc23fa0223f8012301ff2301f923fe0123f8062301fea000a301000affffffff01b5021222017100b800fe2300fe2300fe23fffd
2300fe23000023ffff23000023ff0023ff0123fe0323fe0223000023ff0123fe0123000023ff0023feff23000023ffff23ffff23ffff23fdfe23feff23feff23
000023000023ffff23ff002300ff23000123000023000123010223010223000123000123000223000223000023ff0123000023ff0123ff0123fd0123ff0023fc
0223000023010023010123010123010123010123010123000123000123000023000023ff0023fe0023fe0023ff0023ff0023fe0023fe0123fe0123ff0123ff01
23000123010123010123010023010123020123020123010023010023000023020223000123ff0323ff0223ff022300012300012300012301002301002302ff23
00002302ff2300002300002302002300012300012300012300012300022301032301012300002301012302002301ff2302fe2301ff2301ff2301ff2300002301
002302002302002300002302012301012301012301012300002301002301002300ff23000023fffe2300002300ff23fffe23fffe23fffe2300002300002300ff
230100230000230200230100230200230301230100230a0223fcfa23fcfb2301002301002302ff2300002302ff2301ff2301fe2300ff2301ff2300002300ff23
00ff23000023ff0023fd0023fe0023000023ff002300002300ff2300ff2301ff2300002302ff2301ff2301ff2303fe2302fe2302ff2301ff2300002301fe2300
0123fe0023000023fe0123fd0023fe0023fc012300002301fe2300fe2300ff2301fe23000023ffff23000023000023ff0123ff0123fe0123ff0123ff0123fe01
23ff002301002300ffa000a10900000000000000000b001b001b4100fb00700132007f09ffffffffffffffff48a0008c0900000000000000000b000b000b4101
210147013a019c09ffffffffffffffff48090000000000000000410121014d0134016609ffffffffffffffff48090000000000000000410121017d0134019609
ffffffffffffffff4809000000000000000041012101650134017e09ffffffffffffffff48a0008d09000000000000000031011f01290138014209ffffffffff
ffffff380900000000000000003100bf008800d200ad09ffffffffffffffff38a0008c0900000000000000004100c5012a011a014309ffffffffffffffff4809
00000000000000004100cb013000e4014309ffffffffffffffff480900000000000000004100fb01300114014309ffffffffffffffff48090000000000000000
4100e3013000fc014309ffffffffffffffff48a0008d07000000002200fb001c0000a000a0a100a4000201fb01000a000000000000000007000100012200ee00
1c000d2305fd2307f8230a0923060323fffe23fdf62303fd230afd23ffff23f9fa230200230bff2306fb23f7fc23f9fe2307f323f90223fc022300f723fbfc23
f70a23f5f623040b23020423eafc23000023090b23ff0023fa0223fc082303ff23080023f20b23fd042305fe2309fe23ff0123fe082303ff2309f923fe03a000
a301000affffffff01b502122200ee001c00022300022300022301032300022300002301012300002301002301ff2303fd2302fe2300002301ff2302ff230000
2301002302012300002301012301012301012303022302012302012300002301012300002301002300002300002300002300ff23fffe2300ff23fffe2300ff23
00fe2300fe2301ff2300002300002301ff2301ff2303ff2301002301002302ff2301ff2300002300002300002300ff23ffff23feff23ffff23ffff23ffff2300
002300ff2300002300002301002302002303ff2301002301002302002302ff2302ff2301ff2300002301ff2300ff23ffff23feff23feff23fcff23feff230000
23ffff2300fe2300fd2301fe2301ff2301fd2300ff23ff0023ff0023fe0123fe0123ff0023000023ff0023ffff2300fe2300ff2300fe23fffd23ffff23000023
fdff23ff0123fe0223ff0123ff0123ff0123ff0023fe0123000023feff23ff0023ffff23ffff23ffff23ffff23ff0023000023ff002300ff2300012300022300
0023010223000223010223010223000023000023000123ff0023000023fe0023ff0023fe0023fdff23ff0023f5fe230506230101230102230101230001230000
23fd0123000023fe0123ff0123ff0223ff0123000123ff0123000123000023010023000023010023010023020023010023010023000023000023000123000123
ff0123000023fe0123ff0123fe0223fd0223fe0223fe0223000023000023000123ff002302002300002301002304ff2302ff23010023020023010023010023ff
0023ff0423000123000123000123ff002301002301002300002302ff2302ff2301ff2301ff2301ff23010023010023ff01a000a10700000000220164012c0000
a000a0a100a4000201fb01000a00000000000000000700010001220171012b01f323fa0323fa0823f7f723fafd23010223030a23fc0323f70323010023070623
fe0123f50023fb0523090523050123fb0d2306fe2304fe2300092304042309f6230b0a23fcf523fdfc23160423ff0023f8f52301002306fe2304f923fd0023f8
00230df62304fc23fb0223f8012300ff2302f923fe0123f7062302fea000a301000affffffff01b50212220171012b00ff2300fd2300fd2300fe2300ff2300ff
23ffff23000023ff0023ff0123fd0323fe0223000023ff0123ff0123ff0023000023feff23000023ffff23ffff23ffff23fdfe23feff23feff23000023000023
ffff23ff0023ff0023000023000023010223000023010323000123010223000123000223000023ff0123ff0123fd0223fe0023fe0123ff0023ff012300002300
0023030323010123010123010123000023000123000023ff0023fe0023fe0023fe0023ff0023fe0023fe0123ff0123ff0123ff01230000230002230101230100
23020123020123020123010023010023000023010223000223000223ff0223ff022300012300012300012301002301002303ff2301ff23000023020023000123
00012300012300012300022301032301012300002301012301002301ff2302fe2301ff2301ff2301ff2301002301002301002302002301002301012301012301
012301012301002300002302002300ff23000023fffe2300002300ff23fffe23fffe23fffe2300002300002300002300ff230100230100230100230200230301
230100230b0223000023feff2300ff23fefe23fffe23ffff23fffe23ffff2300ff2300002303ff2300002302ff2301ff2302fe2300ff2301ff2300ff2300ff23
000023ff0023000023ff0023ff0023fe0023ff0023000023ff002300002300ff2300ff2301ff2300002302ff2301ff2301ff2303fe2302fe2301ff2301ff2300
002301fe23000123fe0023000023ff0123fd0023fe0023fc012300002301fd2300ff2300ff2301fe23000023ffff23000023000023ff0123fe0123ff0123fe01
23ff0123fe012300002301ff230000a000a1070000000022016501aa0000a000a0a100a4000201fb01000a0000000000000000070001000122017201a901f323
fa0323fa0823f7f823fafd23010223030923fc0323f70323010123070623fe0023f50123fb0523090423050223fb0d2306fd2304fe2300092304042309f6230b
0a23fcf623fdfb23160423ff0023f8f52301002306fe2304f923fd0123f800230df52304fc23fb0223f8022300ff2302f823fe0223f7062302fda000a301000a
ffffffff01b5021222017201a900ff2300fd2300fd2300fe2300002300ff23ffff23ff0023000023000023fe0123ff0123fe0223ff0123ff0123ff0123fe0023
feff23ffff23fefe23fcfd23feff23000023ff0023ff0023ff0023000023000023010223000023010223000123010223000123000223000123ff0123ff0123fd
0123fe0123ff0023fe0123ff0023000023000023000023000123010123010123010123010123020123010123ff0023000023000023ff0023fe0023fd0123ff00
23ff0023fe0023fd0123ff0123000023ff0123000123000223010123010023030123040223010023000023010123000223000223ff0223000023ff0323000023
00012300012300012300ff2301002300002301002303ff2301ff2300002301002301012300022300012300022301032301012301012301002301ff2302fe2301
ff2301ff2301ff2301002301002301002302002301002301012301012301012301012301002301012300002301ff23000023fffe2300002300ff23fffe23fffe
23fffe2300002300002300002300fe230100230100230100230200230301230100230b0223000023feff23ffff23fffe23ffff23ffff23fffe23fffe2300ff23
00002303ff2301002303fe2301fe2301ff2300ff2300ff2300ff23ff0023000023fe0123ff0023ff0023ff0023000023ff002300002300ff2300ff2301ff2300
002302ff2301ff2301ff2303fd2302fe2301ff2301ff2300002301fe23000123fe0023000023ff0123fd0123fe0023ff0023fe0123000023ffff2300002301fc
2300ff2301fe23000023000023ff0023000023ff0123fe0123ff0123fe0123ff0123fe012301002300fe230000a000a1070000000022017001f60000a000a0a1
00a4000201fb01000a0000000000000000070001000122016501f6000b23fbfe23fbf923f70723fa032301fe2302f823fefd23f7fe2301ff2306fb23feff23f6
0023fcfc2307fc2306fe23faf52307022303022300f82304fd230808230af823fd0923fe042313fc23000023f80a23010023060223030623feff23f800230d09
23030423fbfe23f8ff23010123020623fdff23f9fb230102a000a301000affffffff01b5021222016501f6000123000223000223000223ff0223000123000023
000023ff0023000023feff23ffff23fefe23ffff23000023ffff23fd0023fe0123ff0123fe0223fd0223fe0123000023fe0123000023ffff2300002300002301
fe2300002301fe2300ff2300ff2301fe23000023fffe23000023000023ffff23ffff23fdff23ff0023ff0023feff23000023ffff2300002301002302ff2301ff
2301ff2301ff2300002300ff23000023000023feff23ff0023fe0023ff0023ff0023fe0023fdff23000023ffff23000023fffe2300002301ff2301ff2302ff23
03ff2302ff2300002302fe23000023fffe23fffe23fffe2300ff2300ff2300ff2301002301002302012300002302012300002300002302002300ff2300ff2300
ff2300ff2300ff2301fe2301ff2300002300002302ff2302012301012301012301012302012302002303ff2301ff2301ff2302ff230100230001230001230001
23ff0223ff0223ff022300002300002300012301002300002301002301002301002303ff230100230afe23fc0523ff0123ff0223ff0123000123000023030123
020123020223010123000023010223000023ff0123000023000023feff23ff0023ff0023ff0023000023ff0023000023ff012301012300002301012301012301
0123020123030223010123020223000023010123000023000023ff0023000023ff0023fcff23fe0023ff0023feff23ff00230100230000230001230102230001
23000023010223000023ff0123000023ff0023fdfe23fefe23000023feff230000230000230001a000a1070000000022007700280000a000a0a100a4000201fb
01000a000000000000000007000100012200690028000e2305fd2307f8230a0923060323fffd23fdf72303fd230afd23ffff23f9fa2302ff230bff2306fb23f7
fc23f9fe2307f223f90323fc022300f623fbfd23f70a23f5f623040a23020523eafc23000023090b23ff0023fa0223fc082303ff23080023f20b23fd052305fe
2309fe23ff0123fe082303fe2309fa23fe03a000a301000affffffff01b502122200690028000223000223000323010323000223000023010123000023010023
01ff2303fd2302fe2301ff2302ff2302002302012301012301012302022303022302012300002301012300002301002300002300002300ff23fffd23fffe2300
ff2300fe2300fd2301ff2300002300002302ff2301ff2301002302ff2301002302ff2301002300002300ff23fcfd23ffff23ffff2300ff2300002300ff230000
2301002302002303002301002302002305fe2301ff2301ff2300ff2300ff23ffff23feff23feff23fcff23feff23000023ffff2300fe2300fd2301fe2301ff23
00ff2301fe2300002300ff23000023000023fe0023000023fe0123fe0123ff0023000023ff0023ffff2300fe2300ff2300ff2300fe23fffd23000023ffff2300
0023fe0023fe0123fe0223ff0123ff0123ff0123ff0023fe0123000023feff23ff0023ffff23ffff23ffff23ffff23ff0023000023ff002300ff230001230002
23000023010323020423000123000023000123ff0023000023fe0023ff0023fe0023fdff23ff0023f5fe23050623010123010223010123000123000023fd0123
000023fe0123ff0123ff0223ff0123000123ff022300012301002300002300002302ff23010023010023010023010023000023000023000223000023ff0123ff
0123ff0123ff0123ff0123fd0223fe0223fd022300002300002300012300022301ff2300002301002304ff2302ff2301002302ff230100230000230000230000
23000123000123ff0223000123000123000123000123ff002301002301002303fe2302fe2302ff23000023010023010023ff01a000a107000000002200200094
0000a000a0a100a4000201fb01000a0000000000000000070001000122002d009400f323fb0323fa0823f6f723fafd23010223030a23fd0323f7032301002306
0623fe0123f60023fb0523080523060123fa0d2307fe2303fe2300092305042308f6230b0a23fcf523fefc23150423000023f8f52301002306fe2303f923fd00
23f800230ef62304fc23fa0223f8012301ff2301f923fe0123f8062301fea000a301000affffffff01b5021222002d009400fe2300fe2300fe23fffd2300fe23
000023ffff23000023ff0023ff0123fe0323fe0223000023ff0123fe0123000023ff0023feff23000023ffff23ffff23ffff23fdfe23feff23feff2300002300
0023ffff23ff002300ff23000123000023000123010223010223000123000123000223000223000023ff0123000023ff0123ff0123fd0123ff0023fc02230000
23010023010123010123010123010123010123000123000123000023000023ff0023fe0023fe0023ff0023ff0023fe0023fe0123fe0123ff0123ff0123000123
010123010123010023010123020123020123010023010023000023020223000123ff0323ff0223ff022300012300012300012301002301002302ff2300002302
ff2300002300002302002300012300012300012300012300022301032301012300002301012302002301ff2302fe2301ff2301ff2301ff230000230100230200
2302002300002302012301012301012301012300002301002301002300ff23000023fffe2300002300ff23fffe23fffe23fffe2300002300002300ff23010023
0000230200230100230200230301230100230a0223fcfa23fcfb2301002301002302ff2300002302ff2301ff2301fe2300ff2301ff2300002300ff2300ff2300
0023ff0023fd0023fe0023000023ff002300002300ff2300ff2301ff2300002302ff2301ff2301ff2303fe2302fe2302ff2301ff2300002301fe23000123fe00
23000023fe0123fd0023fe0023fc012300002301fe2300fe2300ff2301fe23000023ffff23000023000023ff0123ff0123fe0123ff0123ff0123fe0123ff0023
01002300ffa000a1a0008ca100d8000400004000a100d6000400004000a000d707000000000800172100ae018aa100ca00080000000000000000a100c8000800
0000c700c700160900000000000000004100a2017800bb019d070001000109ffffffffffffffff48a000c9a100d6000400004000a000d7a000d9a100d6000400
004000a100d8000400004000a000bea000d9080008090000000000000000710086009e017700be019e00ba019900bb019900bb019900bc019800bd019600bd01
9600be019500be019300bd019200b5017b00b5017a00b3017900b2017800b1017800af017700ae017700a2017b00a1017c00a0017d009f017e009f017f009e01
82009e018300a6019a00a7019b00a8019d00a9019d00aa019e00ac019e00ae019d00ba019909ffffffffffffffff700086009e017700be019e00ba019900bb01
9900bb019900bc019800bd019600bd019600be019500be019300bd019200b5017b00b5017a00b3017900b2017800b1017800af017700ae017700a2017b00a101
7c00a0017d009f017e009f017f009e0182009e018300a6019a00a7019b00a8019d00a9019d00aa019e00ac019e00ae019d00ba0199a100d8000400004000a000
bfa000d9a000d7a100d8000400004000a100d6000400004000a000d707000000000800172200ba0199f0f7a100ca00080000000000000000a100c80008000000
c700c700160900000000000000004100a8017d00bb0196070001000109ffffffffffffffff48a000c9a100d6000400004000a000d7a000d9a100d60004000040
00a100d8000400004000a000bea000d908000809000000000000000071007e00a6017d00bc019700b8019400b9019400bb019200bb019100bc019000bc018e00
bb018c00b7018000b7017f00b5017e00b4017d00b3017d00b1017d00b0017d00aa017f00a8018000a7018100a6018200a6018300a6018500a6018600aa019200
ab019400ac019600ad019600ae019700b0019700b1019600b8019409ffffffffffffffff70007e00a6017d00bc019700b8019400b9019400bb019200bb019100
bc019000bc018e00bb018c00b7018000b7017f00b5017e00b4017d00b3017d00b1017d00b0017d00aa017f00a8018000a7018100a6018200a6018300a6018500
a6018600aa019200ab019400ac019600ad019600ae019700b0019700b1019600b80194a100d8000400004000a000bfa000d9a000d7a0008da0008ca100d80004
00004000a100d6000400004000a000d707000000000800172000b80194012c00e8a100ca00080000000000000000a100c80008000001350134fffc0900000000
0000000041012000d6013900fb070001000109ffffffffffffffff48a000c9a100d6000400004000a000d7a000d9a100d6000400004000a100d8000400004000
a000bea000d9080008090000000000000000710086011900d5013f00fa013600d7013600d7013400d6013200d5013100d5012f00d6012e00d7011b00e6011a00
e7011900e9011900ea011900eb011a00ed011a00ee012200f8012300f9012500fa012600fa012700fa012900fa012a00f9013d00e9013e00e9013f00e7013f00
e5013f00e5013f00e4013f00e2013f00e2013e00e1013600d709ffffffffffffffff700086011900d5013f00fa013600d7013600d7013400d6013200d5013100
d5012f00d6012e00d7011b00e6011a00e7011900e9011900ea011900eb011a00ed011a00ee012200f8012300f9012500fa012600fa012700fa012900fa012a00
f9013d00e9013e00e9013f00e7013f00e5013f00e5013f00e4013f00e2013f00e2013e00e1013600d7a100d8000400004000a000bfa000d9a000d7a100d80004
00004000a100d6000400004000a000d7070000000008001722013600d70ef4a100ca00080000000000000000a100c80008000001350134fffc09000000000000
000041012100d9013400f2070001000109ffffffffffffffff48a000c9a100d6000400004000a000d7a000d9a100d6000400004000a100d8000400004000a000
bea000d9080008090000000000000000710086011e00d9013700f2013200db013100da012f00d9012e00d9012d00d9012a00da012a00da012000e2011f00e301
1e00e5011e00e6011e00e6011e00e7011e00e9011f00ea011f00ea012300ef012400f0012600f2012700f2012800f2012a00f1012b00f0013500e8013600e801
3700e6013700e5013700e4013700e1013600e0013200db09ffffffffffffffff700086011e00d9013700f2013200db013100da012f00d9012e00d9012d00d901
2a00da012a00da012000e2011f00e3011e00e5011e00e6011e00e6011e00e7011e00e9011f00ea011f00ea012300ef012400f0012600f2012700f2012800f201
2a00f1012b00f0013500e8013600e8013700e6013700e5013700e4013700e1013600e0013200dba100d8000400004000a000bfa000d9a000d7a0008d07000000
0022012d01e10000a000a0a100a40002010001000a0000000000000000070001000122011f01e1000e2305fd2307f7230a0923060423fffd23fdf62303fd230a
fd23ffff23f9fa2302ff230b002306fb23f7fb23f9fe2307f323f90223fc022300f723fbfc23f70a23f5f623040b23020423eafc23000023090c23ff0023fa02
23fc0723030023080023f20b23fd042305fe2309fe23ff0223fe072303ff2309fa23fe02a000a301000affffffff01b5021222011f01e1000223000223000323
01032300012300002300012302002300002300002301ff2302ff2302fe2301ff2300002301ff2301ff2301002301002302002300002301012301012303022304
032301012301012301002300002300ff2300002300002300ff23fffe2300ff23fffe2300ff2300fe2300fe2301ff2300002300002301ff2301ff2303ff230100
2301002302ff2301ff2300002300002300002300ff23ffff23feff23ffff23ffff23ffff2300002300ff2300002300002302ff23020023020023010023010023
02002302ff2302ff2301ff2300002301ff2300ff23fffe23feff23feff23fcff23feff23000023ffff2300fe2300fe2301fe2301fe2301fe2300fe23ff0023ff
0023fe0123fe0123ff0023000023fe002300ff2300ff2300ff2300ff2300fe23fffd23000023ffff23000023fdff23ff0123fe0223ff0123ff0123ff0123ff00
23fe0123000023feff23ff0023ffff23ffff23ffff23ffff23ff0023000023ff002300ff23000123000223000023010223000223010223010223000023000023
000123ff0023000023fe0023ff0023fe0023fdff23ff0023f5fe23050623010223010123010223000123000023fd0123000023fe0123ff0123ff0223ff012300
0023ff0223000123010023000023000023010023010023020023010023010023000023000023000123000123ff0123000023fe0123ff0123fe0223fd0223fe02
23fe0223000023000023000123ff002302002300002301002304ff2302ff23010023020023010023010023ff0023000123000123ff0223000123000123000123
00012300002301002303fe2302fe2302ff2301ff23010023000023ff01a000a1070000000022009601f30000a000a0a100a40002010001000a00000000000000
0007000100012200a301f300f323fb0323fa0823f6f823fafd23010223030923fd0323f70323010123060623fe0023f60123fb0523080423060223fa0d2307fd
2303fe2300092305042308f6230b0a23fcf623fefb23150423000023f8f52301002306fe2303f923fd0123f800230ef52304fc23fa0223f8022301ff2301f823
fe0223f8062301fda000a301000affffffff01b502122200a301f300fe2300fe2300fe23fffd2300ff2300002300ff23fe0023000023000023ff0123ff0123fe
0223ff0123ff0123ff0123fe0023fdff23ffff23fefe23fcfd23feff23000023ff0023ff002300ff230001230000230001230102230101230001230001230002
23000323000023ff0123000023fe0123ff0123fe0123ff0023fc0123010123020223010123010123010123000023000123000023000023ff0023ff0023fd0123
ff0023fe0023fc0123fe0123000023ff0323010123010123010023020123040223010023000023020223000123ff0223ff0223000023ff032300002300012300
012300012300ff2301002300002301002302ff2300002302ff2300002300002301002301012300022300012300022301032301012301012302002301ff2302fe
2301ff2301ff2301ff23000023010023020023020023000023020123010123010123010123000023020123ff002301ff23000023fffe2300002300ff23fffe23
fffe23fffe2300002300002300ff2300002302ff230100230100230200230301230100230a0223fcfb23fcfa2301002301002302ff2301002302fe2301fe2301
ff2300ff2300ff2300ff23000023ff0123fd0023fe0023000023ff002300002300ff2300ff2301ff2300002302ff2301ff2301ff2304fd2302fe2301ff2301ff
2300002301fe23000123fe0023000023fe0123fd0123fe0023ff0023fe0123000023ffff2300002300002301ff2300ff2300ff2300ff2300ff2301fe23000023
000023ff0023000023ff0123ff0123fe0123ff0123ff0123fe012300002300ff2300ffa000a1070000000022001e00e50000a000a0a100a40002010001000a00
00000000000000070001000122002b00e500f323fb0323fa0823f6f823fafd23010223030923fd0323f70323010123060623fe0023f60123fb05230804230602
23fa0d2307fd2303fe2300092305042308f6230b0a23fcf623fefb23150423000023f8f52301002306fe2303f923fd0123f800230ef52304fc23fa0223f80223
01ff2301f823fe0223f8062301fda000a301000affffffff01b5021222002b00e500fe2300fe2300fe23fffd2300ff2300002300ff23fe0023000023000023ff
0123ff0123fe0223ff0123ff0123ff0123fe0023fdff23ffff23fefe23fcfd23feff23000023ff0023ff002300ff230001230000230001230102230101230001
23000123000223000323000023ff0123000023fe0123ff0123fe0123ff0023fc0123010123020223010123010123010123000023000123000023000023ff0023
ff0023fd0123ff0023fe0023fc0123fe0123000023ff0323010123010123010023020123040223010023000023020223000123ff0223ff0223000023ff032300
002300012300012300012300ff2301002300002301002302ff2300002302ff230000230000230100230101230002230001230002230103230101230101230200
2301ff2302fe2301ff2301ff2301ff23000023010023020023020023000023020123010123010123010123000023020123ff002301ff23000023fffe23000023
00ff23fffe23fffe23fffe2300002300002300ff2300002302ff230100230100230200230301230100230a0223fcfb23fcfa2301002301002302ff2301002302
fe2301fe2301ff2300ff2300ff2300ff23000023ff0123fd0023fe0023000023ff002300002300ff2300ff2301ff2300002302ff2301ff2301ff2304fd2302fe
2301ff2301ff2300002301fe23000123fe0023000023fe0123fd0123fe0023ff0023fe0123000023ffff2300002300002301ff2300ff2300ff2300ff2300ff23
01fe23000023000023ff0023000023ff0123ff0123fe0123ff0123ff0123fe012300002300ff2300ffa000a1070000000022013a002b0000a000a0a100a40002
010001000a0000000000000000070001000122012f002b000b23fbfe23fbf923f70723fa032301fe2302f823fefd23f7fe2301ff2306fb23feff23f60023fcfc
2307fc2306fe23faf52307022303022300f82304fd230808230af823fd0923fe042313fc23000023f80a23010023060223030623feff23f800230d0923030423
fbfe23f8ff23010123020623fdff23f9fb230102a000a301000affffffff01b5021222012f002b000123000223000223000223ff0223000123000023000023ff
0023000023feff23ffff23fefe23ffff23000023ffff23fd0023fe0123ff0123fe0223fd0223fe0123000023fe0123000023ffff2300002300002301fe230000
2301fe2300ff2300ff2301fe23000023fffe23000023000023ffff23ffff23fdff23ff0023ff0023feff23000023ffff2300002301002302ff2301ff2301ff23
01ff2300002300ff23000023000023feff23ff0023fe0023ff0023ff0023fe0023fdff23000023ffff23000023fffe2300002301ff2301ff2302ff2303ff2302
ff2300002302fe23000023fffe23fffe23fffe2300ff2300ff2300ff2301002301002302012300002302012300002300002302002300ff2300ff2300ff2300ff
2300ff2301fe2301ff2300002300002302ff2302012301012301012301012302012302002303ff2301ff2301ff2302ff23010023000123000123000123ff0223
ff0223ff022300002300002300012301002300002301002301002301002303ff230100230afe23fc0523ff0123ff0223ff012300012300002303012302012302
0223010123000023010223000023ff0123000023000023feff23ff0023ff0023ff0023000023ff0023000023ff01230101230000230101230101230101230201
23030223010123020223000023010123000023000023ff0023000023ff0023fcff23fe0023ff0023feff23ff0023010023000023000123010223000123000023
010223000023ff0123000023ff0023fdfe23fefe23000023feff230000230000230001a000a1a10096000c010000000200000000000000a1009a0008fffb0000
003e000001000a0000000f0013008e2c000900030647656e65766103000304010d000e2b100e0f436162696e20466c6f6f72706c616ea00097a10096000c0100
00000200000000000000a1009a0008fffc00000039000001000a01a4001001b4008404000d000c2801b00011136f6e6520696e6368203d207369782066656574
a0009701000affffffff01b50212070000000022007f01d50000a000a0a100a4000201fc01000a0000000000000000070001000122007101d5000e2305fd2307
f7230a0923060423fffd23fdf62303fd230afd23ffff23f9fa2302ff230b002306fb23f7fb23f9fe2307f323f90223fc022300f723fbfc23f70a23f5f623040b
23020423eafc23000023090c23ff0023fa0223fc0723030023080023f20b23fd042305fe2309fe23ff0223fe072303ff2309fa23fe02a000a301000affffffff
01b5021222007101d500022300022300032301032300012300002300012302002300002300002301ff2302ff2302fe2301ff2300002301ff2301ff2301002301
002302002300002301012301012303022304032301012301012301002300002300ff2300002300002300ff23fffe2300ff23fffe2300ff2300fe2300fe2301ff
2300002300002301ff2301ff2303ff2301002301002302ff2301ff2300002300002300002300ff23ffff23feff23ffff23ffff23ffff2300002300ff23000023
00002302ff2302002302002301002301002302002302ff2302ff2301ff2300002301ff2300ff23fffe23feff23feff23fcff23feff23000023ffff2300fe2300
fe2301fe2301fe2301fe2300fe23ff0023ff0023fe0123fe0123ff0023000023fe002300ff2300ff2300ff2300ff2300fe23fffd23000023ffff23000023fdff
23ff0123fe0223ff0123ff0123ff0123ff0023fe0123000023feff23ff0023ffff23ffff23ffff23ffff23ff0023000023ff002300ff23000123000223000023
010223000223010223010223000023000023000123ff0023000023fe0023ff0023fe0023fdff23ff0023f5fe23050623010223010123010223000123000023fd
0123000023fe0123ff0123ff0223ff0123000023ff0223000123010023000023000023010023010023020023010023010023000023000023000123000123ff01
23000023fe0123ff0123fe0223fd0223fe0223fe0223000023000023000123ff002302002300002301002304ff2302ff23010023020023010023010023ff0023
000123000123ff022300012300012300012300012300002301002303fe2302fe2302ff2301ff23010023000023ff01a000a1a10064000a4d44504c0009000100
02a0008c71001e000801d4001e01df000801d9001e01df001e01d9001e01d4000801d9070004000422002c01d700f0a0008da1006400084d44504c000a0000a1
0096000c010000000200000000000000a1009a0008fffb00000004000001000a001601e1002901ed04010d000e28002401e2014ea0009701000affffffff01b5
02120900000000000000003101430070014a01b5070001000109ffffffffffffffff380900000000000000003100650070006c015b09ffffffffffffffff3809
0000000000000000310065006a014a007109ffffffffffffffff3809000000000000000031006501b4014a01bb09ffffffffffffffff38090000000000000000
3100dc01aa010201ca09ffffffffffffffff382200830072f70022009a0072f7002200cb006909002200fb0069090022009800fdb40022009e00b800212200bf
00f40c0022009e00f400210900000000000000003100ef00fd0144010409ffffffffffffffff3822009800b1002122009e00b83c002200b900b1bf0022014200
ac000922014200f40009220142019e0009220142013e000922007701b309002200bf01b30900220064010c0009220064013c0009220064017e0009220064015a
00092200cb00fddf0022006d017e002209000000000000000031006b00cd007400d409ffffffffffffffff386000a700dc00f0012500b4005a600041015a0090
01a300b4005a22007300cde20060005500af009200f200b4005a220083006d00172200cb006d003022014600ac4800220146013e600022007701b70048220068
013cd00009000000000000000031009100cd009900d409ffffffffffffffff38090000000000000000310065017e006c01b509ffffffffffffffff3809000000000000000031009800fd00cc010409ffffffffffffffff38a00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 This floorplan shows a three room cabin, surrounded by pine trees.  The entrance to the cabin is the door on the north side of the livingroom, ne
xt to the porch.  The livingroom has three windows, a fireplace on the eastern wall, and two interior doors on the western wall which lead to the bedroom and the bathroom.  The bedroom has two windows, and the bathroom has one window.  The overall inside 
dimensions of the cabin are 18 feet by 27 feet.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 {\pict{\*\picprop\shplid1041{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}
\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw444\pich345\picwgoal8880\pichgoal6900\macpict\bliptag1537455078{\*\blipuid 5ba3b3e67b0b24ae90f0ae05ee0d2619}
0a6fffffffff015801bb1101a0008201000affffffff015801bb0900000000000000003100b4015300fd016c09ffffffffffffffff3809000000000000000031
002a00fe004f014809ffffffffffffffff382200a800274800a10096000c020000000200000000000000a1009a000800050000003e000001000a000000100026
008f2c000900030647656e65766103000304010d000e2b110e10436162696e20466c6f6f72706c616e0d2b0d130b436f6f7264696e61746573a0009701000aff
ffffff015801bb09000000000000000031012c00270133016c09ffffffffffffffff3809000000000000000031004e00270055011209ffffffffffffffff3809
000000000000000031004e00210133002809ffffffffffffffff3809000000000000000031004e016b0133017209ffffffffffffffff38090000000000000000
3100c6016200eb018109ffffffffffffffff3822006c0029f7002200830029f7002200b4002009002200e40020090022008100b4b400220087006f00212200a8
00ab0c0022008700ab00210900000000000000003100d800b4012d00bb09ffffffffffffffff3822008100680021220087006f3c002200a20068bf0022012b00
63000922012b00ab000922012b0155000922012b00f50009220060016a09002200a8016a090022004d00c3000922004d00f300092200b400b4df002200560135
002222005c008af900600090009300d900dc00b4005a60002a01110079015a00b4005a22005c0084e20060003e0066007b00a900b4005a5100a7002600ab002a
58a10096000c010000000200000000000000a1009a0008fffb0000000e000001000a00a7002a00b3004904000d00092b0d900628302c313129a0009701000aff
ffffff015801bb51012b0026012f002a58a10096000c010000000200000000000000a1009a0008fffb0000000b000001000a011f0029012b0042280129002a05
28302c3029a0009701000affffffff015801bb51012b00b3012f00b758a10096000c010000000200000000000000a1009a0008fffb00000016000001000a011f
0084012b00b2295b092831312e37352c3029a0009701000affffffff015801bb51012b016a012f016e58a10096000c010000000200000000000000a1009a0008
fffb0000000e000001000a011f014c012b016b29c8062832372c3029a0009701000affffffff015801bb5100e9016100ed016558a10096000c01000000020000
0000000000a1009a0008fffc0000001a000001000a00e6012900f201602800f0012a0b2832362e32352c352e3529a0009701000affffffff015801bb5100c501
6100c9016558a10096000c010000000200000000000000a1009a0008fffb0000001a000001000a00b9012c00c501632800c3012d0b2832362e32352c382e3529
a00097a10096000c010000000200000000000000a1009a0008fffc00000011000001000a005401440060016928005e0145072832372c313829a0009701000aff
ffffff015801bb51002900fc002d010058a10096000c010000000200000000000000a1009a0008fffb00000015000001000a001d00e90029011728002700ea09
2831382c32312e3529a0009701000affffffff015801bb5100290146002d014a58a10096000c010000000200000000000000a1009a0008fffb00000016000001
000a001d0132002901602949092832342c32312e3529a00097a10096000c010000000200000000000000a1009a0008fffb00000015000001000a00410149004d
01772b1724092832342c31382e3529a0009701000affffffff015801bb51004d00fc0051010058a10096000c010000000200000000000000a1009a0008fffb00
000015000001000a004100d1004d00ff28004b00d2092831382c31382e3529a0009701000affffffff015801bb51005300260057002a58a10096000c01000000
0200000000000000a1009a0008fffb0000000e000001000a0053002a005f004928005d002b0628302c313829a00097a10096000c010000000200000000000000
a1009a0008fffc00000020000001000a008000bd008c01002b932d0d2831322e32352c31342e323529a0009701000affffffff015801bb5100a7006e00ab0072
58a10096000c010000000200000000000000a1009a0008fffc0000000e000001000a00aa006200b600812800b400630628362c313129a0009701000affffffff
015801bb5100a700aa00ab00ae58a10096000c010000000200000000000000a1009a0008fffc00000011000001000a00a4008a00b000af2800ae008b07283131
2c313129a0009701000affffffff015801bb510086006e008a007258a10096000c010000000200000000000000a1009a0008fffc00000016000001000a008600
72009200a028009000730928362c31332e373529a0009701000affffffff015801bb51012b00b9012f00bd58a10096000c010000000200000000000000a1009a
0008fffb00000016000001000a011f00bc012b00ea2b4a99092831322e32352c3029a00097a10064000a4d44504c000900010002a0008c01000affffffff0158
01bb71001e00e7000a00f5001100e7000e00f5001100f5000e00f5000a00e7000e22012f000e00c6a0008da1006400084d44504c000a0000a10064000a4d4450
4c000900010002a0008c71001e0140006e0148007d0144007d0148006e0144006e0140006e0144007d22014400274700a0008da1006400084d44504c000a0000
a10096000c010000000200000000000000a1009a0008fffb00000004000001000a010f00000122000b04010d000e28011d00010179a00097a10096000c010000
000200000000000000a1009a0008fffb00000004000001000a014400320157003d2b32350178a00097a10096000c010000000200000000000000a1009a0008ff
fc00000011000001000a0028003d0038006204000d000c280034003e06286665657429a0009701000affffffff015801bb5100e9017f00ed018358a10096000c
010000000200000000000000a1009a0008fffc0000001a000001000a00e6018300f201ba0d00092800f001840b2832382e32352c352e3529a0009701000affff
ffff015801bb5100c5017f00c9018358a10096000c010000000200000000000000a1009a0008fffb0000001a000001000a00b9018200c501b92800c301830b28
32382e32352c382e3529a0009701000affffffff015801bb5100fb015200ff015658a10096000c010000000200000000000000a1009a0008fffb0000000e0000
01000a00f90132010501512801030133062832352c3429a0009701000affffffff015801bb5100b3015200b7015658a10096000c010000000200000000000000
a1009a0008fffc00000011000001000a00aa012e00b601532800b4012f072832352c313029a0009701000affffffff015801bb22006c002400172200b4002400
3022012f0063480022012f00f56000220060016e004822005100c330000900000000000000003100540084005d008b09ffffffffffffffff3809000000000000
000031007a00840082008b09ffffffffffffffff3809000000000000000031008100b400b500bb09ffffffffffffffff3851008000b9008400bd5809000000000000000031004e01350055016c09ffffffffffffffff3851004d01460051014a58510053016a0057016e58a00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
One of the first things to determine is the axis orientation and scale in our scene.  The cabin was drafted in feet on a right-handed Cartesian coordinate system that placed the origin (0,0,0) at the floor
 in the most southwest corner of the cabin's interior for convenience.  The y-axis points north, the x-axis points east, and the z-axis points up, out of the page, corresponding to the axes we'll need to set when we describe the daylighting conditions usi
ng gensky.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The cabin's roof slopes down on the north and south sides, so that the east and west walls rise to an interior height (on the z-axis) of 17 feet.  Coordinates for location of some key points in the scene have been determined and written here f
or future reference when we start generating surfaces.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1042{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw342\pich333\picwgoal6840\pichgoal6660\macpict\bliptag95826649{\*\blipuid 05b632d9c178c48dc6df5223599dea03}
06b5ffffffff014c01551101a00082a10096000c020000000200000000000000a1009a0008fffb00000059000001000a00000000001300d203000304010d000e
2b100e15456173742057616c6c20436f6f7264696e61746573a0009701000affffffff014c015551011f00360123003a58a10096000c01000000020000000000
0000a1009a0008fffb0000000f000001000a01230029012f004a04000d000928012d002a07282d2e352c3029a0009701000affffffff014c015551011f007e01
23008258a10096000c010000000200000000000000a1009a0008fffb0000000f000001000a0123006f012f009129460728352e352c3029a0009701000affffff
ff014c015551011f011a0123011e58a10096000c010000000200000000000000a1009a0008fffc00000012000001000a0122010b012e013328012c010c082831
382e352c3029a00097a10064000a4d44504c000900010002a0008c01000affffffff014c015571001e00db002000e9002800db002400e9002800e9002400e900
2000db0024220123002400c6a0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e01340085013c009301380093013c00
85013800850134008501380093220138003e4700a0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffb00000003
000001000a010300170116002104010d000e2801110018017aa00097a10096000c010000000200000000000000a1009a0008fffb00000004000001000a013800
49014b00542b32350179a00097a10096000c010000000200000000000000a1009a0008fffb00000011000001000a001100560021007b04000d000c28001d0057
06286665657429a0009701000affffffff014c015551011f00a2012300a658a10096000c010000000200000000000000a1009a0008fffb0000000f000001000a
01230093012f00b50d000928012d00940728382e352c3029a0009701000affffffff014c015520012000380120011c220120003800a75100c5003600c9003a58
a10096000c010000000200000000000000a1009a0008fffc00000014000001000a00c6003a00d200642800d0003b09282d2e352c372e3529a0009701000affff
ffff014c015551007d007e0081008258a10096000c010000000200000000000000a1009a0008fffc00000017000001000a0074004b0080007c28007e004c0a28
352e352c31332e3529a0009701000affffffff014c015551005300a8005700ac58a10096000c010000000200000000000000a1009a0008fffc0000000e000001
000a005800a9006400c828006200aa0628392c313729a0009701000affffffff014c01552200d2002c7e825100c5011a00c9011e58a10096000c010000000200
000000000000a1009a0008fffb00000017000001000a00b7012300c301542b7a5f0a2831382e352c372e3529a0009701000affffffff014c0155237c7c2200c7
011c00595100d100c000d500c458a10096000c010000000200000000000000a1009a0008fffc00000012000001000a00c400b100d000d92800ce00b208283131
2c362e3529a0009701000affffffff014c01555100d1010800d5010c58a10096000c010000000200000000000000a1009a0008fffc00000012000001000a00c4
00eb00d00113293a082831372c362e3529a0009701000affffffff014c015551010101080105010c58a10096000c010000000200000000000000a1009a0008ff
fc00000013000001000a010400ec011001142b0140082831372c322e3529a0009701000affffffff014c015551010100c0010500c458a10096000c0100000002
00000000000000a1009a0008fffc00000013000001000a010400b0011000d828010e00b1082831312c322e3529a0009701000affffffff014c01552200d300c2
48002200d300c2002f2348002200d3010a002f51003b00a2003f00a658a10096000c010000000200000000000000a1009a0008fffb00000012000001000a002d
009f003900c728003700a00828382e352c313929a0009701000affffffff014c015551003b007e003f008258a10096000c010000000200000000000000a1009a
0008fffc00000013000001000a003a00540046007c28004400550828352e352c313929a0009701000affffffff014c015522003c0080240020003c0080012000
8020012000a4003c00a42000cc0026004800aa2100cb012d51004700a8004b00ac58a10096000c010000000200000000000000a1009a0008fffb0000000e000001000a003f00ad004b00cc2b59050628392c313829a0009701000affffffff014c01552200cb002606072200cb012dfa06a00083ff}}{\insrsid10355392 

\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s3\ql \li360\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin360\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Input Files
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
We will be creating this scene description directly with a text editor.  It's a good idea to master the skills of working with the Radiance input files, where the object descriptions are contained.  We'll need to put the material primitives and surface pr
imitives into input files, as well as information about the sky conditions and so forth.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s3\ql \li360\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin360\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Materials
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Foundation Material
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # Cabin Foundation Material
\par 
\par void }{\b\insrsid10355392 plastic}{\insrsid10355392  concrete
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
0
\par 0
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
5   .3   .3   .3   0   0
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
We'll need to define the materials we want to use for the foundation, walls, floor, roof, and ceiling of our cabin, as well as the porch, fireplace, windows, doors, and furniture.  We can start a file that will contain only cabin material primitives, and 
call it "materials".  We'll add to this file as we think of new materials we may need along the way, and we can start by defining our material for the foundation.  Since we have no other identifiers yet defined, the modifier for our foundat
ion material must be }{\b\insrsid10355392 void}{\insrsid10355392 .  We use }{\b\i\insrsid10355392 plastic}{\insrsid10355392 
 as the material type, and name our material "concrete".  There are no string arguments for materials, so the next two entries in our primitive are zeroes.  All materials require five real arguments for red, green, blue, specularity, and roughness; our co
ncrete's RGB color values are all equal for a grey tone, and about a third the fullest color intensity one might find in a very white material (.3).  There is no specularity for this material (zero), and likewise, w
e need not provide any roughness (also zero).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Cabin Floor Material
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # Cabin Floor Material
\par 
\par void }{\b\insrsid10355392 plastic}{\insrsid10355392  wood_floor
\par 0
\par 0
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
5   .3   .15   .05   .02   .05
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
The material for our cabin floor will have some shine, or specularity and some roughness (to prevent a perfect mirror-like shine).  Since we don't need to modify our wood floor material by any previously defined primitive, we'll start off again with a mod
ifier of }{\b\insrsid10355392 void}{\insrsid10355392 .  }{\b\i\insrsid10355392 Plastic}{\insrsid10355392  is again the best choice of material type to create our wood floor, and we'll iden
tify this material as "wood_floor".  The cabin walls and roof will be made of similar types of wood material, with slightly different real arguments for RGB color, specularity, and roughness.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Brass Material
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # Brass Material
\par 
\par void }{\b\insrsid10355392 metal}{\insrsid10355392  brass
\par 0
\par 0
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
5   .68   .27   .002   .95   0
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
We'll need brass material for the metal fixtures in the cabin (such as the door knobs), and brass provides us with an interesting example of a material that has lots of specularity and no roughness.  The material type for brass is }{\b\i\insrsid10355392 
metal}{\insrsid10355392 , and it's color is mostly red with a little bit of green and hardly any blue at all.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 White Enamel Material
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # White Enamel
\par 
\par void }{\b\insrsid10355392 plastic}{\insrsid10355392  white_enamel
\par 0
\par 0
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
5   .5   .5   .5   .02   .05
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
The cabin's doors, windows, and roof trim are all made up of a white enamel material.  This white enamel paint has equal red, green, and blue arguments (.5).  There is some specularity (.02) and roughness (.05), to provide the material with the slightly g
lossy look of enamel paint.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Cabin Door Materials
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # Cabin Door Materials
\par 
\par void }{\b\insrsid10355392 alias}{\insrsid10355392  door_paint
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\tab white_enamel
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Since this same material is used for many surfaces, we can create primitives for these other material identifiers with aliases that refer back to our "white_enamel" material.  This example shows how we've created a primitive called "door_paint" which will
 share all of its characteristics with "white_enamel".
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Dresser Mirror Material
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # Dresser Mirror
\par 
\par void }{\b\insrsid10355392 metal}{\insrsid10355392  mirror
\par 0
\par 0
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
5   .8   .8   .8   .9   0
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 The mirror surface on the bedroom dresser has very high and equal red 
green and blue values, since most light hitting the mirror is reflected.  The specularity is very high (.9), and the roughness is negligble, since we want a shiny mirror.  The material type we're using is metal this time, since metal has the properties we
 desire in a mirror.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s3\ql \li360\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin360\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Surfaces
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Foundation, Porch & Floor
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1043{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw122\pich98\picwgoal2440\pichgoal1960\macpict\bliptag364598911{\*\blipuid 15bb567f4ca48a56ab9746b1e02028e7}005cffffffff006100791101a00082a0008c01000affffffff0061007909000000000000000031000e00010060007809ffffffffffffffff3809000000000000
0000310001004f000f006b09ffffffffffffffff38a0008da00083ff}}{\insrsid10355392 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
The cabin's foundation is a fairly simple surface to generate, and since it's shape is basically that of a box, we can use the genbox command to build the foundation for us.  The material for 
the foundation has already been defined in our "materials" file as concrete.  
\par 
\par Keeping in mind that the cabin walls are 6 inches thick, and that our foundation will be set in by about .1 feet in each direction, we can determine the foundation dimensions.  Our generated box from genbox will end up sitting with one corner on the origi
n, and will be sitting inside the interior of the cabin, so we'll need to use xform to translate the box down a little more than 3 feet (so the concrete foundation doesn't show 
through the interior floor), and back a bit in both the x-axis and y-axis directions to allow for the thickness of the walls.  The cabin's porch is another simple box shape, and the floor can be modeled as a polygon.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 genbox Command for Building Foundation
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 !genbox concrete foundation 27.8  18.8  3 \\\line \tab | xform  -t  -.4  -.4  -3.0001
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 South Wall
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1044{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw122\pich100\picwgoal2440\pichgoal2000\macpict\bliptag-807898793{\*\blipuid cfd87157e0b595cb0626056ebf70855b}0094ffffffff006300791101a00082a0008c01000affffffff0063007909000000000000000031000e00010060007809ffffffffffffffff3809000000000000
0000310001004f000f006b09ffffffffffffffff3809000000000000000031005f00020062007709ffffffffffffffff3822005e0018000322005e0032000322005e006e000322005e004c0003a0008da00083ff}}{\insrsid10355392 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
We'll use genprism to build the cabin's walls, starting with the south wall, which has two windows.  Genprism is not the only generator capable of building three-dimensional walls that have windows, but it is the simplest for us to work with.  
\par 
\par Once the principle for building a wall is understood, is very easy to raise all the rest of the cabin's walls in a similar fashion.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1045{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}
\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw381\pich225\picwgoal7620\pichgoal4500\macpict\bliptag18262975{\*\blipuid 0116abbf20d3b13f918e7523d543b3dc}
0a8cffffffff00e0017c1101a0008201000affffffff00e0017c090000000000000000310054002400b5016909ffffffffffffffff38a10096000c0200000002
00000000000000a1009a0008000500000034000001000a00000024002600a303000304010d000e2b2f0e0d67656e707269736d20666f72202b0e1309736f7574
6877616c6ca0009701000affffffff00e0017c5100b3002300b7002758a10096000c010000000200000000000000a1009a0008fffc0000000b000001000a00b6
001a00c2003304000d00092800c0001b0528302c3029a0009701000affffffff00e0017c5100b3016700b7016b58a10096000c010000000200000000000000a1
009a0008fffb0000000e000001000a00b7015c00c3017b2800c1015d062832372c3029a00097a10064000a4d44504c000900010002a0008c01000affffffff00
e0017c71001e006e0007007c000e006e000b007c000e007c000b007c0007006e000b2200b3000b00c9a0008da1006400084d44504c000a0000a10096000c0100
00000200000000000000a1009a0008fffb00000004000001000a0099000000ac000a04010d000e2800a70001017aa00097a10096000c01000000020000000000
0000a1009a0008fffb00000004000001000a00cc002a00df00352b2a330178a00097a10096000c010000000200000000000000a1009a0008fffc000000110000
01000a002800510038007604000d000c280034005206286665657429a0009701000affffffff00e0017c5100b3005f00b7006358a10096000c01000000020000
0000000000a1009a0008fffc0000000b000001000a00b6005600c2006f0d00092b058c0528352c3029a0009701000affffffff00e0017c5100b300ef00b700f3
58a10096000c010000000200000000000000a1009a0008fffc0000000e000001000a00b600e100c20100298b062831372c3029a0009701000affffffff00e001
7c51009500a7009900ab58a10096000c010000000200000000000000a1009a0008fffb00000013000001000a0099009600a500be2800a30097082831312c322e
3529a0009701000affffffff00e0017c510095005f0099006358a10096000c010000000200000000000000a1009a0008fffb00000010000001000a008f003c00
9b005e280099003d0728352c322e3529a0009701000affffffff00e0017c510065005f0069006358a10096000c010000000200000000000000a1009a0008fffb
00000010000001000a005f003c006b005e280069003d0728352c362e3529a0009701000affffffff00e0017c51006500a7006900ab58a10096000c0100000002
00000000000000a1009a0008fffc00000013000001000a00560096006200be2800600097082831312c362e3529a0009701000affffffff00e0017c51009500ef
009900f358a10096000c010000000200000000000000a1009a0008fffc00000013000001000a009000c6009c00ee2b303a082831372c322e3529a0009701000a
ffffffff00e0017c51006500ef006900f358a10096000c010000000200000000000000a1009a0008fffb00000013000001000a005700e00063010828006100e1
082831372c362e3529a0009701000affffffff00e0017c510095014f0099015358a10096000c010000000200000000000000a1009a0008fffb00000012000001
000a009b013b00a701632b5b44082832352c322e3529a0009701000affffffff00e0017c510065014f0069015358a10096000c010000000200000000000000a1
009a0008fffb00000012000001000a0057013b00630163280061013c082832352c362e3529a0009701000affffffff00e0017c22006600f0004e22006600f060
0023003022009600f060002200660060004e220066006048002300302200960060480051005300230057002758a10096000c010000000200000000000000a100
9a0008fffb0000000b000001000a004700170053003028005100180528302c3829a0009701000affffffff00e0017c51005301670057016b58a10096000c0100
00000200000000000000a1009a0008fffb0000000e000001000a0047015b0053017a280051015c062832372c3829a00097a10064000a4d44504c000900010002
a0008c01000affffffff00e0017c71001e00b0004900b8005a00b4005a00b8004900b4004900b0004900b4005a07000200022200b300291f00a0008da1006400
084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e00620091006a00a2006600a2006a00910066009100620091006600a2220065006828
00a0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e00710059008100610071005d008100610081005d008100590071
005d2200aa005c00d6a0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e007e00a4008f00ac008f00a8007e00a4007e
00a8007e00ac008f00a822006d00a70010a0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e00920069009a007a0096
00690092007a0096007a009a007a00960069220095009ddc00a0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e009f
005f00b0006700b00063009f005f009f0063009f006700b0006322009800620006a0008da1006400084d44504c000a0000a10064000a4d44504c000900010002
a0008c71001e00b000d800b800e900b400e900b800d800b400d800b000d800b400e92200b300677000a0008da1006400084d44504c000a0000a10064000a4d44
504c000900010002a0008c71001e00620135006a014600660146006a013500660135006201350066014622006500f83c00a0008da1006400084d44504c000a00
00a10064000a4d44504c000900010002a0008c71001e007100e9008100f1007100ed008100f1008100ed008100e9007100ed2200aa00ec00d6a0008da1006400
084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e009200f9009a010a009600f90092010a0096010a009a010a009600f92200950145c4
00a0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e009f00ef00b000f700b000f3009f00ef009f00f3009f00f700b0
00f322009800f20006a0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e007e014c008f0154008f0150007e014c007e
0150007e0154008f015022006d014f0010a0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e00b0014e00b8015f00b4
015f00b8014e00b4014e00b0014e00b4015f2200b300fa5300a0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e005d
0164006e016c005d0168006e016c006e0168006e0164005d01682200aa016700c3a0008da1006400084d44504c000a0000a10064000a4d44504c000900010002
a0008c71001e0050002d0058003e0054002d0050003e0054003e0058003e0054002d200053015d0053003da0008da1006400084d44504c000a0000a10064000a
4d44504c000900010002a0008c71001e00cb005300d3006200cf006200d3005300cf005300cb005300cf006207000100012200cf00242f00a0008da1006400084d44504c000a0000a00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Although we intend for this wall to end up standing, it's actually starting out sitting on the floor of the cabin, since genprism accepts all coordinates in (x,y) with z equal to zero.  (The sketch above shows the x-axis and z-axis directions of the wall 
once it's been lifted up into pl
ace.)  We'll need to specify that the thickness of the wall will be 6 inches; this extrusion along the z-axis will be down, into the page, since the wall's front face is in the up direction.  This can be verified using the right hand rule; our right hand'
s thumb (corresponding to the surface normal) points up, out of the page if we curl our right hand fingers in the direction of the vertices shown in the figure above (counterclockwise).  Extrusion along the z-axis is always in the opposite direction of th
e surface normal on genprism, since all it's generated surfaces should have surface normals that point outward (including both the interior and exterior wall surfaces).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 We will "lift" the southwall into place using the xform command to translate the wall up along the z-axis by 6 inches, and to rotate the wall by 90\u176\'a1
.  The rotation is positive, and this can be verified using the right-hand rule (our right-hand fingers curl up with the lifting wall, as our right-hand thumb points in the positive direction alon
g the x-axis).  We will pipe the results of our genprism command into the xform command, using the backslash, "\\", to continue the command over multiple lines.  All other walls can be built in similar fashion.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 genprism Command for Building Southwall
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 !genprism wood_panel southwall 16    0  0   5  0   5  6.5   11  6.5 \\\line \tab 11  2.5   5  2.5   5  0   17  0   17  6.5   25  6.5   25  2.5 \\\line \tab 
17  2.5   17  0   27  0   27  8   0  8 \\\line \tab -l   0   0   -.5   |  xform  -t  0  0  .5  -rx  90
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 North East Windows
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1046{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw124\pich100\picwgoal2480\pichgoal2000\macpict\bliptag2146174963{\*\blipuid 7fec07f3ab10d99ffeb66623ff067a67}016dffffffff0063007b1101a00082a0008c01000affffffff0063007b0900000000000000003100010050000f006b09ffffffffffffffff3809000000000000
000031005f00030062007809ffffffffffffffff3809000000000000000031000e00030011005809ffffffffffffffff3809000000000000000031000e000100
62000409ffffffffffffffff3809000000000000000031000e00770062007a09ffffffffffffffff382200190004fd002200210004fd00220033000103002200
440001030009000000000000000031004000360060003909ffffffffffffffff3822005e0019000322005e0032000322005e006f000322005e004d0003220014
0077030022002e0077030022000d003b000322000d004c000322000d0064000322000d005700032200140078001a09000000000000000031000e00640011007809ffffffffffffffff3809000000000000000031002000360034003909ffffffffffffffff38a0008da00083ff}}{\insrsid10355392 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Win
dows for the cabin have already been defined in a file called "window.norm", so all we need to do is place them in the window openings.  The window measures 2 feet in width by 4 feet high, and we can be place three of them side by side to create 4-foot an
d 6-foot wide windows for the northeast windows in the livingroom.  The xform command will do the work of placing the window in the window opening for us.  We need to include the "-e" option to indicate we want inline commands to be expanded, and the "-n"
 option to give the window a name.  Since the window is starting out sitting on the x-axis with it's lower left corner at the origin, we'll need to rotate it 90\u176\'a1
 around the z-axis and translate it to the starting coordinates for the window (27.5, 11, 0).  T
he x dimension of 27.5 is necessary to allow for placement of the window inside the wall correctly, since the thickness of the walls needs to be taken into account.  We can use xform's array option, "-a", to indicate we want the window to include three of
 the window segments, and follow the array option with the translation vector (0,2,0) that indicates we'll be installing window segments 2 feet apart along the y-axis.  All other windows in the cabin can be built in similar fashion.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 xform Command for Building Northeast Window
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 !xform -e -n northeast_window  -rz 90  -t  27.5  11  0 \\\line \tab -a  3  -t  0  2  0  window.norm
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Bathroom
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1047{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw124\pich100\picwgoal2480\pichgoal2000\macpict\bliptag304593902{\*\blipuid 1227bbeeccf5be9b2cd3ea4b1c9879a3}028affffffff0063007b1101a00082a0008c01000affffffff0063007b0900000000000000000b00060006410010000e001a001909ffffffffffffffff480900
000000000000003100010050000f006b09ffffffffffffffff380900000000000000000b001b001b4100230004002d001b09ffffffffffffffff48a0008c0900
000000000000005100130006001b000c09ffffffffffffffff580900000000000000000b0011001141001000050014000d09ffffffffffffffff48a0008d0900
0000000000000051001300100019001709ffffffffffffffff5809000000000000000031005f00030062007809ffffffffffffffff3809000000000000000031
000e00030011005809ffffffffffffffff3809000000000000000031000e00010062000409ffffffffffffffff3809000000000000000031000e00770062007a
09ffffffffffffffff382200190004fd002200210004fd0022003300010300220044000103002200200036e40009000000000000000031004000360060003909
ffffffffffffffff3823000c23e90022005e0019000322005e0032000322005e006f000322005e004d00032200140077030022002e0077030022000d003b0003
22000d004c000322000d0064000322000d0057000309000000000000000031001000240014002809ffffffffffffffff382200130024f600600008001a001e00
3200b4005a220019000200082200330002001122006000191900220060004d22002200140078001a22000f004cef0009000000000000000031001d0024002100
2809ffffffffffffffff3809000000000000000031000e00640011007809ffffffffffffffff3809000000000000000031002000360034003909ffffffffffffffff38a0008da00083ff}}{\insrsid10355392 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Our cabin model takes advantage of a previously defined bathroom in a file called "bathroom", so we won't need to to model any 
bathroom surfaces, and can just drop the whole bathroom scene description into our model without going to the trouble of describing every surface.  
\par 
\par We will need to define the north bedroom wall to go around the bathroom, and can do this easily using a polygon description of all the vertices on either side and above the closet (which is 6.5 feet high).  We'll need to more fully describe the bedroom cl
oset next.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Bedroom Closet & Wall
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1048{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw124\pich100\picwgoal2480\pichgoal2000\macpict\bliptag-662778921{\*\blipuid d87ecbd714da11fb296052f247759f50}02b5ffffffff0063007b1101a00082a0008c01000affffffff0063007b0900000000000000000b00060006410010000e001a001909ffffffffffffffff480900
000000000000003100010050000f006b09ffffffffffffffff3822002e00031a000900000000000000000b001b001b4100230004002d001b09ffffffffffffff
ff48a0008c0900000000000000005100130006001b000c09ffffffffffffffff580900000000000000000b0011001141001000050014000d09ffffffffffffff
ff48a0008d09000000000000000051001300100019001709ffffffffffffffff5809000000000000000031005f00030062007809ffffffffffffffff38090000
00000000000031000e00030011005809ffffffffffffffff3809000000000000000031000e00010062000409ffffffffffffffff380900000000000000003100
0e00770062007a09ffffffffffffffff382200190004fd002200210004fd0022003300010300220044000103002200200036e400220022001d000c22002e0032
05002200220032000c09000000000000000031004000360060003909ffffffffffffffff38220020001a000c220022001d150022002c001ae90022005e001900
0322005e0032000322005e006f000322005e004d00032200140077030022002e0077030022000d003b000322000d004c000322000d0064000322000d00570003
09000000000000000031001000240014002809ffffffffffffffff382200130024f600600008001a001e003200b4005a22001900020008220033000200112200
6000191900220060004d22002200140078001a22000f004cef0009000000000000000031001d00240021002809ffffffffffffffff3809000000000000000031000e00640011007809ffffffffffffffff3809000000000000000031002000360034003909ffffffffffffffff38a0008da00083ff}}{\insrsid10355392 

\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 We need to add some substance for the bedroom closet, since all t
hat currently exists is the perimeter of the bathroom model with the polygon we've just defined showing it's infinitely thin thickness around the closet door opening.  The bedroom closet can be built using the genbox command, provided we then open up the 
polygon face of the box that should open into the bedroom so we end up with a five-sided box.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 North Bedroom Polygon Wall
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 wood_panel }{\b\insrsid10355392 polygon}{\insrsid10355392  nbed_wall\line 0\line 0\line 24\tab 0\tab 11\tab 0\line \tab 6\tab 11\tab 0\line \tab 6\tab 11\tab 6.5\line \tab 11
\tab 11\tab 6.5\line \tab 11\tab 11\tab 0\line \tab 11.75\tab 11\tab 0\line \tab 11.75\tab 11\tab 15\line \tab 0\tab 11\tab 15
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 We will build the
 closet out of wood_panel material, with dimensions of (5, 2.75, 6.5), and invert it so the surface normals point inwards (where it will be seen) using the "-i" option of genbox.  From the vi editor we can issue the ":r" read command in front of our inlin
e genbox command, so the output of the genbox command will be entered directly into the edited cabin file, allowing us to comment out the closet door opening (y values will be equal to 11).  We'll need to translate the generated box using xform, since it 
is created with it's lower left corner sitting on the origin.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 genbox Command for Building Bedroom Closet
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 :r  !genbox wood_panel closet  5  2.75  6.5  -i | xform -t  6  11  0
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
We also need to remember to change the material type for the closet floor, since genbox automatically assigned the wood_panel material, and that won't match our other floors made of wood_floor.  All we need to do is find the closet polygon that has z valu
es equal to zero, and change the material type from wood_panel to wood_floor.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 The 
finishing touch on the closet is to add a closet shelf and a closet dowel.  We can use the genbox command for the shelf, and create a cylindrical type of surface.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Closet Shelf
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 !genbox light_wood closet_shelf  5  1  .08333  | xform  -t  6  12.25  5.33
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Closet Dowel
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 light_wood }{\b\insrsid10355392 cylinder}{\insrsid10355392  closet_dowel\line 0\line 0\line 7\tab 6\tab 12.25\tab \tab 5\line \tab 11\tab 12.25\tab \tab 5\line \tab .052
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Doors
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1049{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw124\pich100\picwgoal2480\pichgoal2000\macpict\bliptag59506561{\*\blipuid 038bff8116654b1be62d7113d9011acb}02ddffffffff0063007b1101a00082a0008c01000affffffff0063007b0900000000000000000b00060006410010000e001a001909ffffffffffffffff480900
000000000000003100010050000f006b09ffffffffffffffff3822002e00031a000900000000000000000b001b001b4100230004002d001b09ffffffffffffff
ff48a0008c0900000000000000005100130006001b000c09ffffffffffffffff580900000000000000000b0011001141001000050014000d09ffffffffffffff
ff48a0008d09000000000000000051001300100019001709ffffffffffffffff5809000000000000000031005f00030062007809ffffffffffffffff38090000
00000000000031000e00030011005809ffffffffffffffff3809000000000000000031000e00010062000409ffffffffffffffff380900000000000000003100
0e00770062007a09ffffffffffffffff382200190004fd002200210004fd0022003300010300220044000103002200200036e400220022001d000c22002e0032
05002200220032000c09000000000000000031004000360060003909ffffffffffffffff38220020001a000c220022001d150022002c001ae90022005e001900
0322005e0032000322005e006f000322005e004d00032200140077030022002e0077030022000d003b000322000d004c000322000d0064000322000d00570003
2200330036f4002200100064000d09000000000000000031001000240014002809ffffffffffffffff38600026002a0041004500b4005a6000000057001e0072
00b4005a2200130024f600600008001a001e003200b4005a220019000200082200330002001122006000191900220060004d22002200140078001a22000f004c
ef0009000000000000000031001d00240021002809ffffffffffffffff3809000000000000000031000e00640011007809ffffffffffffffff3809000000000000000031002000360034003909ffffffffffffffff38a0008da00083ff}}{\insrsid10355392 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Details help make models look "real".  By adding doors with brass doorknobs, we'll add an element of realism to our cabin scene.  Genbox can be easily used to ge
nerate the doors, and xform can be used to "hang" the door correctly in the doorframe.  Since there's more than one door in the cabin scene, and the doors don't all open the same way, we'll make a separate "door.norm" file.  The door.norm file will allow 
us to easily place the doors where we want them.  The door jamb primitives can be included in our "cabin" file of other scene structures, since door jambs are relatively simple structures that don't require much effort to place correctly in the scene.

\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 The 
door jambs can be created using either genbox or genprism.  Genprism is a bit more straightforward, since one command can be used to create the entire structure.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
When creating the door jamb, it's important to follow the right hand rule to determine where the surface normal will point (away from the extrusion direction), and therefore what sequence to use for entering vertices.  Our extrusion direction will be down
ward, into the page, so our surface normal is up, and that means when our right hand's thumb p
oints up, the fingers curl around in a counter-clockwise fashion in the xy plane.  (Genprism always works with xy coordinates).  Because the extrusion is 7 inches down (in the negative z direction), the length "-l" vector will be (0,0,7).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1050{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw268\pich306\picwgoal5360\pichgoal6120\macpict\bliptag1260471453{\*\blipuid 4b21449d7e2d7f19c35197242f324768}
05e2ffffffff0131010b1101a00082a0008ca10096000c020000000200000000000000a1009a0008fffb0000002a000001000a0000005a001300b02c00090003
0647656e65766103000304010d000e2b5b0e09446f6f72204a616d62a00097a0008ca10096000c010000000200000000000000a1009a0008fffc000000020000
01000a002800430038004b04000d000c28003400440179a00097a10096000c010000000200000000000000a1009a0008fffc00000003000001000a010c010001
1c01082bbde40178a00097a0008c01000affffffff0131010b0900000000000000003101140056012100a6070000000009ffffffffffffffff38090000000000
000000310037005c011000c6070001000109ffffffffffffffff380900000000000000003100460049011f00b309ffffffffffffffff38220038005ced0e0700
00000022011d00b30000a000a0a100a400020ffc09000000000000000071001e011a00b3011d00b5011a00b3011d00b3011c00b5011b00b5011a00b301000a00
0000000000000009ffffffffffffffff22011a00b300032300002302ff2300002300ff23000023feff2300000a000000000000000084000a0000000000000000
a000a301000affffffff0131010b84000a00000000000000002300032302ff2300ff23feffa000a1070001000122011000c4ee0e22003700c5ee0e0900000000
00000000310038005c0046005f070000000009ffffffffffffffff3809000000000000000031010c00b3011000c509ffffffffffffffff380900000000000000
003100520055011f00a7070001000109ffffffffffffffff382201100067ee0d20011000670052006709000000000000000031011e0056012100a60700000000
09ffffffffffffffff38a0008da10064000a4d44504c000900010002a0008c71001e011b00fc0122010a011e010a012200fc011e00fc011b00fc011e010a0700
01000120011e004f011e00fca0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e0018004b002600520018004f002600
520026004f0026004b0018004f20011e004f0026004fa0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffb0000
0010000001000a011f004e012f007028012b004f06282e322c3029a0009701000affffffff0131010b51011c00530121005858a10096000c0100000002000000
00000000a1009a0008fffc00000017000001000a011e0019012e004a28012a001a08282d312e382c3029a0009701000affffffff0131010b51011b0047012000
4c58a10096000c010000000200000000000000a1009a0008fffc00000018000001000a011e00b4012e00e6299b082833372e382c3029a0009701000affffffff
0131010b51011b00b1012000b658a10096000c010000000200000000000000a1009a0008fffc00000018000001000a0120007c013000ae28012c007d08283335
2e382c3029a0009701000affffffff0131010b51011c00a4012100a958a10096000c010000000200000000000000a1009a0008fffb00000021000001000a003d
00b9004d00fe28004900ba0b2833372e382c37392e3529a0009701000affffffff0131010b51004500b1004a00b658a10096000c010000000200000000000000
a1009a0008fffc00000021000001000a004400000054004428005000010b282d312e382c37392e3529a0009701000affffffff0131010b51004400480049004d
58a10096000c010000000200000000000000a1009a0008fffc00000019000001000a005200580062008d2b580e09282e322c37372e3529a0009701000affffff
ff0131010b51005000520055005758a10096000c010000000200000000000000a1009a0008fffb00000021000001000a005100aa006100ef28005d00ab0b2833
352e382c37372e3529a0009701000affffffff0131010b51005000a4005500a958a10096000c010000000200000000000000a1009a0008fffc00000017000001000a00fa00cc010a00fc2b22a90737222077696465a00097a0008da0008da00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Bedroom Door Jamb
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # Bedroom Door Jamb\line \line !genprism door_paint beddoor_jamb  8  -1.8  0   .2  0   .2  77.5\\\line \tab 35.8  77.5   35.8  0   37.8   0  37.8  79.5   -1.8  79.5\\\line 
\tab -l  0   0   -7 | xform -t  0   0   .5  -s  .08333\\\line \tab -rx  90   -rz  90   -t   12.25   7   0
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab \tab \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1051{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw203\pich303\picwgoal4060\pichgoal6060\macpict\bliptag-1501528385{\*\blipuid a6807ebf89d01ae629b97245244cc812}
0627ffffffff012e00ca1101a00082a0008ca10096000c020000000200000000000000a1009a0008fffb0000002b000001000a00000038001300902c00090003
0647656e65766103000304010d000e2b390e0a436162696e20446f6f72a00097a0008ca10064000a4d44504c000900010002a0008c01000affffffff012e00ca
71001e00b500a700bf00b500b500b500bf00ab00bc00a900b900a700b500b520011e000c00bc00a9a0008da1006400084d44504c000a00000900000000000000
0031003d00140116007e09ffffffffffffffff3809000000000000000031004000110119007b09ffffffffffffffff380900000000000000005100ac006a00b4
007309ffffffffffffffff58a10064000a4d44504c000900010003a0008c71001e00850011008c001f008900110085001f0089001f008c001f0089001171001e
0085006c008c007a0089007a008c006c0089006c0085006c0089007a220089001f4d00a0008da1006400084d44504c000a0000a10064000a4d44504c00090001
0003a0008c71001e00af006100bd006800af006500bd006800bd006500bd006100af006571001e010a00610118006801180065010a0061010a0065010a006801
1800652200bd0065004da0008da1006400084d44504c000a0000a10064000a4d44504c000900010003a0008c71001e00400054004e005b00400057004e005b00
4e0057004e00540040005771001e010900540117005b0117005701090054010900570109005b0117005720004e005701090057a0008da1006400084d44504c00
0a0000a10096000c010000000200000000000000a1009a0008fffc0000000a000001000a007a0022008a003804000d000c280086002303333522a00097a10096
000c010000000200000000000000a1009a0008fffb00000009000001000a00cd006500dd007b2b435303333522a00097a10096000c0100000002000000000000
00a1009a0008fffc0000000a000001000a00a0004000b000562800ac004103373622a00097a10064000a4d44504c000900010002a0008c01000affffffff012e
00ca71001e011a00b8012200c7011e00c7012200b8011e00b8011a00b8011e00c720011e000c011e00b8a0008da1006400084d44504c000a0000a10064000a4d
44504c000900010002a0008c71001e001800080026000f0018000c0026000f0026000c002600080018000c20011e000c0026000ca0008da1006400084d44504c
000a000022003d0015fc03070000000022003e00150000a000a0a100a400020ffc09000000000000000071001e003e00130040001600400013003e0015003f00
16003f00130040001301000a000000000000000009ffffffffffffffff220040001302fe23000023010123000023fd002300002300012300000a000000000000
000084000a0000000000000000a000a301000affffffff012e00ca84000a00000000000000002302fe23010123fd00230001a000a1220117007b0000a000a0a1
00a400020ffc09000000000000000071001e0114007b0117007d0114007b0117007b0116007d0115007d0114007b01000a000000000000000009ffffffffffff
ffff220114007b00032300002302ff2300002300ff23000023feff23000084000a0000000000000000a000a301000affffffff012e00ca84000a000000000000
00002300032302ff2300ff23feffa000a10700010001220115007dfd0322003d007dfd03a10096000c010000000200000000000000a1009a0008fffc00000015
000001000a010800130118004128011400140828312c302c2e3529a0009701000affffffff012e00ca510115000f011a001458a10096000c0100000002000000
00000000a1009a0008fffb00000023000001000a01050080011500c928011100810c28312c312e3337352c2e3529a0009701000affffffff012e00ca51011200
7c0117008158a10096000c010000000200000000000000a1009a0008fffc00000003000001000a00280000003800082800340001017aa00097a10096000c0100
00000200000000000000a1009a0008fffb00000002000001000a011d00ad012d00b52badf50178a00097a10096000c010000000200000000000000a1009a0008fffc00000003000001000a00c200a000d200a82800ce00a10179a00097a0008da0008da00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1052{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw218\pich253\picwgoal4360\pichgoal5060\macpict\bliptag-1180268059{\*\blipuid b9a689e5822cc9f10e25120c731cddb7}
068affffffff00fc00d91101a00082a0008ca0008c01000affffffff00fc00d9090000000000000000510021001500fa003a09ffffffffffffffff58a0008c09
0000000000000000510044004600d600d809ffffffffffffffff58a0008c2200980045e4112200820046e4eea0008ca100d8000400004000a100d60004000040
00a000d7070000000008001723fb2ba100ca00080000000000000000a100c800080000005a005a000009000000000000000061008efffb00a00034005a005a07
0001000109ffffffffffffffff68005a005aa000c9a100d6000400004000a000d7a000d9a100d6000400004000a100d8000400004000a000bea000d908000809
0000000000000000710036008d002100a9002a00a9002a00a9002900a8002700a6002500a3002400a10023009d002200930021008d0021008d002a00a9002a09
ffffffffffffffff70002e008d002100a9002a00a9002a00a9002900a8002700a6002500a3002400a10023009d002200930021008d0021a100d8000400004000
a000bfa000d9a000d7a100d8000400004000a100d6000400004000a000d7070000000008001722008d002104f2a100ca00080000000000000000a100c8000800
00005a005a000009000000000000000061007200170084005100b4005a070001000109ffffffffffffffff6800b4005aa000c9a100d6000400004000a000d7a0
00d9a100d6000400004000a100d8000400004000a000bea000d908000809000000000000000071004e00700021008d002a008d0021008a002100850021007f00
22007b002300790023007800230076002400740025007200260071002700710027007000290070002a0070002a008d002a008d002109ffffffffffffffff7000
4600700021008d002a008d0021008a002100850021007f0022007b00230079002300780023007600240074002500720026007100270071002700700029007000
2a0070002aa100d8000400004000a000bfa000d9a000d7a0008da0008d09000000000000000051007a0033009f003d070000000009ffffffffffffffff58a000
8da0008da10064000a4d44504c000900010003a0008c71001e0022000b003000130022000f003000130030000f0030000b0022000f71001e00ec000b00fa0013
00fa000f00ec000b00ec000f00ec001300fa000f0700010001200030000f00ec000fa0008da1006400084d44504c000a0000a10064000a4d44504c0009000100
03a0008c71001e0069003a00710048006d00480071003a006d003a0069003a006d004871001e0069002400710032006d002400690032006d003200710032006d
002422006d003af800a0008da1006400084d44504c000a0000a10064000a4d44504c000900010003a0008c71001e00440089005200910044008d005200910052
008d005200890044008d71001e00c7008900d6009100d6008d00c7008900c7008d00c7009100d6008d220052008d0075a0008da1006400084d44504c000a0000
a10096000c010000000200000000000000a1009a0008fffc00000005000001000a007e007f008e008d2c000900030647656e6576610300030d000c2b808a0232
22a00097a10096000c010000000200000000000000a1009a0008fffc00000007000001000a005a002b006a003c280066002c032e3522a00097a10096000c0100
00000200000000000000a1009a0008fffb00000006000001000a008d0000009d000e2800990001023322a00097a10096000c020000000200000000000000a100
9a0008fffb0000003e000001000a0000002d001300ad04010d000e28000e002e0e427261737320446f6f726b6e6f62a00097a10064000a4d44504c0009000100
03a0008c01000affffffff00fc00d971001e00710026007f002d00710029007f002d007f0029007f00260071002971001e009b002600aa002d00aa0029009b00
26009b0029009b002d00aa002922007f0029001ca0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffb00000007
000001000a0083002b0093003c04000d000c28008f002c032e3822a00097a10064000a4d44504c000900010003a0008c01000affffffff00fc00d971001e0081
0046008f004d00810049008f004d008f004a008f00460081004971001e008b00460099004d0099004a008b0046008b004a008b004d0099004a22008f004a00fc
a0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffc00000008000001000a0084004f009400622b2401032e3322a00097a0008da00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The measurements of our doorknob components are illustrated here.  The doorknob consists of three distinct pieces:  the spherical doorknob, the conical knobstem, and the knobplate ring.  These three simple surfaces can be generated using the sphere, cone,
 and ring surface types, respectively.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Cabin Door
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # Cabin Door File for a door, called "door.norm".\line # Scale is in inches.  Origin is at floor, 1" below bottom of door\line 
# and .5" from hinge edge of door.  This door fits in a frame\line # slightly less than 36" by 78".  The materials door_paint and\line # brass need to be defined.\line \line !genbox door_paint door 35  1.375  76  |  xform  -t  .5  0  1\line \line brass }{
\b\insrsid10355392 sphere}{\insrsid10355392  inner_doorknob\line 0\line 0\line 4    33.125    -1.5    36    1\line \line brass }{\b\insrsid10355392 cone}{\insrsid10355392  inner_knobstem\line 0\line 0\line 8\tab 33.125\tab 0\tab 36\line \tab 33.125\tab 
-.53\tab 36\line \tab .8\tab \tab .3\line \line brass }{\b\insrsid10355392 ring}{\insrsid10355392  inner_knobplate\line 0\line 0\line 8\tab 33.125\tab -.01\tab 36\line \tab 0\tab \tab -1\tab 0\line \tab 1.5\tab \tab .8\line 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Now that our basic doorknob parts are defined for one side of the door (the inner side), we'll need to add a doorknob to the other side of the door.  This can be fairly easily
 accomplished before the "door.norm" file has been saved, using xform's mirror option as an inline command, to read in the entire door.norm file so far, and mirror it about the y-axis by the thickness of the door (1.375 inches).  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Mirroring Inner Door Knob
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 :.,$w!\line :$r !xform  -a 2   -my  -t   0   1.375   0   door.norm
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 These commands must be executed from the }{\ul\insrsid10355392 start}{\insrsid10355392 
 of the doorknob description (the line that reads "brass sphere inner_doorknob") in the "door.norm" file, to indicate that only the doorknob part
s should be written to a file, and then used for the following xform command.  The results from this command will produce primitives containing the correct values for the mirrored doorknob parts, which we can edit in vi to names that begin with "outer", t
o indicate their position on the other side of the door in the "door.norm" file.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Now we're ready to place a door in the cabin.  The bedroom door can use the "door.norm" file, as long as we remember to use a scaling factor with xform's "-s" option to conver
t from inches to feet.  We'll put the door in the scene in an open position using the "-rz" rotation around the z-axis, so we'll be able to look through the bedroom door when we start generating images of our cabin.  When we place the door in the bedroom,
 we'll need to remember to provide xform with the translation coordinates of (11.9, 10, 0).  The x coordinate is slightly less than 12, to allow for the door to open a little distance away from the door jamb.  We'll use the "-e" option to expand the resul
ts of our xform command, and we'll name our bedroom door "bedroom_door". 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Bedroom Door
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 !xform -e -n bedroom_door -s .08333 -rz -165 \\\line \tab -t 11.9  10  0  door.norm
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The front door can be created using the "door.norm" file also, using xform's mirror option to move the doorknob to the other side of the door, and to place the door in the correct location.  The front door can be placed in a closed position, or it can be 
rotated around the z axis by some amount.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Roof
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1053{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw124\pich100\picwgoal2480\pichgoal2000\macpict\bliptag59506561{\*\blipuid 038bff8116654b1be62d7113d9011acb}02ddffffffff0063007b1101a00082a0008c01000affffffff0063007b0900000000000000000b00060006410010000e001a001909ffffffffffffffff480900
000000000000003100010050000f006b09ffffffffffffffff3822002e00031a000900000000000000000b001b001b4100230004002d001b09ffffffffffffff
ff48a0008c0900000000000000005100130006001b000c09ffffffffffffffff580900000000000000000b0011001141001000050014000d09ffffffffffffff
ff48a0008d09000000000000000051001300100019001709ffffffffffffffff5809000000000000000031005f00030062007809ffffffffffffffff38090000
00000000000031000e00030011005809ffffffffffffffff3809000000000000000031000e00010062000409ffffffffffffffff380900000000000000003100
0e00770062007a09ffffffffffffffff382200190004fd002200210004fd0022003300010300220044000103002200200036e400220022001d000c22002e0032
05002200220032000c09000000000000000031004000360060003909ffffffffffffffff38220020001a000c220022001d150022002c001ae90022005e001900
0322005e0032000322005e006f000322005e004d00032200140077030022002e0077030022000d003b000322000d004c000322000d0064000322000d00570003
2200330036f4002200100064000d09000000000000000031001000240014002809ffffffffffffffff38600026002a0041004500b4005a6000000057001e0072
00b4005a2200130024f600600008001a001e003200b4005a220019000200082200330002001122006000191900220060004d22002200140078001a22000f004c
ef0009000000000000000031001d00240021002809ffffffffffffffff3809000000000000000031000e00640011007809ffffffffffffffff3809000000000000000031002000360034003909ffffffffffffffff38a0008da00083ff}}{\insrsid10355392 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 The cabin's roof can be created using g
enprism, since it will have a thickness.  We could use two-dimensional polygons instead of genprism, but genprism is quick and easy.  We'll use a lighter color wood for our interior ceiling, for better light distribution, and the white enamel material for
 the trims.  The top of the roof will be shingles eventually (when we get around to doing patterns), so we'll call the north roof and south roof different names.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 We'll start the genprism command with the material type "white_enamel", even though we'll be c
hanging the material type for the top two roof surfaces and the bottom two ceiling surfaces, since six of the ten surfaces will use the white_enamel material.  We'll set the roof on the xy plane in such a way that the origin will intersect the inside top 
part of the cabin's wall; this means the roof will need to extend below the x-axis and into the negative along the y-axis.  We'll use the right hand rule to determine what sequence to enter our vertices, so that the surface normal points down, and can the
refore determine whether our extrusion length value of 29 feet along the z-axis will be the opposite direction (positive).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 {\pict{\*\picprop\shplid1054{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}
\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw424\pich240\picwgoal8480\pichgoal4800\macpict\bliptag-2116488626{\*\blipuid 81d8f24e6303d61a94a1db73f4c93da4}
037fffffffff00ef01a71101a00082a0008ca10096000c020000000200000000000000a1009a0008fffb0000002a000001000a000000a5001300fd2c00090003
0647656e65766103000304010d000e2ba60e0a436162696e20526f6f66a00097a10064000a4d44504c000900010001a0008c01000affffffff00ef01a771001e
001d004b002b0052001d004f002b0052002b004f002b004b001d004f20002b004f00d0004fa0008da1006400084d44504c000a0000a10064000a4d44504c0009
00010002a0008c71001e00cd019800d501a600d101a600d5019800d1019800cd019800d101a62000d1004f00d10198a0008da1006400084d44504c000a0000a1
0096000c010000000200000000000000a1009a0008fffc00000003000001000a002e0042003e004a04000d000c28003a00430179a00097a10096000c01000000
0200000000000000a1009a0008fffc00000003000001000a00c2018a00d201922800ce018b0178a0009701000affffffff00ef01a72200e7003a00f12000d900
3a004100d120004100d000d901682000e7003a005000d12100e701682200d90168000e51004000d0004300d358a10096000c010000000200000000000000a100
9a0008fffb0000000e000001000a003900d5004500f40d000928004300d60628392c313029a0009701000affffffff00ef01a751004f00cf005200d258a10096
000c010000000200000000000000a1009a0008fffb0000000b000001000a004900e4005500fd2b0f100528392c3929a0009701000affffffff00ef01a75100e5
003900e9003c58a10096000c010000000200000000000000a1009a0008fffc00000019000001000a00e2000000ee00352800ec00010b282d312e352c2d312e35
29a0009701000affffffff00ef01a75100e6016700e9016a58a10096000c010000000200000000000000a1009a0008fffb0000001a000001000a00df016c00eb
01a22800e9016d0b2831392e352c2d312e3529a0009701000affffffff00ef01a75100d8016700db016a58a10096000c010000000200000000000000a1009a00
08fffc00000016000001000a00d4016d00e0019d2800de016e0a2831392e352c2d2e3529a0009701000affffffff00ef01a75100d7003800db003c58a10096000c010000000200000000000000a1009a0008fffc00000016000001000a00d0000600dc00352800da00070a282d312e352c2d2e3529a00097a0008da00083ff}
}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Creating a Roof with genprism
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 :r  !genprism white_enamel roof  6  -1.5  -1.5  -1.5  -.5\\\line \tab 9  10   19.5  -.5   19.5  -1.5   9  9   -l  0   0   29\\\line \tab | xform  -rz 90  -ry 90  -t  -1  0  8
\line 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
By using the ":r" command in our "cabin" file, and entering the genprism command, we'll get the resulting primitives written into the "cabin" file immediately.  We'll need to remember to change the 
material types for the north and south roofs, and the north and south ceilings.  This is also a good time to change the names of the roof surfaces to meaningful names (north_roof, south_roof, north_ceiling, etc).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Roof Materials
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # Cabin Roof Materials\line \line void }{\b\insrsid10355392 plastic}{\insrsid10355392  white_enamel\line 0\line 0\line 5\tab .5\tab .5\tab .5\tab .02\tab .08\line \line void }
{\b\insrsid10355392 plastic}{\insrsid10355392  light_wood\line 0\line 0\line 5\tab .5\tab .3\tab .2\tab 0\tab 0\line \line void }{\b\insrsid10355392 plastic}{\insrsid10355392  north_shingle\line 0\line 0\line 5\tab .3\tab .2\tab .1\tab 0\tab 0\line 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Fireplace
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1055{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw129\pich100\picwgoal2580\pichgoal2000\macpict\bliptag-615439293{\*\blipuid db5124431561abd43d264cc41a45d262}0315ffffffff006300801101a00082a0008c01000affffffff00630080090000000000000000310033006f004e007809ffffffffffffffff3809000000000000
00000b00060006410010000e001a001909ffffffffffffffff480900000000000000003100010050000f006b09ffffffffffffffff3822002e00031a00090000
0000000000000b001b001b4100230004002d001b09ffffffffffffffff48a0008c0900000000000000005100130006001b000c09ffffffffffffffff58090000
0000000000000b0011001141001000050014000d09ffffffffffffffff48a0008d09000000000000000051001300100019001709ffffffffffffffff58090000
00000000000031005f00030062007809ffffffffffffffff3809000000000000000031000e00030011005809ffffffffffffffff380900000000000000003100
0e00010062000409ffffffffffffffff3809000000000000000031000e00770062007a09ffffffffffffffff3809000000000000000031003900730047008009
ffffffffffffffff382200190004fd002200210004fd0022003300010300220044000103002200200036e400220022001d000c22002e00320500220022003200
0c09000000000000000031004000360060003909ffffffffffffffff38220020001a000c220022001d150022002c001ae90022005e0019000322005e00320003
22005e006f000322005e004d00032200140077030022002e0077030022000d003b000322000d004c000322000d0064000322000d005700032200330036f40022
00100064000d09000000000000000031001000240014002809ffffffffffffffff38600026002a0041004500b4005a6000000057001e007200b4005a22001300
24f600600008001a001e003200b4005a220019000200082200330002001122006000191900220060004d22002200140078001a22000f004cef00090000000000
00000031001d00240021002809ffffffffffffffff3809000000000000000031000e00640011007809ffffffffffffffff3809000000000000000031002000360034003909ffffffffffffffff38a0008da00083ff}}{\insrsid10355392 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
The fireplace is simply a combination of genbox-generated surfaces, with a hole in the chimney fo
r the hearth and fireplace opening.  The tricky part of building the fireplace is remembering to invert the fireplace opening surfaces so their surface normals point inwards, and to cut "holes" in the boxes where the fireplace opening is.
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Once the fireplace box has been inserted into the chimney box, we can comment out the surface of the fireplace that should open out into the inside of the cabin.  Even after we've done this, we'll need to remember to open up the corresponding portion of t
he chimney box.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1056{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw228\pich233\picwgoal4560\pichgoal4660\macpict\bliptag32067668{\*\blipuid 01e950540255e9db685041fd53dee87d}
0462ffffffff00e800e31101a00082a0008ca0008ca10096000c020000000200000000000000a1009a0008fffb0000003e000001000a00000040001300bf2c00
0900030647656e65766103000304010d000e2b410e0f436162696e2046697265706c616365a00097a0008ca0008ca0008ca0008c01000affffffff00e800e309
00000000000000003100b3002700d200b809ffffffffffffffff382200b300b721ec2200d100b721ec2200b2002721ec22009f00d8001ea0008da0008ca0008c
2200a5005c008d2200a500a3008da0008da0008c22008200672f002200820067002422008200960024a0008d2200a6005c0a002200a600960d00a0008da0008d
22009e0049120022009f00d8d8002200a600a30df922009f00af008c2200a500670ef82300e5a0008d22009d00752100a0008da0008da10064000a4d44504c00
0900010003a0008c71001e00c900c100d400ce00d400c100c900ca00cc00cc00cf00ce00d400c171001e00be00d400c800e200be00e200c800d800c500d600c2
00d400be00e22200cc00cc0af9a0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffb00000004000001000a00c7
00d600d300e004000d00092b96c3023227a00097a10096000c010000000200000000000000a1009a0008fffb00000003000001000a00db006b00e700752800e5
006c023627a00097a10096000c010000000200000000000000a1009a0008fffc0000000b000001000a00ba000000c600192800c4000105312e323527a00097a1
0064000a4d44504c000900010003a0008c01000affffffff00e800e371001e00d5002700dc003500d9002700d5003500d9003500dc003500d9002771001e00d5
00a800dc00b700d900b700dc00a800d900a800d500a800d900b72200d900357300a0008da1006400084d44504c000a0000a10064000a4d44504c000900010003
a0008c71001e00b3001900c1002100b3001d00c1002100c1001d00c1001900b3001d71001e00c3001900d1002100d1001d00c3001900c3001d00c3002100d100
1d2200c1001d0002a0008da1006400084d44504c000a0000a10064000a4d44504c000900010003a0008c71001e00a4006700ab007500a8006700a4007500a800
7500ab007500a8006771001e00a4008600ab009500a8009500ab008600a8008600a4008600a800952200a800751100a0008da1006400084d44504c000a0000a1
0096000c010000000200000000000000a1009a0008fffb00000003000001000a00a7007900b300832800b1007a023227a00097a10096000c0100000002000000
00000000a1009a0008fffc00000008000001000a008e003d009a0050280098003e04312e3527a00097a10064000a4d44504c000900010003a0008c01000affff
ffff00e800e371001e0082005000900057008200540090005700900054009000500082005471001e0096005000a4005700a4005400960050009600540096005700a4005422009000540006a0008da1006400084d44504c000a0000a0008da00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Generating a Fireplace with genbox
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 :r !genbox cinderblock fireplace 1.5  2  1.5  -i \\\line \tab | xform  -t  26.25  6  1.25
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
We can insert the necessary vertices into the chimney's polygon description, using the right hand rule (surface normal points into the room, so points need to be entered counter-clockwise around the outer edge of the chimney surface).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab \tab \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1057{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw172\pich220\picwgoal3440\pichgoal4400\macpict\bliptag-512795904{\*\blipuid e16f5b00bf6fd543e375362b00c4f9e3}
0658ffffffff00db00ab1101a00082a0008c01000affffffff00db00ab09000000000000000031002e002c00d5007509ffffffffffffffff3809000000000000
0000310096004000b3006109ffffffffffffffff38a10096000c020000000200000000000000a1009a0008fffb0000003e000001000a00000011001300902c00
0900030647656e65766103000304010d000e2b120e0f436162696e2046697265706c616365a00097a10064000a4d44504c000900010002a0008c01000affffff
ff00db00ab71001e00ba002800cb003000cb002c00ba002800ba002c00ba003000cb002c0700020002200039002b00b9002ba0008da1006400084d44504c000a
0000a10064000a4d44504c000900010002a0008c71001e00cf005a00d8006b00d4006b00d8005a00d4005a00cf005a00d4006b2200d300332600a0008da10064
00084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e0029003300320044002e003300290044002e004400320044002e003322002d006b
d800a0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e00ae004500b7005600b3004500ae005600b3005600b7005600
b300452200b20073e200a0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e009b003c00ac0044009b003f00ab004400
ab004000ac003c009b003f2200b0003f00faa0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e0092004b009b005c00
97005c009b004b0097004b0092004b0097005c22009600430700a0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e00
9e005c00af006400af0060009e005c009e0060009e006400af0060220099005f0004a0008da1006400084d44504c000a0000a10064000a4d44504c0009000100
02a0008c71001e00aa006200b3007300af007300b3006200af006200aa006200af00732200ae00600100a0008da1006400084d44504c000a000051002c002a00
30002e50002b00290031002fa10096000c010000000200000000000000a1009a0008fffb00000013000001000a002700000033002804000d0009280031000108
28382e352c313929a0009701000affffffff00db00ab51002c00710030007550002b007000310076a10096000c010000000200000000000000a1009a0008fffb
00000012000001000a00270079003300a129790828352e352c313929a0009701000affffffff00db00ab5100d2002a00d6002e5000d1002900d7002fa1009600
0c010000000200000000000000a1009a0008fffb00000012000001000a00cd000300d9002a2800d700040828382e352c2d3329a0009701000affffffff00db00
ab5100d1007200d500765000d0007100d60077a10096000c010000000200000000000000a1009a0008fffc00000012000001000a00ce007900da00a02b760108
28352e352c2d3329a0009701000affffffff00db00ab5100b1007200b500765000b0007100b60077a10096000c010000000200000000000000a1009a0008fffc
00000017000001000a00ac007900b800aa2800b6007a0a28352e352c312e323529a0009701000affffffff00db00ab510094005e00980062500093005d009900
63a10096000c010000000200000000000000a1009a0008fffc00000012000001000a008c00670098008f28009600680828362c322e373529a0009701000affff
ffff00db00ab510094003d00980041500093003c00990042a10096000c010000000200000000000000a1009a0008fffc00000012000001000a0086002f009200
5728009000300828382c322e373529a0009701000affffffff00db00ab5100b0003e00b400425000af003d00b50043a10096000c010000000200000000000000
a1009a0008fffb00000012000001000a00ab001100b700392800b500120828382c312e323529a0009701000affffffff00db00ab5100b1005e00b500625000b0
005d00b60063a10096000c010000000200000000000000a1009a0008fffb00000013000001000a00b7004a00c300722b390c0828362c312e323529a00097a100
64000a4d44504c000900010002a0008c01000affffffff00db00ab71001e00b8007000c8007800b8007400c8007800c8007400c8007000b800742200cd007300faa0008da1006400084d44504c000a0000a0008da00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Furniture
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1058{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw129\pich100\picwgoal2580\pichgoal2000\macpict\bliptag-780679320{\*\blipuid d177c768bc6ff3b33757d23185afefd8}0b77ffffffff006300801101a00082a0008ca0008c01000affffffff00630080090000000000000000310033006f004e007809ffffffffffffffff3809000000
00000000000b00060006410010000e001a001909ffffffffffffffff480900000000000000003100010050000f006b09ffffffffffffffff3822002e00031a00
0900000000000000000b001b001b4100230004002d001b09ffffffffffffffff48a0008c0900000000000000005100130006001b000c09ffffffffffffffff58
0900000000000000000b0011001141001000050014000d09ffffffffffffffff48a0008d09000000000000000051001300100019001709ffffffffffffffff58
09000000000000000031004400030059001e09ffffffffffffffff380900000000000000000b001b001b41004400030059000909ffffffffffffffff48a0008c
0900000000000000000b000b000b4100520050005c006f09ffffffffffffffff480900000000000000004100520052005a005c09ffffffffffffffff48090000
0000000000004100520063005a006d09ffffffffffffffff48090000000000000000410052005b005a006409ffffffffffffffff48a0008d0900000000000000
003100510045005b004f09ffffffffffffffff3809000000000000000031002e000c0036001a09ffffffffffffffff38a0008c09000000000000000041003100
460050004f09ffffffffffffffff480900000000000000004100330048003c004f09ffffffffffffffff480900000000000000004100440048004e004f09ffff
ffffffffffff4809000000000000000041003c00480045004f09ffffffffffffffff48a0008da0008ca100d8000400004000a100d6000400004000a000d70700
000000080017234bfaa100ca00080000000000000000a100c80008000000c700c700160900000000000000004100240062002e0070070001000109ffffffffff
ffffff48a000c9a100d6000400004000a000d7a000d9a100d6000400004000a100d8000400004000a000bea000d908000809000000000000000071007e002300
62002e006f002a006e002b006e002d006d002d006c002e006b002e006a002d0069002c0065002c0064002a006300290062002900620027006200260062002600
620025006300240064002400640024006500230067002300680025006c0025006d0026006e0027006e0028006f0029006f002a006e002a006e09ffffffffffff
ffff70007e00230062002e006f002a006e002b006e002d006d002d006c002e006b002e006a002d0069002c0065002c0064002a00630029006200290062002700
6200260062002600620025006300240064002400640024006500230067002300680025006c0025006d0026006e0027006e0028006f0029006f002a006e002a00
6ea100d8000400004000a000bfa000d9a000d7a100d8000400004000a100d6000400004000a000d7070000000008001722002a006efaffa100ca000800000000
00000000a100c80008000000c700c700160900000000000000004100260064002d006d070001000109ffffffffffffffff48a000c9a100d6000400004000a000
d7a000d9a100d6000400004000a100d8000400004000a000bea000d908000809000000000000000071007e00260064002d006c002b006c002c006c002c006b00
2c006a002d0069002d0069002d0068002c0066002c0066002b0065002a0064002a00640029006400280064002800640028006400270065002600660026006600
260067002600680026006a0027006b0028006c0028006c0029006c002a006c002b006c002b006c09ffffffffffffffff70007e00260064002d006c002b006c00
2c006c002c006b002c006a002d0069002d0069002d0068002c0066002c0066002b0065002a0064002a0064002900640028006400280064002800640027006500
2600660026006600260067002600680026006a0027006b0028006c0028006c0029006c002a006c002b006c002b006ca100d8000400004000a000bfa000d9a000
d7a0008da0008ca100d8000400004000a100d6000400004000a000d7070000000008001722002b006cc22ba100ca00080000000000000000a100c80008000001
350134fffc0900000000000000004100520028005c0035070001000109ffffffffffffffff48a000c9a100d6000400004000a000d7a000d9a100d60004000040
00a100d8000400004000a000bea000d908000809000000000000000071007e00500028005c0034005b002a005b002a0059002900580028005800280056002900
5500290052002c0051002d0050002e0050002f00500030005100320051003200510032005200330053003400540034005500340056003400570033005b003000
5c002f005c002e005c002d005c002c005c002b005b002a005b002a09ffffffffffffffff70007e00500028005c0034005b002a005b002a005900290058002800
58002800560029005500290052002c0051002d0050002e0050002f00500030005100320051003200510032005200330053003400540034005500340056003400
570033005b0030005c002f005c002e005c002d005c002c005c002b005b002a005b002aa100d8000400004000a000bfa000d9a000d7a100d8000400004000a100
d6000400004000a000d7070000000008001722005b002a03fba100ca00080000000000000000a100c80008000001350134fffc09000000000000000041005200
29005a0032070001000109ffffffffffffffff48a000c9a100d6000400004000a000d7a000d9a100d6000400004000a100d8000400004000a000bea000d90800
0809000000000000000071007e00520029005a00310059002a0059002a0058002900570029005600290054002a0054002a0053002b0053002b0052002d005200
2d0052002e0052002f00520030005200300053003100540031005400310055003100560031005700300058002f0059002e005a002d005a002d005a002d005a00
2b0059002a0059002a09ffffffffffffffff70007e00520029005a00310059002a0059002a0058002900570029005600290054002a0054002a0053002b005300
2b0052002d0052002d0052002e0052002f00520030005200300053003100540031005400310055003100560031005700300058002f0059002e005a002d005a00
2d005a002d005a002b0059002a0059002aa100d8000400004000a000bfa000d9a000d7a0008d09000000000000000031005f00030062007809ffffffffffffff
ff3809000000000000000031000e00030011005809ffffffffffffffff3809000000000000000031000e00010062000409ffffffffffffffff38090000000000
00000031000e00770062007a09ffffffffffffffff3809000000000000000031003900730047008009ffffffffffffffff382200190004fd002200210004fd00
22003300010300220044000103002200200036e400220022001d000c22002e003205002200220032000c09000000000000000031004000360060003909ffffff
ffffffffff38220020001a000c220022001d150022002c001ae90022005e0019000322005e0032000322005e006f000322005e004d0003220014007703002200
2e0077030022000d003b000322000d004c000322000d0064000322000d005700032200330036f4002200100064000d0900000000000000003100100024001400
2809ffffffffffffffff38600026002a0041004500b4005a6000000057001e007200b4005a2200130024f600600008001a001e003200b4005a22001900020008
2200330002001122006000191900220060004d22002200140078001a22000f004cef0009000000000000000031001d00240021002809ffffffffffffffff3809
000000000000000031000e00640011007809ffffffffffffffff3809000000000000000031002000360034003909ffffffffffffffff38a0008da0008c09000000000000000051001300690018006e09ffffffffffffffff58a0008c220014006b0002220015006a0200a0008da0008da0008da00083ff}}{
\insrsid10355392 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
The cabin furniture can be made quickly from genbox commands, for the most part.  The end table in the livingroom has a two
 foot by two foot square top (two inches thick), and has two inch by two inch legs.  The genbox "-r" rounding radius option is very useful in creating softer looking cushions for the sofas, chairs, and the bed (simply follow the "-r" with the rounding rad
ius desired:  "-r 1").  The surface primitives for the sofa and chair can be put into files called "sofa.norm" and "chair.norm", to more easily accommodate placement of the completed objects (since there is more than one sofa and chair) in the cabin scene
 using xform. 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 {\pict{\*\picprop\shplid1059{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}
\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw465\pich199\picwgoal9300\pichgoal3980\macpict\bliptag1954324429{\*\blipuid 747c9fcde23d60bce01f5b5e09a6ae81}
075fffffffff00c601d01101a00082a0008ca10096000c020000000200000000000000a1009a0008fffb0000002c000001000a000000b9001301152c00090003
0647656e65766103000304010d000e2bba0e0b436162696e204368616972a00097a0008c01000affffffff00c601d00900000000000000000b000c000c41003a
001800c3009509ffffffffffffffff4809000000000000000041005b001800c3002e09ffffffffffffffff4809000000000000000041005b007f00c3009509ff
ffffffffffffff48090000000000000000410091002d00c3008009ffffffffffffffff4809000000000000000041007c002d0092008009ffffffffffffffff48
09000000000000000041005b00a500c3010d09ffffffffffffffff4809000000000000000041003b010c00c3012109ffffffffffffffff480900000000000000
00410070013300b701af09ffffffffffffffff48090000000000000000410070013300a3014809ffffffffffffffff4809000000000000000041006f019900a2
01af09ffffffffffffffff48090000000000000000410070014700a2019b09ffffffffffffffff480900000000000000004100a1013300b701af09ffffffffff
ffffff48a10064000a4d44504c000900010002a0008c71001e00b201c000ba01cf00b601cf00ba01c000b601c000b201c000b601cf2000b6013200b601c0a000
8da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e004b012e00590136004b013200590136005901320059012e004b013222
00b6013200a3a0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffb00000002000001000a0059012a0065013104
000d00092b71550179a00097a10096000c010000000200000000000000a1009a0008fffc00000002000001000a00b601b900c201c02b8f5d0178a0009701000a
ffffffff00c601d05100b4013000b9013658a10096000c010000000200000000000000a1009a0008fffb0000000b000001000a00b9012b00c501442800c3012c
0528302c3029a00097a10064000a4d44504c000900010003a0008c01000affffffff00c601d071001e003b000f00490017003b00130049001700490013004900
0f003b001371001e00b5000f00c3001700c3001300b5000f00b5001300b5001700c300132200490013006ca0008da1006400084d44504c000a0000a10064000a
4d44504c000900010003a0008c71001e0070002e0078003c0074002e0070003c0074003c0078003c0074002e71001e007000700078007e0074007e0078007000
740070007000700074007e220074003c3400a0008da1006400084d44504c000a0000a10064000a4d44504c000900010003a0008c71001e005b00b0006900b800
5b00b4006900b8006900b4006900b0005b00b471001e00b400b000c200b800c200b400b400b000b400b400b400b800c200b422006900b4004ba0008da1006400
084d44504c000a0000a10064000a4d44504c000900010003a0008c71001e00330108003b0116003701080033011600370116003b01160037010871001e003301
15003b012300370123003b01150037011500330115003701232200370116ff00a0008da1006400084d44504c000a0000a10064000a4d44504c000900010003a0
008c71001e0092003b00a000430092003f00a0004300a0003f00a0003b0092003f71001e00b4003b00c2004300c2003f00b4003b00b4003f00b4004300c2003f
2200a0003f0014a0008da1006400084d44504c000a0000a10064000a4d44504c000900010003a0008c71001e00700159007e01610070015d007e0161007e015d
007e01590070015d71001e0093015900a1016100a1015d009301590093015d0093016100a1015d22007e015d0015a0008da1006400084d44504c000a0000a100
64000a4d44504c000900010003a0008c71001e002c00170034002500300017002c002500300025003400250030001771001e002c008600340094003000940034
008600300086002c00860030009422003000256100a0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffb000000
08000001000a0023004c002f005e28002d004d03333022a00097a10096000c010000000200000000000000a1009a0008fffb00000008000001000a0071000000
7d001228007b000103333322a00097a10096000c010000000200000000000000a1009a0008fffc00000007000001000a0068004b0074005d280072004c033230
22a00097a10096000c010000000200000000000000a1009a0008fffb00000008000001000a00a5004200b100542800af004303313722a00097a10096000c0100
00000200000000000000a1009a0008fffc00000007000001000a008600b7009200c928009000b803323522a00097a10096000c010000000200000000000000a1
009a0008fffb00000004000001000a002501110031011d28002f0112023522a00097a10096000c010000000200000000000000a1009a0008fffc00000008000001000a00820160008e01722b4f5d03313722a00097a0008da0008da00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 {\pict{\*\picprop\shplid1060{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}
\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw429\pich206\picwgoal8580\pichgoal4120\macpict\bliptag-1243805952{\*\blipuid b5dd0700a9cea662eb6b209bec3cd260}
0545ffffffff00cd01ac1101a00082a0008ca10096000c020000000200000000000000a1009a0008fffb00000029000001000a000000ab001301012c00090003
0647656e65766103000304010d000e2bac0e0a436162696e20536f6661a00097a0008c01000affffffff00cd01ac0900000000000000000b000c000c41003100
1500ba010d09ffffffffffffffff48090000000000000000410052000100ba001609ffffffffffffffff48090000000000000000410052010c00ba012109ffff
ffffffffffff48090000000000000000410087001500ba010d09ffffffffffffffff4809000000000000000041007300150088006809ffffffffffffffff4809
00000000000000004100730067008800ba09ffffffffffffffff4809000000000000000041007300b90088010c09ffffffffffffffff48090000000000000000
410032019500ba01aa09ffffffffffffffff48090000000000000000410052012e00ba01aa09ffffffffffffffff48a10064000a4d44504c000900010003a000
8c71001e00bb001600c3002400bf001600bb002400bf002400c3002400bf001671001e00bb00fd00c3010c00bf010c00c300fd00bf00fd00bb00fd00bf010c20
00bf002400bf00fda0008da1006400084d44504c000a0000a10064000a4d44504c000900010003a0008c71001e005201630060016a005201670060016a006001
67006001630052016771001e00a9016300b7016a00b7016700a9016300a9016700a9016a00b7016722006001670049a0008da1006400084d44504c000a0000a1
0064000a4d44504c000900010003a0008c71001e00660015006e0023006a001500660023006a0023006e0023006a001571001e00660058006e0067006a006700
6e0058006a005800660058006a006722006a00233500a0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffb0000
0007000001000a005d00350069004704000d0009280067003603323022a00097a10096000c010000000200000000000000a1009a0008fffb0000000700000100
0a00bf008300cb00952b4e6203363022a00097a10096000c010000000200000000000000a1009a0008fffb00000008000001000a007f0154008b016628008901
5503313722a00097a10064000a4d44504c000900010003a0008c01000affffffff00cd01ac71001e003100d2003f00d9003100d6003f00d9003f00d6003f00d2
003100d671001e00aa00d200b800d900b800d600aa00d200aa00d600aa00d900b800d622003f00d6006ba0008da1006400084d44504c000a0000a10096000c01
0000000200000000000000a1009a0008fffc00000007000001000a005e00d7006a00e928006800d803333322a00097a10064000a4d44504c000900010003a000
8c01000affffffff00cd01ac71001e00bc012f00c4013d00c0012f00bc013d00c0013d00c4013d00c0012f71001e00bc019c00c401ab00c001ab00c4019c00c0
019c00bc019c00c001ab2200c0013d5f00a0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffc00000007000001
000a00c0016700cc01792b906203323222a00097a10064000a4d44504c000900010003a0008c01000affffffff00cd01ac71001e0087003e0095004500870042
00950045009500420095003e0087004271001e00ab003e00b9004500b9004200ab003e00ab004200ab004500b9004222009500420016a0008da1006400084d44
504c000a0000a10096000c010000000200000000000000a1009a0008fffb00000008000001000a0097004400a300562800a1004503313222a00097a0008da0008da00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The most interesting piece of furniture, and by far the most complex, is the bedroom dresser.  We can create a separate file for the dresser ("dresser.norm"), to keep this dresser for possible future use in other scenes.  Since we'll want to add a woodgra
in pattern to the dresser later on, we can edit the output of genbox to change the material type identifiers as we create the dresser.  Woodgrain patterns run in a straight line; we'll need to select which way we want the grain to run f
or the dresser and livingroom table (eg:  xpine along the x-axis for the top and front of the dresser, and zpine along the z-axis for the dresser's sides).  Another detail to keep in mind with the dresser is the mirror surface; it should be located just i
n front of the wooden frame (which can be made of zpine).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1061{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}
\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw337\pich449\picwgoal6740\pichgoal8980\macpict\bliptag-1915918296{\*\blipuid 8dcd6828db0492d5f64f256a94cd0796}
0b0bffffffff01c001501101a00082a0008ca10064000a4d44504c000900010002a0008c01000affffffff01c0015071001e016c00180174002601700018016c
0026017000260174002601700018200170014601700026a0008da1006400084d44504c000a0000a0008ca10096000c020000000200000000000000a1009a0008
fffb0000001f000001000a00000000001300412c000900030647656e65766103000304010d000e2b010e0744726573736572a0009701000affffffff01c00150
2000a800dc013000dc2200a800dc85000900000000000000000b000c000c410014006100a900dd09ffffffffffffffff4822001800696b002304042200180069
fc042100a0006523040420001d00d800a000d82200a400696b002200a000d8fc042200a800dce3262200a80060e325237c002000cd0043015200432000ce00bf
015200bf22012c00dbe42622015200447a000900000000000000004100d0004800fa00bc09ffffffffffffffff480900000000000000004100fb0048012500bc
09ffffffffffffffff480900000000000000004101260048015000bc09ffffffffffffffff482201520047000822015a0046760022015200bd0008231fd6a000
8c6000df005800e9006e005a005a6800b4005aa0008da0008c6000df009600e900ac005a005a6800b4005aa0008da0008c60010b00580115006e005a005a6800
b4005aa0008da0008c60010b0096011500ac005a005a6800b4005aa0008da0008c60013600580140006e005a005a6800b4005aa0008da0008c60013600950140
00ab005a005a6001360096014000ac00b4005aa0008da10064000a4d44504c000900010003a0008c71001e001400eb002200f2001400ef002200f2002200ef00
2200eb001400ef71001e009a00eb00a800f200a800ef009a00eb009a00ef009a00f200a800ef22002200ef0078a0008da1006400084d44504c000a0000a10064
000a4d44504c000900010003a0008c71001e00a4004a00b1005600a4005600b1005000af004d00ad004a00a4005671001e00c0003800cd004300cd003800c000
3d00c2004000c4004300cd00382200af004df313a0008da1006400084d44504c000a0000a10064000a4d44504c000900010003a0008c71001e00a800eb00b600
f200a800ef00b600f200b600ef00b600eb00a800ef71001e011b00eb012900f2012900ef011b00eb011b00ef011b00f2012900ef2200b600ef0065a0008da100
6400084d44504c000a0000a10064000a4d44504c000900010003a0008c71001e012800ea013600f2012800ef013600f2013600ee013500ea012800ef71001e01
3700ea014500f2014500ee013700ea013700ee013700f2014500ee22013600ee0001a0008da1006400084d44504c000a0000a10096000c010000000200000000
000000a1009a0008fffb00000008000001000a00ab003000b7004204000d00092b30a703323022a00097a10096000c010000000200000000000000a1009a0008
fffb00000007000001000a00df00f300eb01052bc33403333222a00097a10096000c010000000200000000000000a1009a0008fffb00000004000001000a012f
00f3013b00ff2a50023222a00097a10096000c010000000200000000000000a1009a0008fffc00000007000001000a005200f1005e010328005c00f203333622
a00097a10064000a4d44504c000900010003a0008c01000affffffff01c0015071001e015d00470165005501610047015d005501610055016500550161004771
001e015d00ae016500bd016100bd016500ae016100ae015d00ae016100bd22016100555900a0008da1006400084d44504c000a0000a10064000a4d44504c0009
00010003a0008c71001e000b00610013006f000f0061000b006f000f006f0013006f000f006171001e000b00cd001300dc000f00dc001300cd000f00cd000b00
cd000f00dc22000f006f5e00a0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffc00000007000001000a000200
93000e00a528000c009403333022a00097a10096000c010000000200000000000000a1009a0008fffb00000005000001000a01610071016d007e28016b007202
3239a00097a10064000a4d44504c000900010003a0008c01000affffffff01c0015071001e00d1007a00df008100d1007e00df008100df007e00df007a00d100
7e71001e00eb007a00f9008100f9007e00eb007a00eb007e00eb008100f9007e2200df007e000ca0008da1006400084d44504c000a0000a10064000a4d44504c
000900010003a0008c71001e010d006d0115007b0111006d010d007b0111007b0115007b0111006d71001e010d00870115009601110096011500870111008701
0d008701110096220111007b0c00a0008da1006400084d44504c000a0000a10064000a4d44504c000900010003a0008c71001e010d00a9011500b7011100a901
0d00b7011100b7011500b7011100a971001e010d00ad011500bc011100bc011500ad011100ad010d00ad011100bc22011100b7f600a0008da1006400084d4450
4c000a0000a10096000c010000000200000000000000a1009a0008fffc00000007000001000a0102007d010e008f28010c007e03313022a00097a10096000c01
0000000200000000000000a1009a0008fffc00000007000001000a00d4006700e000792800de006803313022a00097a10096000c010000000200000000000000
a1009a0008fffb00000005000001000a010100ac010d00b82b452d023422a00097a10064000a4d44504c000900010003a0008c01000affffffff01c001507100
1e01340053013b0061013700530134006101370061013b00610137005371001e01340063013b007101370071013b006301370063013400630137007122013700
610200a0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffc00000005000001000a0128005c0134006828013200
5d023522a00097a10064000a4d44504c000900010003a0008c01000affffffff01c0015071001e002f00650037007300330065002f0073003300730037007300
33006571001e002f00c9003700d8003300d8003700c9003300c9002f00c9003300d822003300735600a0008da1006400084d44504c000a0000a10064000a4d44
504c000900010003a0008c71001e001800b5002600bc001800b9002600bc002600b9002600b5001800b971001e009600b500a400bc00a400b9009600b5009600
b9009600bc00a400b922002600b90070a0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffb0000000800000100
0a0027007600330088280031007703323822a00097a10096000c010000000200000000000000a1009a0008fffb00000008000001000a008700a6009300b82b30
6003333422a00097a0008da10064000a4d44504c000900010002a0008c01000affffffff01c0015071001e000901420017014900090146001701490017014600
17014200090146200170014600170146a0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e01b0011e01be012701be01
1e01b0012101b1012401b3012701be011e2201700146de41a0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffc
00000002000001000a0172002d017f00340d000a28017c002e0178a00097a10096000c010000000200000000000000a1009a0008fffc00000002000001000a01
a5012d01b201342801af012e0179a00097a10096000c010000000200000000000000a1009a0008fffc00000001000001000a001b01490028014f280025014a017aa00097a0008da00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Most of the dresser can be built using the genbox commands, but the brass handles have curved corners than can't be built with cylinders or boxes.  The handles can be thought of as consisting 
of five separate pieces:  three cylinders, and two quarter-circles.  We'll want to create a temporary file for this handle and one for the drawer, so we can easily place the handles on the drawers, and then place the drawers on the dresser.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1062{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}
\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw369\pich169\picwgoal7380\pichgoal3380\macpict\bliptag-1356987163{\*\blipuid af1e04e5f5cba2699edd7fa41f376fed}
06a3ffffffff00a801701101a00082a0008ca10096000c020000000200000000000000a1009a0008fffb0000005b000001000a0000005b001301152c00090003
0647656e65766103000304010d000e2b5c0e1544726573736572204472617765722048616e646c65a00097a0008ca0008c01000affffffff00a8017009000000
0000000000310066002f008f003a09ffffffffffffffff3809000000000000000031006500f3008f00fe09ffffffffffffffff3809000000000000000031003c
0058004700d509ffffffffffffffff3860003c00ad008e00fe0000005a60004600b5008400f40000005a60003c0030008f0084010e005a600046003900860079
010e005aa10064000a4d44504c000900010003a0008c71001e005700220065002a006500260057002a00570026005700220065002671001e003b00220049002a
003b002600490022004900260049002a003b0026220057002600f2a0008da1006400084d44504c000a0000a10064000a4d44504c000900010003a0008c71001e
0030004a00370058003400580030004a0034004a0037004a0034005871001e0030002e0037003c0034002e0037003c0034003c0030003c0034002e220034004a
f200a0008da1006400084d44504c000a0000a10064000a4d44504c000900010003a0008c71001e003000ef003700fd003400fd003000ef003400ef003700ef00
3400fd71001e003000d3003700e1003400d3003700e1003400e1003000e1003400d322003400eff200a0008da1006400084d44504c000a0000a10064000a4d44
504c000900010003a0008c71001e0057010100650108006501040057010800570104005701010065010471001e003b010100490108003b010400490101004901
0400490108003b0104220057010400f2a0008da1006400084d44504c000a0000a10064000a4d44504c000900010003a0008c71001e003000c5003700d3003400
d3003000c5003400c5003700c5003400d371001e0030005a003700680034005a0037006800340068003000680034005a22003400c5a300a0008da1006400084d
44504c000a0000a10096000c010000000200000000000000a1009a0008fffc00000005000001000a0026003e0032004a04000d0009280030003f023122a00097
a10096000c010000000200000000000000a1009a0008fffc00000004000001000a0026008f0032009b2951023322a00097a10096000c01000000020000000000
0000a1009a0008fffb00000004000001000a004b0017005700232800550018023122a00097a10096000c010000000200000000000000a1009a0008fffc000000
05000001000a002600e2003200ee28003000e3023122a00097a10096000c010000000200000000000000a1009a0008fffc00000005000001000a004a01060056
01122b2424023122a00097a10064000a4d44504c000900010003a0008c01000affffffff00a8017071001e00800022008e0029008e0026008000290080002600
800022008e002671001e00640022007200290064002600720022007200260072002900640026220080002600f2a0008da1006400084d44504c000a0000a10096
000c010000000200000000000000a1009a0008fffc00000004000001000a007400170080002328007e0018023122a00097a10064000a4d44504c000900010003
a0008c01000affffffff00a8017071001e00800102008e0109008e0105008001090080010500800102008e010571001e00640102007201090064010500720102
007201050072010900640105220080010500f2a0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffc0000000400
0001000a007401070080011329f0023122a00097a0008da10096000c010000000200000000000000a1009a0008fffb0000001d000001000a006701310073016f
28007101320d526164697573203d202e323522a00097a10064000a4d44504c000900010002a0008c01000affffffff00a8017071001e0098012e00a0013c009c
013c00a0012e009c012e0098012e009c013c20009c0009009c012ea0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e
001d0005002b000d001d0009002b000d002b0009002b0005001d000922009d0009008ea0008da1006400084d44504c000a0000a10096000c0100000002000000
00000000a1009a0008fffc00000002000001000a002e0000003a000728003800010179a00097a10096000c010000000200000000000000a1009a0008fffb00000002000001000a009b012300a7012a2800a501240178a00097a0008da0008da00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 Genworm can be used to create the quarter-circles, since we know the equation for a unit circle (from 0 to 2 \u960\'b9
) to be:  x=cosine theta, y=sine theta.  The right and left bends on the handle can be created separately, since they correspond to different parts of the circle equation (zero to \u960\'b9/2, and \u960\'b9/2 to \u960\'b9
).  The x(t) and y(t) functions are given in terms of the unit circle formula, as the circle ranges from zero to \u960\'b9/2, and z(t) is zero.  The radius of the handle is .25 inches, and five segments will be created (the curve isn't perfectly smooth).

\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
A coatrack has been included in the cabin scene, to provide us with an opportunity to practice both our genworm and genrev commands.  The coatrack stands 65 inches tall, and has a curved base that measures 14 inches acros
s and 5 inches in height.  The four curved top portions of the coatrack have two prongs each, the top measuring 4 inches extended from the center pole, and the bottom measuring 3 inches.  The unusual shape of our coatrack necessitates that we guess at the
 formula required for specifying its curve; we can use a hermite curve function, a third order polynomial, to assist us.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab \tab \tab \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1063{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw152\pich200\picwgoal3040\pichgoal4000\macpict\bliptag-1718919623{\*\blipuid 998b5e39f96bd71d901502ea456248d9}
03f3ffffffff00c700971101a00082a0008ca10096000c020000000200000000000000a1009a0008fffb00000024000001000a000000000013004a2c00090003
0647656e65766103000304010d000e2b010e08436f61747261636ba00097a0008c01000affffffff00c70097090000000000000000310002008000b7008309ff
ffffffffffffff38090000000000000000510001007e0008008509ffffffffffffffff5807000000002200b700870000a000a0a100a4000201fb01000a000000
000000000007000100012200b60082050123030423060323040423010323fa0023f90023f50023fa0023fa0023fa002302fc2304fe2307fc2303fc2304ffa000
a301000affffffff00c700972200b600820100230301230101230101230000230101230302230101230201230201230101230101230202230000230001230000
23fe0123000023ff0023ff0023fc0023fe0023ff0023fe0023fe0023fe0023fe0023fe0023fc0023fe0023ff0023fd0023fe0023ff0023fd0023fe0023ff0023
000023feff2301002300ff2301ff2301ff2301ff2301002303fe2301ff2301002301ff2301ff2302fe2300002301ff2303ff2302ffa000a1a0008c0700000000
22000e00890000a000a0a100a4000201fb01000a0000000000000000070001000122000a0091f80423fa0623ff062304042306fea000a301000affffffff00c7
009722000a0091fe0123fc0223fd0223ff0123ff0123ff0123ff0223ff0123000123000123000023000223000223010123000023010123010023020023020023
02ffa000a10900000000000000005100070092000c009609ffffffffffffffff58090000000000000000510019008c001e009009ffffffffffffffff58a0008d
a0008c070000000022000e00790000a000a0a100a4000201fb01000a0000000000000000070001000122000a0071080423060623010623fc0423fafea000a301
000affffffff00c7009722000a0071020123040223030223010123010123010123010223010123000123000123000023000223000223000023ff0123ff0123ff
0023fe0023fe0023feffa000a1090000000000000000510007006d000c007109ffffffffffffffff580900000000000000005100190073001e007709ffffffff
ffffffff58a0008da10064000a4d44504c000900010003a0008c71001e000200630010006a000200660010006a00100066001000630002006671001e00b70062
00c5006900c5006600b7006200b7006600b7006900c50066200010006600b70066a0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffc00000008000001000a00400054004c006604000d00092b543c03363522a00097a0008da0008da00083ff}}{\insrsid10355392 

\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 We'll specify two hermite curves to describe the bell-like surface of the coatrack base, because the base has two inflection
 points (it's a combination of two S-shaped curves).  We'll give genrev the functions describing the outline of the base's curve, and genrev will break up the surface of revolution into a number of segments, each of which is a cone.  We'll give genrev the
 functions z(t) and r(t) along with the number of segments we want, and we'll use hermite functions to define the z and r functions.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 We know the starting point for our coatrack base curve is at (z,r)=(0,7), and the final end point of the second curve is 
at (z,r)=(5,0).  We can pick some point in the middle as an end point for the first curve, and a starting point for the second curve, such as (z,r)=(3,2).  We can now define our hermite curves for genrev, either with two separate genrev commands, or one c
ombined genrev command.  The advantage of using one combined genrev command is that we can avoid a base with a crease in it, where two genrev command curves meet.  The combined genrev command requires an "if then else" format, in order to specify which cu
rv
e should be used as the independent variable t increases from zero to one.  The connecting point for the two curves occurs when t is approximately .7, so for values of t equal to or less than .7, we want to use the first hermite curve, and for values of t
 greater than .7 we'll use the second hermite curve.  The "-e" option in the genrev command indicates that an expression follows (in this case, our hermite curve functions).  The "-s" option in the genrev command indicates that we desire smoothing for the
 generated curve, so the ridges between segments don't show up as sharp corners.  The starting and ending direction vectors are picked by trial and error; those shown here are the final values used in the cabin scene.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 genrev Command for Brass Base
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 !genrev brass base 'if (t-.7, z2((t-.7)/.3), z1(t/.7))'\\\line \tab 'if (t-.7, r2((t-.7)/.3), r1(t/.7))'  11  -s\\\line \tab 
-e  'z1(t)=hermite(0,3,5,3,t); r1(t)=hermite(7,2,0,-1,t)'\\\line \tab -e  'z2(t)=hermite(3,5,3,0,t); r2(t)=hermite(2,0,-1,-5,t)'
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 The brass hooks can also be generated us
ing hermite curves, since once again, we know start and end points, but have no real function for how the hooks curve around.  The hooks will be generated with genworm, and once again we'll just use trial and error to get the correct starting and ending d
irection vectors.  Since there is more than one hook (there are four), we can create a "hook" file, and use xform to place the hooks around the central cylindrical pole.  For our hook, we'll work in the xz plane, so that all y values are zero.  We'll use 
(x
,z)=(4,6.5) for the top part of the hook, and (x,z)=(3,2) for the bottom part, working in an xz plane that will have to be adjusted by adding 56 to all z values before we place the hook on the pole.  The radius of the hook will be .25 inches, and we'll us
e 10 segments.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 genworm Command for Brass Coat Hook
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 !genworm brass hook 'hermite(3,4,-12,12,t)' '0'\\\line \tab 'hermite(58,62.5,-9,6,t)'  .25  10
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 Since we've written the coatrack hook data to a "hook" file, we can now use xform with it's array option to place four 
of these hooks evenly around the top of the coatrack pole.  We can use the "read" command in the vi editor to bring the results of this command into our file for the coatrack, where the results are named "hook", and the "hook" file is read in as input:

\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Using xform Array to Place Hooks
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 :r  !xform -n hook -a 4 -rz 90 hook
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 We can finish the coatrack by putting spherical brass balls at the ends of our hooks, and on the top part of the coatrack pole.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard\plain \s3\ql \li360\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin360\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Instances
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Environment
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
{\pict{\*\picprop\shplid1064{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw192\pich143\picwgoal3840\pichgoal2860\macpict\bliptag-997480390{\*\blipuid c48ba83a0fc4df5ba96ee7920fd2569e}2703ffffffff008e00bf1101a00082a0008ca0008c01000affffffff008e00bf0900000000000000003100400094005b009d09ffffffffffffffff3809000000
00000000000b0006000641001d00330027003e09ffffffffffffffff480700000000220086001b0000a000a0a100a40002010001000a00000000000000000700
010001220081001b00052302ff2302fd2304032302022300ff23fffc2301ff2303ff23000023fdfd2301002304002302fe23fdfe23fe002302fb23fd0123ff00
2300fd23feff23fd0323fcfd23020423000123f8ff23010023030423ff0023fe0123ff0223010023030023fb0423fe022302ff2303ff2300012300032300ff23
04fe23ff01a000a301000affffffff008e00bf220081001b00012300022300012301012300002300002301ff2301ff2300002301ff2301002301012300002301
012302012300002301012300002300ff23fffe2300fe2300002301ff2301ff23020023ffff23000023ffff2300002300ff2300002302002301002301002301ff
2300002300002300fe23ff0023000023000023ffff23ff002300002300002300ff2300fe2300002301ff2300ff23ff0023fe0123000023ff002300ff2300ff23
00ff23ffff23000023fe0123000023ff0123000023ff0023ff0023ffff23000023ff0023ff0023010123000023010223000023ff0123000023feff23ff0023fc
0023010023010123000123010123000023000023000123000023ff0023ff0123ff0123000023000123010023010023000023010023ff0023010023fe02230000
23ff0123fe0223000023ff012301002300ff2301002301002301002300002301002300002300012300012300002300002300002300002302ff23000023010023
0000230000230000a000a109000000000000000031000d0075001c009109ffffffffffffffff3822003b00281a000900000000000000000b001b001b41003000
29003a004009ffffffffffffffff48a0008c090000000000000000510020002b0028003109ffffffffffffffff580900000000000000000b0011001141001d00
2a0021003309ffffffffffffffff48a0008d09000000000000000051001f00350026003c09ffffffffffffffff58090000000000000000310051002800660043
09ffffffffffffffff38070000000022007700420000a000a0a100a40002010001000a0000000000000000070001000122007c004200fb23fe0123fe0323fdfd
23feff23000123010323ff0123fd0223000023020223ff0023fd0023fe0223030223020023fe052302ff2302ff2300042301012303fd23040323fffc23ffff23
080123ff0023fefc2300002302002301fd23ff0023fd002305fc2302ff23fe0023fd012300002300fd23000023fd032300ffa000a301000affffffff008e00bf
2300ff2300fe2300ff23000023ff0023000023ff0123ff0123ff0123ff0023ffff2300ff23ffff23ff0023000023ff0023000023000223010123000023ff0123
fe0123ff0123010123010123000023ff0023ff0023ff0023fe0123000023ff0123010023000123010123020023000023000023010123000023ff022300002300
012300012300002300002302ff2300002300002300002301002300012300002300022300002300002302002300002301ff230000230200230100230101230000
2300002300ff2300002300ff2300ff23ff002300002301ff23010023010023010023040123000023ffff23ffff23fffe2301002301002301ff2300ff2300ff23
000023ff0023ff0023000023000023ff002301ff2301ff2301ff2302ff2300002300002301ff23ff0023000023fe0123ff0023ff002300fe2300ff23fe0223ff
012300002300ffa000a10900000000000000000b001b001b41005100280066002f09ffffffffffffffff48a0008c0900000000000000000b000b000b41005f00
750069009409ffffffffffffffff4809000000000000000041005f00770066008109ffffffffffffffff4809000000000000000041005f00890066009209ffff
ffffffffffff4809000000000000000041005f00800066008a09ffffffffffffffff48a0008d09000000000000000031005e006a0068007409ffffffffffffff
ff3809000000000000000031003b00310043003f09ffffffffffffffff38a0008c09000000000000000041003e006b005d007509ffffffffffffffff48090000
000000000000410040006d0049007509ffffffffffffffff48090000000000000000410051006d005b007509ffffffffffffffff480900000000000000004100
49006d0052007509ffffffffffffffff48a0008d0700000000220051000a0000a000a0a100a40002010001000a0000000000000000070001000122004c000a00
052302ff2302fd2304032302022300ff23fffc2301ff2304ff23ff0023fefe2301ff2303002302fe23fdff23feff2302fb23fe0123fe012300fc23ffff23fc04
23fcfc23020423010223f8fe23000023030423ff0023fe0123ff032301ff23030023fb0423ff022302ff2303ff23ff012300032301ff2303fe23ff01a000a301
000affffffff008e00bf22004c000a00012300022300012301012300002300002301ff2301ff2300002301ff2301002301012300002301012302012300002301
012300002300ff23fffe2300ff2301ff2300002300002301ff2301002300002302ff23000023ff0023000023ffff23000023ffff2300ff230100230100230000
2301002301002301ff2300002301ff23ffff23ff0023ff0023ffff2300002300ff2300ff2300002301fe23000023000023ff0023000023fe0123000023000023
ffff2300ff2300fe23000023000023fe0023ff0123000023ff0123000023ff0023ff0023ffff23000023ffff2300002300012300002301012300022300002300
0023000123000023feff23ff0023fcff23010223020223000023fe0123000023000023ff012300002300012300012300002300002301ff230100230000230000
23000123000023ff0123ff0123fd022300002300012301002300002300002302ff23000023010023010023000023000023ff0123000023000123000023000023
00002300002301002300002301ff230000230100230000230000230000a000a10700000000220077006c0000a000a0a100a40002010001000a00000000000000
00070001000122007c006b01fb23fe0123fe0323fcfd23feff23000123010323ff0123fd0223000023030223ff0023fc0023fe0223030223020023fe052303ff
2301ff2300042302012303fd23040323fefc23ffff23080123000023fdfc2300002302002302fd23ff0023fd002305fc2301ff23fe0023fd012300002301fd23
ff0023fd032301ffa000a301000affffffff008e00bf22007c006b00ff2301fe2300ff23000023ff0023000023ff0123ff0123ff0123ff0023ffff23ffff23ff
ff23ff0023000023ff0023000023010223000123000123000023000023fe0123000023fe0123010123000023020123000023ff0023000023fe0023ff0023fe01
23000023000023000023000223010023000023010123010023000023000023010123000023ff022300002300012300012300002302ff23000023000023010023
00012300002300012301012300002300002300002302002300ff2300002301002302002301002301012300002300002300ff23000023fffe2300002300ff2301
0023010023010023040123fefe23fffe2301002301002301ff2300ff2300002301ff23ff0023fe002300002300002300ff2301ff2300002303fe2300002301ff
23ff0023000023fe0123000023fe002301fe2300002300ff23ff0023ff0223000023fe012301002300ff230000a000a1070000000022007800990000a000a0a1
00a40002010001000a0000000000000000070001000122007d009801fb23fe0123fe0323fcfd23feff23000123010323ff0123fd0123000023030323ff0023fc
0023fe0223030123030123fd052303ff2301ff2300032302022303fc23040423fefc23fffe23080223000023fdfc2300002303ff2301fd23ff0123fd002305fc
2301fe23fe0123fd012300ff2301fe23ff0023fd022301ffa000a301000affffffff008e00bf22007d009800ff2301fd23000023ffff23000023ff0123ff0123
000023000023ff0123ff0023000023ffff23ff0023ffff23ffff23ff0023000123010123000023000223ff0123ff0123000023fe0023020123010123000123ff
0023fe0023ff0023fe0123000023000023000023000223010023000023010023010123000023010023000023000123000023ff012300002300012300022301ff
2300002301002300002300ff2301002300012300012300012301012300002300002300002302002300ff2300002300002302ff23010023010123000023010123
00002300002300ff2300002300ff23ffff2300ff2300002300ff23000123020023010023040123fefe23fffe2301ff2301002301002300ff2300002301fe2300
0123ff0023000023fe002300002300002300ff2301ff2300002300002301ff2301ff2301ff23000023000023010023ff0023000023ff0023ff0023ff0123ff00
2300ff2301ff2300ff23000023fe0123000023000023fe012301002300ff230000a000a1070000000022007c00b40000a000a0a100a40002010001000a000000
0000000000070001000122007800b4000423feff23fefe23fd0223fe012300ff2301fe23ffff23fdff2301002302fe23ffff23fd0023feff2303fe23020023fe
fc2302002301012300fd2301ff2303032304fd23ff0323ff022307fe23000023fd0423010023020123010223ff0023fd0023050323010123fe0023fdff230100
23000323ffff23fdfe230101a000a301000affffffff008e00bf23000123000123000123ff0123000023000023ffff23ffff23000023ff0023ff0023ff0123fe
0123000023ff002300002301fe2300002300002300ff2300ff23000023ff0023ffff23fe002301002300002301ff2300002301ff23ffff23fe0023000023ff00
23ffff2300002300002300ff2301002302ff2300002301002300ff23ffff2300ff2300ff2300002301002300012300002301002300002300ff2300ff2301ff23
00002300002300002301002301012300002301012301002301ff2300002301ff23000023000123000023000123000023ff012300002301012300002302ff2301
002303ff23ff0223fe0223010023010023000023010123000123000023010123000023ff0023fe0023000023000023ff00230201230000230101230000230101
23010123000023010023000023ff0023000023ff0023ffff23fe0023010023000123000123000123000023ffff23ffff23000023ff00230000230000230000a0
00a10700000000220021000f0000a000a0a100a40002010001000a0000000000000000070001000122001c000f00052302ff2302fd23030323030123ff0023ff
fc2301ff2304ff23ff0023fefd2301002304002302fe23fcfe23fe002302fb23fe0123ff002300fd23fefe23fd0423fcfc23010423010223f8ff230000230304
23000023fe0023fe0323010023030023fb0423ff022302ff2303ff23000123ff022301002303fe230001a000a301000affffffff008e00bf22001c000f000123
00022300012301012300002300002301ff2301ff2300002301ff23010023010123000023010123010123010023010023000023ff002300fe2300ff2300ff2300
ff2302ff23020023000023ffff23ffff23ffff2301002301002301002301002301002301ff2300002300002300fe23ff0023000023ff0023ffff23ff00230000
2300002300ff2300fe2300002301ff2300ff23ff0023ff0123000023ff002300ff2300ff2300ff23ffff23000023000023fe0023ff0123000023000023ff0123
ff0023000023ffff23000023ffff23ff0023000123000023010123010223000023000023ff0123000023feff23ff0023fc0023020223010223ff0023000023ff
0123ff0123ff0123010023000023020023000023000023000123000023ff0123ff0123000023ff0123ff0123000023ff012301002300ff230100230100230000
2302ff23000123000023ff012300012301002300002302ff230000230100230000a000a1070000000022000100350000a000a0a100a40002010001000a000000
00000000000700010001220006003500fb23fe0123fe0323fdfd23feff23000123010323ff0123fd0123000123020223000023fc0023fe0223030223020023fe
052302ff2302ff2300042301012303fc23040423fffc23ffff23080123000023fdfc2300002302ff2301fe23ff0023fd002305fc2302ff23fe0023fd01230000
2301fd23ff0023fd032300ffa000a301000affffffff008e00bf2300ff2300fe2300ff23000023ff0023000023ff0123ff0123ff0123000023ffff23ffff23ff
ff23ff0023ffff23000123010123000123000123000123000023000023fe0123ff0023000023ff0123000023010123010123fe0023ff0023fe01230000230000
23000023000223010023000023010123010023000023000023010123000023ff0223000023000023000123000023000023000023010023010023000023000023
00002301002300012300002300012301012300002300002300002301002300002301ff2300002301ff2301002301012300002301012300002301002300002300
ff2300ff23ffff23ffff23040023040123fefe23fffe2301002300002301ff2301ff2300ff23000023ff0023ff0023000023000023ff002301ff2301ff2301ff
2301ff2301ff23010023000023ff0023000023fe0123ff0023ff002300fe2300002301ff23ff0023fe0123000023ff022301ff23ff00230000a000a1a0008ca1
00d8000400004000a100d6000400004000a000d7070000000008001723582fa100ca00080000000000000000a100c80008000000c700c7001609000000000000
00004100310087003a0095070001000109ffffffffffffffff48a000c9a100d6000400004000a000d7a000d9a100d6000400004000a100d8000400004000a000
bea000d908000809000000000000000071007e00300087003a00940037009400380094003a0092003a0091003a0091003a008f003a008e0039008a0039008900
370088003600880036008800340087003300870033008700320088003100890030008a0030008b0030008c0030008d0032009100320092003300930034009300
35009400360094003700940037009409ffffffffffffffff70007e00300087003a00940037009400380094003a0092003a0091003a0091003a008f003a008e00
39008a0039008900370088003600880036008800340087003300870033008700320088003100890030008a0030008b0030008c0030008d003200910032009200
3300930034009300350094003600940037009400370094a100d8000400004000a000bfa000d9a000d7a100d8000400004000a100d6000400004000a000d70700
0000000800172200370094f9ffa100ca00080000000000000000a100c80008000000c700c700160900000000000000004100330089003a0092070001000109ff
ffffffffffffff48a000c9a100d6000400004000a000d7a000d9a100d6000400004000a100d8000400004000a000bea000d90800080900000000000000007100
7e00330089003a009200380091003900910039009100390090003a008f003a008e003a008d0039008b0039008b0038008a003700890037008900360089003500
89003500890034008a0033008b0033008b0033008b0033008c0033008d0033008f0034009000350091003500910036009200370092003800910038009109ffff
ffffffffffff70007e00330089003a009200380091003900910039009100390090003a008f003a008e003a008d0039008b0039008b0038008a00370089003700
890036008900350089003500890034008a0033008b0033008b0033008b0033008c0033008d0033008f0034009000350091003500910036009200370092003800
9100380091a100d8000400004000a000bfa000d9a000d7a0008da0008ca100d8000400004000a100d6000400004000a000d707000000000800172200380091c2
2ba100ca00080000000000000000a100c80008000001350134fffc09000000000000000041005f004d0069005b070001000109ffffffffffffffff48a000c9a1
00d6000400004000a000d7a000d9a100d6000400004000a100d8000400004000a000bea000d9080008090000000000000000710086005d004e00690059006800
4f0068004f0066004e0065004e0065004e0064004e0062004e0062004f0062004f005f0051005e0052005d0053005d0054005d0055005e0057005e0057005e00
57005f005800600059006100590062005900630059006400580068005500690054006900530069005200690052006900500068004f0068004f09ffffffffffff
ffff700086005d004e006900590068004f0068004f0066004e0065004e0065004e0064004e0062004e0062004f0062004f005f0051005e0052005d0053005d00
54005d0055005e0057005e0057005e0057005f005800600059006100590062005900630059006400580068005500690054006900530069005200690052006900
500068004f0068004fa100d8000400004000a000bfa000d9a000d7a100d8000400004000a100d6000400004000a000d70700000000080017220068004f03faa1
00ca00080000000000000000a100c80008000001350134fffc09000000000000000041005f004e00670058070001000109ffffffffffffffff48a000c9a100d6
000400004000a000d7a000d9a100d6000400004000a100d8000400004000a000bea000d908000809000000000000000071007e005e004f006700560066005000
6600500065004f0064004f0063004f0062004f0061004f0060005000600050005f0052005e0053005e0054005f0055005f0055005f0055006000560061005600
610056006200560064005600640056006500540066005300670052006700520067005200670051006600500066005009ffffffffffffffff70007e005e004f00
67005600660050006600500065004f0064004f0063004f0062004f0061004f0060005000600050005f0052005e0053005e0054005f0055005f0055005f005500
60005600610056006100560062005600640056006400560065005400660053006700520067005200670052006700510066005000660050a100d8000400004000
a000bfa000d9a000d7a0008d070000000022006300ac0000a000a0a100a40002010001000a0000000000000000070001000122005e00adff052302ff2303fd23
03032302022300ff23fffc2301ff2304ff23ff0023fefd2301002303002303fe23fcfe23fe002302fb23fe0123fe002300fd23ffff23fd0323fbfd2302042301
0123f8ff23000023030423000023fd0123ff0223010023030023fb0423ff022302ff2303ff23000123ff032301ff2303fe23ff01a000a301000affffffff008e
00bf22005e00ad00012300022300012300012300002300002302ff2301ff2300002301ff2300002301012300002301012302012300002301012300002300ff23
00fe2300ff2300ff2300002300002301ff2301002300002302ff23000023ff0023000023ffff23fffe2301002301002301002301002300002301ff2300002301
ff23000023ffff23000023ff0023ffff23ff002300002300002300ff2300fe2300002301ff2300ff23ff0023ff0123000023ff0023000023ff002300ff2300ff
2300ff2300ff23000023fe0123ff0023000023ff0123ff0023000023ffff23000023ff0023fe0023010023000123010223000023000123000023feff23ff0023
fc0023020223010223ff0023ff0123ff0123000023ff0123010023000023020023000023000023000123000023ff0123ff0123000023ff0123ff0123000023ff
012301002300ff23010023010023000023010023010023000023ff012300012300002300002300002300002301002300002301ff230000230100230000230000
230000a000a1070000000022002c00b30000a000a0a100a40002010001000a0000000000000000070001000122003100b300fb23fe0223fe0223fcfd23feff23
010123010323ff0223fc0123010023020223ff0023fd0123fe0123030223020023fe052302ff2301002300032302012303fd23040323fefc2300ff2307012300
0023fdfc2301002302002301fd23ff0023fd002305fc2301ff23fe0123fd002301002300fd23ff0123fd022301ffa000a301000affffffff008e00bf2300ff23
00fe2300ff23000023ff0023ff0123ff0123000023ff0123ff0023ffff23ffff23ffff23ff0023000023000023000023000223010123000023ff0123000123ff
0023ff0023fe0123010023010123000023010123000023fe0023ff0023ff0123000023ff0023ff01230100230001230101230200230000230000230101230000
23ff022300002300012300012300002300002302ff2300002300012300012301022300002301002301ff2300ff23010023020023010023010123000023000023
00ff23000023fffe23000023000023010023020023010023030023fffe23000023ffff2300002300ff2300002301002301002300ff2300ff2300002301ff23ff
0023ff0023000023000023ff002301ff2301ff2301ff2302ff2300002300002300ff23ff0023ff0123000023ff0023000023ff002300002300002300002300fe
2300ff23ff0123ff0123000023000023fe012301002300ff230000a000a1070000000022000100520000a000a0a100a40002010001000a000000000000000007
00010001220006005200fb23fe0123fe0323fdfd23feff23000023010423ff0123fd0123000023020223000123fc0023fe0223030123020123fe042302ff2302
002300032301012303fd23040323fffd23fffe23080123000023fdfd2300002302ff2301fd23ff0023fd002305fd2302fe23fe0123fd002300002301fd23ff01
23fd022300ffa000a301000affffffff008e00bf220006005200ff2300fe2300ff23ffff23000023ff0123ff0123000023000023ff0123000023000023ffff23
ff0023ffff23ffff23ff0023010223000123000123ff0023000123ff0023ff0023ff0123010123010123000123ff0023ff0023ff0023fe012300002300002300
0023000123010023000023010123010023000023010123000123ff012300012300012300002300002302ff230000230100230001230000230001230002230000
2301002301002301ff2300002301ff2301002301012300002301012301002300ff2300ff23ffff23ffff23000023000023010023020023010023040023feff23
fffe2301ff2301002300002301ff2300fe23000023ff0023ff0023000023000023ff002302ff2300002301ff2301ff2301ff2300002301ff23ff0023ff0123ff
0023ff0023ff002300ff2300002301fe23000123ff0023000023fe0123ff012300002300ffa000a1070000000022006800100000a000a0a100a4000201000100
0a000000000000000007000100012200640010000423feff23fefe23fd0323fe012300ff2301fd23ffff23fdff2300002302fe23000023fc0023fffe2302ff23
02ff23fefc2303012301002300fd2301ff2303032304fd23fe042300012307ff23000023fd0323000023020123010223ff0023fe0023040323020223feff23fd
ff23000123010223ff0023fdfe230101a000a301000affffffff008e00bf2200640010000123000123000123ff0123000023000023ffff23ffff23000023fe00
23ff0023000123ff0123ff0023ff012300002300ff2301fe2300002300ff23ffff23feff23ff002301ff2301ff23fe0023ff0023ff0023ffff2300002301fe23
00002301002300002301ff2301002300ff23ffff2300ff2300ff2300002302012301002300002300ff2300fe2300002300002302002301012300002301012301
002301ff2300002301ff23000023000123000023ff022300002301012300002302ff23000023040023fe0223ff01230101230100230101230000230001230000
23ff0023ff0023000023000023000123010123000023010123020123000023010123000023ffff23000023fe0023ff0023000023ff0023000023000123010123
000023ff0023ffff23000023ff00230000230000230000a000a1070000000022002400a80000a000a0a100a40002010001000a00000000000000000700010001
22001f00a800052302ff2302fd2304032302012300ff23fffd2301ff2303fe23000023fefe2300002304ff2302ff23fdfe23feff2302fb23fe0123fe012300fd
23fffe23fc0423fcfc23020423010223f8fe23000023030523ff0023fe0023ff0323010023030023fb0423ff012302002303ff23ff002300032301002303fd23
ff01a000a301000affffffff008e00bf2300012300022300012300002301002301002301ff2300ff230000230200230100230101230202230000230100230000
2300ff23ffff2300ff2300ff2300ff2301002301002301ff2301ff23ffff23ffff2302002301002302ff2300002300002301ff23ffff23ff0023ffff23ff0023
00002300fe2300ff2300002301fe23000023000023ff0023000023fe0123000023000023ffff2300ff2300002300ff23ffff23000023000023ff0023ff012300
0023ff0123000023ff0023ff0023ffff23000023ffff23000023000123000023010123000223000023000023000123000023feff23ff0023fcff230102230203
23000023ff0023ff0023000023ff0123000123ff0123010023010023000023010023ff0023010023fe0223000023ff0123fe0223000023010023010023000023
01ff2301002300002300002300002300002300022300012301002300002301ff2300002301ff230000230000230000a000a109000000000000000031006b0028
006f009d09ffffffffffffffff3809000000000000000031001b0028001e007d09ffffffffffffffff3809000000000000000031001b0026006f002909ffffff
ffffffffff3809000000000000000031001b009c006f00a009ffffffffffffffff380900000000000000003100460099005400a509ffffffffffffffff382200
260029fd0022002e0029fd00220040002603002200510026030022002d005be50022002f0042000c22003b0058040022002f0058000c09000000000000000031
004d005b006c005e09ffffffffffffffff3822002d0040000c22002f004216002200390040e80022006b003e000322006b0058000322006b0094000322006b00
720003220021009c030022003b009c030022001a0060000322001a0071000322001a0089000322001a007c0003220040005bf40022001d0089000d0900000000
0000000031001d004a0020004d09ffffffffffffffff38600033004f004e006a00b4005a60000d007c002b009700b4005a22001f004af500600015003f002b00
5800b4005a220026002700082200400027001122006d003e1a0022006d00722200220021009d001a22001c0071ef0009000000000000000031002a004a002e00
4d09ffffffffffffffff3809000000000000000031001b0089001e009d09ffffffffffffffff3809000000000000000031002d005b0041005e09ffffffffffff
ffff38a0008da0008c090000000000000000510020008e0026009409ffffffffffffffff58a0008c2200220090000122002200900100a0008da0008da0008da00083ff}}{\insrsid10355392 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 The environment immediately su
rrounding our cabin model provides us with the opportunity to use instancing (for planting the trees), and one very large polygon for creating the ground surface surrounding the cabin.  We saw how instances of trees could be taken from the "tree.oct" file
 in the example given earlier in this chapter, and planted wherever we wanted them in our scene (be careful not to plant any trees inside the cabin).  
\par 
\par The ground we'll be planting trees in is a flat polygonal surface, centered around the cabin's foundatio
n, whose center coordinates are (13,9,-1.5), and extending a sufficient distance in every direction (about 100 feet from the cabin to each edge) to give the appearance of continuous ground around the cabin.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s3\ql \li360\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin360\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Textures
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Puckered Bedspread
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 void }{\b\insrsid10355392 texfunc}{\insrsid10355392  puckered
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
6 puck_dx puck_dy puck_dz \\
\par \tab pucker.cal -s .5
\par 0
\par 1  .2
\par 
\par puckered }{\b\insrsid10355392 plastic}{\insrsid10355392  rose_spread
\par 0
\par 0
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
5\tab .4\tab .03\tab .03\tab 0\tab 0
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
One of the simplest textures available for our use is one that perturbs all three coordinates randomly with a three-dimensional noise function, wit
hout requiring us to keep track of surface normal orientations.  We can use this "noise3" function to add a puckering texture to our bedroom bedspread.  We'll start by writing the "puckered" primitive, which is a texfunc, and using it to modify our "rose_
spread" material on the bed.  We start by naming the three variables we'll need for perturbing our three dimensions, "puck_dx", "puck_dy", and "puck_dz", and naming the calculation file where we'll define these functions, "pucker.cal".  We'll space the te
xtures about six inches apart, on average, so we'll use the "-s" scaling option with .5 feet.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 The Texture File "pucker.cal"
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \{\line \tab This puckered texture is used on the Cabin \line \tab Bedspread to provide it with a bumpy look.\line \tab A1\tab - The degree of puckeredness\line \}\line 
puck_dx = A1 * noise3a(Px,Py,Pz);\line puck_dy = A1 * noise3b(Px,Py,Pz);\line puck_dz = A1 * noise3c(Px,Py,Pz);
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Our "pucker.cal" file defines each of the three coordinate variables ("puck_dx", "puck_dy", and "puck_dz") in terms of our degree of puckeredness, A1, entered a
s the real variable with a value of .2 in our texfunc primitive above.  The noise3 function has an autocorrelation distance of 1 and a magnitude of 1 (ranging from values of -1 to 1) which we multiply our A1 variable by.  The comments for ".cal" files are
 enclosed in curly brackets.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s3\ql \li360\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin360\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Patterns
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Our cabin model contains a variety of possibilities for using patterns; we can hang pictures of previously scanned images (or Radiance images) on the walls, use brick patterns for the chimney and porch, apply an oak fl
oor pattern to the floors, put a shake pattern on the roof for shingles, and use a procedural woodgrain pattern on the bedroom dresser and livingroom table.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The picture on the livingroom wall will be taken from a scanned image of a photograph taken in Alberta, called "alberta.pic".  The x and y dimensions for the picture can be displayed with the:
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par \tab getinfo -d!$
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 command, when in the directory containing the image.  In this case, the y dimension is 231, and the x is 150.  The smaller dimension is scaled to
 be equal to one, so the larger dimension is 231/150.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
We'll start by putting a flat polygonal matte behind the picture, to prevent bleedthrough of the wall into our picture.  We're going to blow the image up to a width of three feet, for a poster-sized image.  The poster should be placed just slightly in fro
nt of the wall (which is located at x=12.25), and we can figure out the height of the poster by multiplying the 231/150 ratio by our width of three feet (to get 7.62 feet).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Photo Paper Material
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 void }{\b\insrsid10355392 plastic}{\insrsid10355392  photo_paper
\par 0
\par 0
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
5  .82  .82  .82  0  0
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
We'll use a material called "photo_paper" to print our photo on, and we can save this primitive in our "materials" file.  We can now use this same material for any other pictures we'd like to use in the cabin (such as a forest picture called "richgrove.pi
c" in the bedroom).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The data pattern that takes an image, such as our picture file, is called colorpict.  We'll call our poster "alberta_image", based on the "alberta.pic" scanned image.  The file containing sta
ndard coordinates for pictures from scanned patterns is called "picture.cal", and is stored in the system Radiance directory (/usr/local/lib/ray, on most machines).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Alberta Poster Data Pattern
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # Pictures\line \line void }{\b\insrsid10355392 colorpict}{\insrsid10355392  alberta_image\line 17  clip_r  clip_g  clip_b  alberta.pic picture.cal\\\line \tab 
pic_u pic_v  -s 3  -rx 90  -rz 90\\\line \tab -t 12.251  2.5  3\line \line alberta_image }{\b\insrsid10355392 alias}{\insrsid10355392  alberta_photo\line \tab photo_paper\line \line alberta_photo }{\b\insrsid10355392 polygon}{\insrsid10355392 
 alberta_poster\line 0\line 0\line 12\tab 12.251\tab 2.5\tab 3\line \tab 12.251\tab 5.5\tab 3\line \tab 12.251\tab 5.5\tab 7.62\line \tab 12.251\tab 2.5\tab 7.62\tab 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 The pattern p
rimitive contains a scaling factor of 3, since the "alberta.pic" data file is scaled to one, and our poster is three feet wide.  The red, green, and blue values are "clipped", so that they won't exceed reflectance of one and start glowing, and the "pic_u"
 and "pic_v" variables indicate that we want to start our picture at the xy intersection point (0,0), face-up.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 Our wood floor pattern comes from a data file called "oakfloor.pic", which has y/x dimensions of 96/166.  This image contains seven slats, and we
'll scale this smaller dimension so that these seven slats measure 14 inches (s=1.1667).  The larger dimension will then be 14*(166/96), or 24.208 inches.  We had already defined a primitive for the wood_floor in materials with a modifier of void; now we 
will change the word "void" to "oakfloor_pat", and change the RGB values to an overall reflectance of 20%, so the material has a neutral effect at first (we can change the values later on, to adjust color intensities).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Wood Floor Pattern
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 void }{\b\insrsid10355392 brightfunc}{\insrsid10355392  dusty\line 4  dirt  dirt.cal  -s  2\line 0\line 1  .15\line \line dusty }{\b\insrsid10355392 colorpict}{
\insrsid10355392  oakfloor_pat\line 9  red green blue  oakfloor.pic  picture.cal\line \tab tile_u tile_v  -s 1.1667\line 0\line 1  .578313253\line \line oakfloor_pat }{\b\insrsid10355392 plastic}{\insrsid10355392  wood_floor\line 0\line 0\line 
5  .2  .2  .2  .02  .05
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The one real argument in the "wood_floor" primitive is the aspect ratio of our oakfloor pattern (96/166), and tile_u and tile_v need these ratio figures to place the pattern on the floor.  The "dusty" primitive throws dirt on the floor, making a slightly 
uneven (and therefore, more natural) coloration.  The dirt periodicity is spaced every 2 feet, and the degree of dirtiness is 15%.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The roof shingles can be applied to the roof in a similar fashion, for the most part, except that we need to pay special attention to orienting the pattern to match the angle of the roof (45\u176\'a1
), and the direction (either north or south facing) will require rotation about the z-axis for the north shingles.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 The woodgrain patterns for furniture, such as the bedroom dresser and the livingroom table, can be generated proc
edurally, using brightfunc.  We have already given careful consideration to the direction we want our woodgrain to go for the dresser and table, using the material names xpine, ypine, and zpine to correspond to the direction of the grain.  Now we can name
 our procedural wood patterns names like "ywoodpat", to correspond to the grain that runs along the y-axis.  The scaling of .025 is the distance between the woodgrains we've set, and we'll use a darkness magnitude of 30%.  We can use aliases to relate the
 wood patterns with our xpine, ypine, and zpine material modifiers.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Procedural Woodgrain Pattern
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 void }{\b\insrsid10355392 brightfunc}{\insrsid10355392  xwoodpat\line 4 xgrain woodpat.cal -s .025\line 0\line 1 .3\line \line xwoodpat }{\b\insrsid10355392 plastic}{
\insrsid10355392  xpine\line 0\line 0\line 5       .7      .25      .08     0       0 \line \line void }{\b\insrsid10355392 brightfunc}{\insrsid10355392  ywoodpat\line 4  ygrain  woodpat.cal  -s .025\line 0\line 1  .3\line \line ywoodpat }{
\b\insrsid10355392 alias}{\insrsid10355392  ypine\line \tab xpine
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s3\ql \li360\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin360\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Light Sources
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Until we add a light source, our scene will appear completely dark.  It's generally a good idea to add the sun as a light source, and the sun's light contributions to our scene will depend on where and when the scene is being viewed.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
One of the first input files we'll want to build before we start generating images, regardless of whether or not we've used a CAD system, is the file containing the information about our scene's location.  Radiance uses this information to correctly posit
ion the sun for the location and time provided.  Our cabin is located in Jasper, Alberta, with lattitude 52.53\u176\'a1 and longitude 118.05\u176\'a1, and standard meridian 105\u176\'a1.  Radiance has defaults set for
 the San Francisco bay area, so we'll need to provide gensky the information about our cabin's location.  We'll select a date and time of July 12th at noon for a summer day, and put all the information into a file called "summerday".  We can easily create
 other files based on different times of day and year, to view our model under a variety of daylight conditions.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 In addition to the gensky command, the sky distribution is given as a brightness function, skyfunc, and defined in two primitives.  For a hemis
pherical blue sky, a skyfunc primitive for a blue sky ("sky_glow") is defined, and then used to modify the source called "sky" that has a hemispherical (180\u176\'a1
) shape.  There can also be some light from the ground, which we can call "ground_glow", eminating from a source called "ground".
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Summerday File Information
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # The sky over our little cabin scene in Jasper, Alberta\line # Canada at 12 noon (standard time) on July 12th.\line \line 
!gensky   7   12   12   -a  52.53   -o  118.05   -m  105\line \line skyfunc }{\b\insrsid10355392 glow}{\insrsid10355392  ground_glow\line 0\line 0\line 4  1  .8  .5  0\line \line ground_glow }{\b\insrsid10355392 source}{\insrsid10355392  ground\line 0
\line 0\line 4  0  0  -1  180\line \line skyfunc }{\b\insrsid10355392 glow}{\insrsid10355392  sky_glow\line 0\line 0\line 4  .8  .8  1  0\line \line sky_glow }{\b\insrsid10355392 source}{\insrsid10355392  sky\line 0\line 0\line 4  0  0  1  180\line 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The cabin windows currently don't include interreflection calculations from the sky, so we'll add an optional optimization (illum) to the windows to turn them into secondary light sources.  This addition of secondary light sources is not really absolutely
 essential for viewing the scene, but it does improve the efficiency of the program's lighting calculations, 
and since we know that some light is coming through the windows after first bouncing around, our simulation will benefit from our use of this knowledge.  Without any light sources whatsoever, everything in our scene is dark.  With just the sun, the progra
m checks to see if the object is in shadow; if not, the program calculates brightness at that point.  If the object being viewed is in shadow, the program uses the constant ambient value we specified.  This results in the scene appearing to consist of fla
t colors, if only ambient light exists with no direct light.  The ambient value for outdoor scenes must correlate to the actual amount of light bouncing around, which is much higher for outdoor scenes than indoor scenes.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Currently, our cabin model has windows that only let in the direct light from the sun, and doesn't allow for the windows to provide an additional brightness from interreflection.  If we give the window panes the same brightness as the sky at that point, w
e will help to illuminate more than j
ust the bright patches of sunshine from direct sunlight in the cabin's interior.  We still want to be able to see outside the window (and not be viewing a white light source), so we'll use illum.  Illum allows us to see through the window panes, and allow
s other rays in the calculation to pass through it so the sun's rays still come through, even though illum is a light source.  We'll use "plain_glass" as the default glass material, which will be visible whenever being viewed through (so we can see to the
 other side).  To give the windows the same distribution as the sky, we'll use a modifier (pattern and brightness) with gensky.  Gensky always produces a description of a modifier, called skyfunc, for that particular time of day and year.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Changing Window Glass to Illum in "daywindows"
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # Adding illumination sources to cabin windows\line # to provide sky light for the cabin scene interior.\line \line skyfunc }{\b\insrsid10355392 brightfunc}{\insrsid10355392 
 winbright\line 2  winxmit  winxmit.cal\line 0\line 0\line \line winbright }{\b\insrsid10355392 illum}{\insrsid10355392  window_illum\line 0\line 0\line 3  .88  .88  .88
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 It's important t
o note that the glass surfaces must be oriented with their surface normals pointing toward the interior of the cabin space, to function properly as light sources for the interior.  We'll use the right hand rule to determine surface normals for these windo
w illumination sources, and we can use gensurf to create these illuminating windows, since we may decide later on to change the number of illumination sources per window from one to some more accurately representative number (although that will sacrifice 
speed and efficiency for accuracy).  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1065{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw312\pich319\picwgoal6240\pichgoal6380\macpict\bliptag36829656{\*\blipuid 0231f9d8f08a8db06af0bdfa15138501}
03ecffffffff013e01371101a00082a0008ca10096000c020000000200000000000000a1009a0008fffb0000008c000001000a0000000e001301282c00090003
0647656e65766103000304010d000e2b0f0e21496c6c756d696e6174696e6720536f75746820466163696e672057696e646f7773a00097a0008ca0008c01000a
ffffffff013e0137090000000000000000310045002e00d6007709ffffffffffffffff38200045005200d50052220069002e480022008d002e48002200b1002e
4800a0008da0008c090000000000000000310045007600d600bf09ffffffffffffffff38200045009a00d5009a2200690076480022008d007648002200b10076
4800a0008da0008c09000000000000000031004500bd00d6010609ffffffffffffffff3820004500e100d500e122006900bd480022008d00bd48002200b100be
4800a0008da10064000a4d44504c000900010002a0008c71001e00fb00010103000f00ff000100fb000f00ff000f0103000f00ff00012000ff012c00ff000fa0
008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e001e0128002c012f001e012c002c012f002c012c002c0128001e012c
2000ff012c002c012ca0008da1006400084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e013000e6013c00f2013c00e6013000ee0133
00f0013500f2013c00e62200ff012cc434a0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffc00000003000001
000a0032012e0042013604000d000c28003e012f017aa00097a10096000c010000000200000000000000a1009a0008fffc00000002000001000a010000150110
001d28010c00160178a00097a10096000c010000000200000000000000a1009a0008fffb00000002000001000a012700fd013701052be8270179a00097a0008c
01000affffffff013e0137070000000022009d00b40000a000a0a100a4000201fb01000a000000000000000007000100012200a800ac08f52303f123faf023f4
f623edfe23f00723f70f230211a000a301000affffffff013e01372200a800ac02fd2303fc2302fb2302fb2300fe2301fe2300fc2300fd23fffc23fffe23fffe
23fefc23fefd23fefe23fefe23ffff23fcfe23fcfe23fbff23fe0023fe0023fb0023fc0123fc0123fe0123fe0123fc0223fd0323fe0323ff0223ff0123ff0223
000223ff0323000323ff04230002230105230002a000a1a10064000a4d44504c000900010002a0008c71001e0098007800a6008200a60082009b00780099007c0098007f00a6008222009b007c00fea0008da1006400084d44504c000a0000a0008da0008da0008da00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The above diagram shows how the surface normal points towards us (the thumb) when we curl our fingers up along the z-axis, and then out to the left, along the x-axis.  For the southeast and southwest windows then, t in gensurf will correspond with the x-a
xis, and s with the z-axis.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Polygons for Window Illumination
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # Polygons for window illumination surfaces,\line # for the south_east window, using gensurf.\line \line !gensurf window_illum southwest_window \\\line \tab '5.5 + t*(10.5-5.
5)'  '0'  '3 + s*(6-3)'  1  1\line 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Gensurf provides us with a very useful way to break these illum light sources into sub-sources later on, since gensurf defines a curved surface which is defined parametrically in terms of (s,t) functions.  Since our s and t correspond to z and x, all y-va
lues will be zero.  The width of the window along the x-axis varies from 5.5 to 10.5 feet, and the window's height along the z-axis varies from 3 to 6 feet as s and t both vary from zero to one.  A six-inch allowance has been
 made along the x-axis for the window sills.  The number of s divisions and t divisions will be one this time, since we're starting off with one illumination source per window.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Cabin Lights
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1066{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw129\pich100\picwgoal2580\pichgoal2000\macpict\bliptag-1618598665{\*\blipuid 9f8624f7c07797174866066c62e66f0d}0cd6ffffffff006300801101a00082a0008c01000affffffff00630080090000000000000000310033006f004e007809ffffffffffffffff3809000000000000
00003100010050000f006b09ffffffffffffffff3822002e00031a000900000000000000000b001b001b4100230004002d001b09ffffffffffffffff48090000
00000000000031004400030059001e09ffffffffffffffff3809000000000000000041004400030059000909ffffffffffffffff48a0008c0900000000000000
000b000b000b4100520050005c006f09ffffffffffffffff480900000000000000004100520052005a005c09ffffffffffffffff480900000000000000004100
520063005a006d09ffffffffffffffff48090000000000000000410052005b005a006409ffffffffffffffff48a0008d0900000000000000003100510045005b
004f09ffffffffffffffff3809000000000000000031002e000c0036001a09ffffffffffffffff38a0008c09000000000000000041003100460050004f09ffff
ffffffffffff480900000000000000004100330048003c004f09ffffffffffffffff480900000000000000004100440048004e004f09ffffffffffffffff4809
000000000000000041003c00480045004f09ffffffffffffffff48a0008da0008ca100d8000400004000a100d6000400004000a000d70700000000080017234b
faa100ca00080000000000000000a100c80008000000c700c700160900000000000000004100240062002e0070070001000109ffffffffffffffff48a000c9a1
00d6000400004000a000d7a000d9a100d6000400004000a100d8000400004000a000bea000d908000809000000000000000071007e00230062002e006f002a00
6e002b006e002d006d002d006c002e006b002e006a002d0069002c0065002c0064002a0063002900620029006200270062002600620026006200250063002400
64002400640024006500230067002300680025006c0025006d0026006e0027006e0028006f0029006f002a006e002a006e09ffffffffffffffff70007e002300
62002e006f002a006e002b006e002d006d002d006c002e006b002e006a002d0069002c0065002c0064002a006300290062002900620027006200260062002600
620025006300240064002400640024006500230067002300680025006c0025006d0026006e0027006e0028006f0029006f002a006e002a006ea100d800040000
4000a000bfa000d9a000d7a100d8000400004000a100d6000400004000a000d7070000000008001722002a006efaffa100ca00080000000000000000a100c800
08000000c700c700160900000000000000004100260064002d006d070001000109ffffffffffffffff48a000c9a100d6000400004000a000d7a000d9a100d600
0400004000a100d8000400004000a000bea000d908000809000000000000000071007e00260064002d006c002b006c002c006c002c006b002c006a002d006900
2d0069002d0068002c0066002c0066002b0065002a0064002a006400290064002800640028006400280064002700650026006600260066002600670026006800
26006a0027006b0028006c0028006c0029006c002a006c002b006c002b006c09ffffffffffffffff70007e00260064002d006c002b006c002c006c002c006b00
2c006a002d0069002d0069002d0068002c0066002c0066002b0065002a0064002a00640029006400280064002800640028006400270065002600660026006600
260067002600680026006a0027006b0028006c0028006c0029006c002a006c002b006c002b006ca100d8000400004000a000bfa000d9a000d7a0008da0008ca1
00d8000400004000a100d6000400004000a000d7070000000008001722002b006cc22ba100ca00080000000000000000a100c80008000001350134fffc090000
0000000000004100520028005c0035070001000109ffffffffffffffff48a000c9a100d6000400004000a000d7a000d9a100d6000400004000a100d800040000
4000a000bea000d908000809000000000000000071007e00500028005c0034005b002a005b002a00590029005800280058002800560029005500290052002c00
51002d0050002e0050002f00500030005100320051003200510032005200330053003400540034005500340056003400570033005b0030005c002f005c002e00
5c002d005c002c005c002b005b002a005b002a09ffffffffffffffff70007e00500028005c0034005b002a005b002a0059002900580028005800280056002900
5500290052002c0051002d0050002e0050002f00500030005100320051003200510032005200330053003400540034005500340056003400570033005b003000
5c002f005c002e005c002d005c002c005c002b005b002a005b002aa100d8000400004000a000bfa000d9a000d7a100d8000400004000a100d6000400004000a0
00d7070000000008001722005b002a03fba100ca00080000000000000000a100c80008000001350134fffc0900000000000000004100520029005a0032070001
000109ffffffffffffffff48a000c9a100d6000400004000a000d7a000d9a100d6000400004000a100d8000400004000a000bea000d908000809000000000000
000071007e00520029005a00310059002a0059002a0058002900570029005600290054002a0054002a0053002b0053002b0052002d0052002d0052002e005200
2f00520030005200300053003100540031005400310055003100560031005700300058002f0059002e005a002d005a002d005a002d005a002b0059002a005900
2a09ffffffffffffffff70007e00520029005a00310059002a0059002a0058002900570029005600290054002a0054002a0053002b0053002b0052002d005200
2d0052002e0052002f00520030005200300053003100540031005400310055003100560031005700300058002f0059002e005a002d005a002d005a002d005a00
2b0059002a0059002aa100d8000400004000a000bfa000d9a000d7a0008d09000000000000000031005f00030062007809ffffffffffffffff38090000000000
00000031000e00030011005809ffffffffffffffff3809000000000000000031000e00010062000409ffffffffffffffff3809000000000000000031000e0077
0062007a09ffffffffffffffff3809000000000000000031003900730047008009ffffffffffffffff382200190004fd002200210004fd002200330001030022
0044000103002200200036e400220022001d000c22002e003205002200220032000c09000000000000000031004000360060003909ffffffffffffffff382200
20001a000c220022001d150022002c001ae90022005e0019000322005e0032000322005e006f000322005e004d00032200140077030022002e0077030022000d
003b000322000d004c000322000d0064000322000d005700032200330036f4002200100064000d09000000000000000031001000240014002809ffffffffffff
ffff38600026002a0041004500b4005a6000000057001e007200b4005a2200130024f600600008001a001e003200b4005a220019000200082200330002001122
006000191900220060004d22002200140078001a22000f004cef0009000000000000000031001d00240021002809ffffffffffffffff38090000000000000000
31000e00640011007809ffffffffffffffff3809000000000000000031002000360034003909ffffffffffffffff380900000000000000005100130069001800
6e09ffffffffffffffff58a0008c220014006b0002220015006a0200a0008da0008c09000000000000000051000a004f000e005509ffffffffffffffff582200
0b004ffafc22000a0051fbf822000a005203f822000b005404fca0008da0008c090000000000000000510010000d0014001309ffffffffffffffff5822001100
0dfa05220013000ffb072200130010030722001100120405a0008da0008c09000000000000000051001000160014001c09ffffffffffffffff582200110016fa
052200130018fb0722001300190307220011001b0405a0008da0008c09000000000000000051004d00110052001809ffffffffffffffff582200510012f90522
004f0010f40522004e0010f4fd22004d0012f9fca0008da0008c09000000000000000051004b00450050004c09ffffffffffffffff5822004f0047f90622004e
0044f50422004d0044f5fd22004b0047f9fca0008da0008c22003b00160f0f22003b0025f10f2200430015120022003a001e0012090000000000000000510040
001b0047002209ffffffffffffffff58a0008da0008c22002200510f0f2200220060f10f220029004f1200220020005800120900000000000000005100260055
002d005c09ffffffffffffffff58a0008da0008c22003b00510f0f22003b0060f10f220043004f120022003a0058001209000000000000000051004000550047005c09ffffffffffffffff58a0008da0008da00083ff}}{\insrsid10355392 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
We can add lights to our cabin scene using both IES files and our own light source creations.  We can put floodlights in the bedroom and livingroom of the cabin to illuminate the posters, and use overhead lights in the bedroom and livingroom for general i
llumination.  We can use the same sorts of lights to mount on the side of the wall in the bathroom and over the front porch, giving us a total of three different types of lights in this scene.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
We can use an IES file ("ies06") that contains information for the floodlights, and run the ies2rad program from the command line to convert the ies file to Radiance format.  We can rename the file "flood.ies", to provide a slightly more descriptive name.

\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Converting IES Files to Radiance Format
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 %ies2rad -m .25 -df -t default create/flood.ies
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 The "-m" option in the ies2rad
 command indicates that a multiplier of 25% is being used on the ies file values; the "-df" option specifies that we want our dimensions in feet (the default is meters); and the "-t" option stands for lamp type information (such as color, depreciation, an
d lamp specifications).  The "default" indicates that we want a white fixture (so we would need to provide color with the "-c" option, if we didn't want white).  The "create/flood.ies" grabs the input file "flood.ies" from our create subdirectory and puts
 the output files in our current directory (unless we use the "-l" or "-p" options), automatically naming the output files "flood.rad" and "flood.dat". 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Floodlight Shroud
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\tab }{\insrsid10355392 {\pict{\*\picprop\shplid1067{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw134\pich147\picwgoal2680\pichgoal2940\macpict\bliptag422690806{\*\blipuid 1931bff66e6a94241088b5fab07dd509}035cffffffff009200851101a00082a0008c01000affffffff0092008522007e00016c0022005b00016c0022005b0001002422005b006d002422005b001b00b8
22005a005300b9220012001b3800a10064000a4d44504c000900010003a0008c71001e008100010089000f008500010081000f0085000f0089000f0085000171
001e0081005f0089006e0085006e0089005f0085005f0081005f0085006e220085000f5000a0008da1006400084d44504c000a0000a10064000a4d44504c0009
00010003a0008c71001e0008001b00100029000c001b00080029000c002900100029000c001b71001e0008004400100053000c005300100044000c0044000800
44000c005322000c00291b00a0008da1006400084d44504c000a0000a10064000a4d44504c000900010003a0008c71001e001200560020005d0012005a002000
5d0020005a002000560012005a71001e004b00560059005d0059005a004b0056004b005a004b005d0059005a220020005a002ba0008da1006400084d44504c00
0a0000a10064000a4d44504c000900010003a0008c71001e005b006f00690076005b007300690076006900730069006f005b007371001e0070006f007f007600
7f00730070006f0070007300700076007f007322006900730007a0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008
fffc00000005000001000a002e005a003a00672c000900030647656e6576610300030d00092b5b38032e3527a00097a10096000c010000000200000000000000
a1009a0008fffc0000000b000001000a00000029000c004228000a002a052e33373527a00097a10096000c010000000200000000000000a1009a0008fffb0000
0005000001000a00670077007300842b4e67032e3327a00097a10096000c010000000200000000000000a1009a0008fffb00000008000001000a008500320091
004528008f0033042e373527a00097a10064000a4d44504c000900010002a0008c01000affffffff0092008571001e003200330040003a003200370040003a00
4000370040003300320037220076003700caa0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffc00000001000001000a0046002f005200352800500030017aa00097a0008da00083ff}}{\insrsid10355392                   
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
We'll want to surround the light source with a fixture of some type, so we'll build a shroud for the floodlight in a file called "flood.shroud", using two cylinders and two rings.  The cylinders and rings will rise up along the z-axis, and we can consider
 the z origin to be near the bottom of the shroud, perhaps .05' inside of the larger cylinder (since we'll want our light recessed into the shroud just a bit).
\par 
\par The next step will be centering the floodlight over each of our posters, which are centered at (x,y,z)=(12.251,4,5.31) and (.001,4,5.2205) for the livingroom and bedroom posters, respectively.  We'll be placing the floodlight in our "lights" file, using t
he "flood.rad" and "flood.shroud" files as input.  Assuming that we want to place our floodlights about 3 feet away from the posters (in the x direction), we can
 determine the desirable height above the poster to be about five feet.  Once we're happy with where we want to place the floodlights, we can use xform to name the light, drop the floodlight down to center (where the light source will be recessed), and ro
tate and place the floodlight right where we want it.  We'll also want to add the finishing touch of a support for the floodlight, so it doesn't appear to be dangling in thin air.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Bedroom Spotlight in "lights" file
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 !xform -n bedroomspot -e -t 0 0 -.5 -ry 30 -t 3 4 11\\\line \tab flood.rad flood.shroud\line \line brass }{\b\insrsid10355392 cylinder}{\insrsid10355392  bedroomspot.support
\line 0\line 0\line 7\tab 3\tab 4\tab 11\line \tab 3\tab 4\tab 12.1\line \tab .02  
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Bedroom Overhead Light
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \line void }{\b\insrsid10355392 light}{\insrsid10355392  big_globe_light
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
0\line 0\line 3\tab 10   10   10
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par big_globe_light }{\b\insrsid10355392 sphere}{\insrsid10355392  bedlight
\par 0
\par 0
\par 4\tab 6\tab 5.5\tab 8\tab .5
\par 
\par brass }{\b\insrsid10355392 cylinder}{\insrsid10355392  bedlight.support
\par 0
\par 0
\par 7\tab 6\tab 5.5\tab 8.5
\par \tab 6\tab 5.5\tab 13.6
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
\tab .02
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
The bedroom overhead light can be created fairly quickly, using the radiance calculation discussed earlier in this chapter for a spherical source}{\v\insrsid10355392  (see page #)}{\insrsid10355392 
.  Our 100 watt bulbs of 6 inch radius have an output of 1750 lumens, and if we work through all the calculations for radiance, we end up with RGB values of 10 w/sr/m}{\fs18\up6\insrsid10355392 2}{\insrsid10355392 
.  We can now create the primitives describing our bedroom overhead light that describe the light source, the shape of the spherical source, and the brass support pole that attaches the overhead light to the ceiling.  The two overhead lights in the living
room can be built exactly the same way we built the bedroom overhead light, using the "big_globe_light" modifier for the spheres used in the livingroom, and adding their supports.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Our front porch light and the identical bathroom lights can be created similarly to how we built the overhead lights, with the exception that they will be side-mounted to walls with a brass cone.  The small globe lights used for the porch and bathroom can
 be given greater output (using 14.5, instead of 10 for RGB values).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par \sect }\sectd \linex0\endnhere\sectdefaultcl\sftnbj {\headerl \pard\plain \s35\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Image Generation
\par }}{\headerr \pard\plain \s35\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab Image Generation
\par }}{\footerl \pard\plain \s34\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\field{\*\fldinst {\insrsid10355392  DATE  }}{\fldrslt {
\insrsid10355392 10/8/07}}}{\insrsid10355392  Draft\tab - }{\field{\*\fldinst {\insrsid10355392  PAGE  }}{\fldrslt {\insrsid10355392 80}}}{\insrsid10355392  -\tab 
\par }}{\footerr \pard\plain \s34\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab - }{\field{\*\fldinst {\insrsid10355392  
PAGE  }}{\fldrslt {\insrsid10355392 81}}}{\insrsid10355392  -\tab }{\field{\*\fldinst {\insrsid10355392  DATE  }}{\fldrslt {\insrsid10355392 10/8/07}}}{\insrsid10355392  Draft
\par }}\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s1\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f12\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Image Generation
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Introduction
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Ray tracing simulates the behavior of light by tracking the path of light from its presumed destination to one or more source
s, following the ray's path around the scene.  Image generation is the process where this simulation takes place, based on the input files provided to the ray tracing software that contain the material, object, and light source descriptions.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The most frequently desired output, and the type for which Radiance is tailored, is the color image.  A color image is a two-dimensional array of radiance values rendered by projection from a three-dimensional scene, similar to a photographic image.  The 
Radiance value
s are broken into spectral components, nominally red, green, and blue.  The renderer RPICT produces picture files in batch mode, and RVIEW calculates and displays images interactively.  RTRACE provides other lighting calculations and information, such as 
illuminance or light source distributions.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
There are commonalities between the Radiance rendering programs (RPICT, RVIEW, and RTRACE), which share many of the same command options (please refer to the RPICT manual page for a list).  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Scene Compilation
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Rad
iance uses octrees to generate its images in the most efficient way possible, since this technique handles complex environments very well by sorting objects in the scene before the rays are traced.  In an octree sort, the space in the scene is recursively
 divided into cubes which contain no more than a certain number of objects specified to the program.  A ray is then followed through the resulting "octree", and intersection calculations are performed only on those objects which lie in the cubes intercept
in
g the ray, instead of across the whole scene.  Octrees can greatly reduce the time required for ray-tracing complex scenes; the time required for this type of intersection calculation increases as the cube root of the number of objects, making it suitable
 for very densely crowded environments.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
OCONV is used to create an octree from a list of object files.  Each surface is recursively intersected with the cubes in the growing octree until all objects have been done and the octree is complete.  The requireme
nt that surfaces be intersected with cube faces makes the task of implementing a new surface type somewhat more involved than it would be without an octree conversion.  This drawback is more than compensated for by the increased speed during ray tracing u
sing an octree sort.  Options for changing the maximum octree resolution and the maximum number of objects per elemental cube are provided.  Optimal speed of ray tracing is related to these values, but they are not critical.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 The user should be aware of pos
sible errors that may arise when using OCONV, as well as OCONV formats.  It is important to use the correct order of files when running OCONV, so that modifiers are defined }{\ul\insrsid10355392 before}{\insrsid10355392 
 they are used.  If the files are out of order so that materials and other modifiers are referred to before they've been defined, an error message is printed about an undefined modifier, and OCONV aborts.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 This example oconv command creates an octree called "oct/cabin" from the files called:  "materials", "cabin", "bathroom" and "furniture".  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Creating an Octree with OCONV
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 %oconv  materials  cabin  bathroom furniture  >  oct/cabin
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 Octrees that are }{\i\insrsid10355392 frozen}{\insrsid10355392 
 contain data structures that can no longer be changed.  The "-f" option of oconv freezes the octree by storing all the octree information as it currently exists in a binary file format at the end of the octree file (roughly doubling the file size), which
 facilitates faster scene loading.  The chief disadvantage of freezing octrees is that any changes made to materials won't be refl
ected in an octree that has been frozen, so if you want to change a material to be more to your liking, you'll have to redo the octree as well.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
When oconv is run, it creates a "bounding cube" minimum cube that surrounds the whole scene.  The example of the octree for the cabin shown above has created a boundary that surrounds the cabin, but does not include the forested areas to be added later ar
ound the cabin.  When the forested areas are added, the bounding cube area will grow larger.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 Unfrozen octrees a
re dependent on scene files; scene files are needed any time the octree is to be used.  Care is needed any time files related to an unfrozen octree are changed or moved, to ensure that the octree will still be intact when needed.  Frozen octrees are the b
est way to create libraries of objects, since they have the advantage of not requiring all the scene files to be stored with them (one frozen octree file contains all the information required to generate that scene).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 Octrees are meant to be machine indepen
dent.  OCONV creates binary, machine-independent files, so it's simple to move Radiance files from one machine to another.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Batch 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
RPICT follows rays of light through an image plane and into the scene compiled in an octree, to produce a high-quality picture file.  To produce such a high-quality image of a scene, one starts by selecting a view point and view direction, much as we woul
d do if we were to walk into the scene and take a picture with a camera.  Generating an image can take anywhere from a few min
utes for a low resolution test to many hours for a publication quality image; RPICT may be run overnight to produce high resolution pictures suitable for presentation.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par RPICT Program variables fall into several categories:  
\par 
\par }\pard\plain \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 \f12\fs20\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 View\tab 
The direction and field of view are selected for the image desired.  A }{\i\insrsid10355392 view up}{\insrsid10355392  vector determines the orientation of the picture.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 Resolution\tab 
The horizontal and vertical resolution determine the detail of the picture, and strongly influence the time required for its computation. 
 Image plane sampling reduces the time for high resolution pictures.  By specifying a grid of sample points, the program will only trace rays between points if they differ by more than a specified amount.  Jittering rays through each pixel avoids aliasing
 at high contrast edges.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 Direct Calculation\tab 
Normally, sources are treated as if they eminate from a point.  Jittering a ray to a source by an amount proportional to the source's size produces a more accurate rendering of the scene.  Unfortunately, this tec
hnique causes problems for image plane sampling, since adjacent pixels receive slightly different values.  Pictures using source sampling therefore take longer than the same picture using point sources.  
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 \tab New "-dj", "-dt", and "-dc" options are available; please refer to the RPICT manual page for a list.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 Indirect Calculation\tab 
The ambient, or interreflected component, is calculated using a Monte Carlo technique.  Each calculation produces a specified number of rays.  Computed ambient levels are stored in a
 table and used for interpolation on nearby values.  The distance at which an interpolated value is considered valid is set by the user.  This method produces accurate interreflected components at a modest expense.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 Limits on Recursion\tab 
To prevent tracing unnecessary rays, limits are placed on the spawning of new rays.  A limit on the depth of recursion prevents more than a given number of reflections to occur.  A minimum ray weight stops rays whose contribution to th
e final value would be below a certain level.
\par }\pard \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 {\insrsid10355392 
\par 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Based on our chosen view point and view direction coordinates, we can either calculate the view direction vector by subtracting the view point coordinates from the point being viewed (also called the "look at point", or the "view center"), or we can estim
ate some view direction vector that's close enough.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 RPICT Example
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 % rpict -vp 5 4 6  -vd 0 1 0  test.oct > test.pic &\line 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 The "-vp" option stands for view point, and the "-vd" stands for view direction.  This example shows how a view direction of look
ing due north up the y-axis has been selected, with a direction vector of (0,1,0).  The resulting Radiance image is written to the file called "test.pic", and the "&" option indicates that we wish this job to run in the background, since it may take a whi
le to complete.  Once you've started this job running in the background, you can log out and go home if you wish, and the job will keep running.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 You will see a bracketed number printed by the C-shell command interpreter immediately preceding the RPICT comm
and; this is the process id [PID] that can be used later to check the progress or kill the program.  If for any reason you wish to kill the program, you may do so using the "kill" command, and following it with the process id number (12 in this example).

\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Killing an RPICT Process
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 % kill 12
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
When running a long RPICT job, it's a good idea to provide RPICT with an error file (named something like "errfile") where it can write out any errors and progress reports during the rendering.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Specifying an RPICT Error File
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 % rpict -e errfile
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 Progress and error reports can now be checked at any time by printing the file name you specified (in this case, "errfile") with the "cat" command.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Viewing an RPICT Error File
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 % cat errfile
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
RPICT has a "-av" option for setting the ambient value, but this option is best left to the default (of zeroes) if we don't have any idea what it should be.  A correct ambient value selection produces shadows that aren't too light or too dark, but look pr
etty realistic for the scene.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 If you
 have a view file you wish to use for generating a high-resolution image in batch mode, you can do so using the "-vf" option and providing RPICT with the name of the view file.  If you know the ambient values for the scene, those can also be specified wit
h the "-av" option.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Using RPICT with a View File
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 % rpict -vf vf/myview  -av .5 .5 .5  test.oct > test.pic &
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Interactive
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Interactive image generation is an important feature of Radiance that permits quick error checking, view determination, and lighting ev
aluation.  Few things are more frustrating than waiting several hours for an image, only to discover errors in the input.  In a matter of minutes, RVIEW produces a low-resolution image clear enough to spot any serious mistakes, and gives the user mobility
 to find errors visible only from certain vantage points.  One may increase the resolution selectively to concentrate on more interesting parts of the image.  The same freedom of movement and study permits crude lighting and visibility evaluation (eg: con
tr
ast and glare).  Since a full calculation is being performed at a reduced resolution, absolute accuracy is maintained.  Luminance values may be queried at any point in the scene, with instant results.  Once the scene is in order and one or more good views
 have been determined, RPICT may be run overnight to produce high resolution pictures suitable for presentation.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 RVIEW Example
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 % rview -vp 2.25 .375 1 -vd -.25 .125 -.125 -av .5 .5 .5 test.oct\line 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 Just as we used them in RPICT, the "-vp" and "-vd" options ca
n be used to specify the view point and view direction vector, and the "-av" option specifies the ambient light present in our scene.  A list of RVIEW's options and their default values may be reviewed using the following command:
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Viewing RVIEW Option Defaults
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 % rview -defaults
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Once you've found a view point and direction that you especially like, take the opportunity to save that view using the "view" command from within RVIEW, and select a name for that good view.  Many different views can be saved this
 way, and higher-resolution images produced later on.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Saving a View in RVIEW
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 : view vf/ext.se
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
In the following example, the "-vf" option indicates that we will be getting view information from a file, and the "vf/ext.se" immediately following is the file name for the view file we saved.  The octree being used is "oct/dayext", and the "&" symbol in
dicates that we want to start this rview process in the background, so we can check on it later.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 RVIEW Example
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 % rview -vf  vf/ext.se  oct/dayext  &
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Other Lighting Calculations
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Of course, images are not the only output desired from a lighting simulation.  RTRACE provides a convenient interface for obtaining other kinds of information from the calculation.  Individual radiance values may be computed and combined to get luminance,
 contrast rendering factors, equivalent sphere illumination, glare indices, or any other lighting metric.  Besides radiance, irradiance, intersection point, surface normal direction, and other calculations are available.  Typically, RTRACE
 is run from a shell script or other program.  For example, the utility MAKEDIST calculates a source distribution from a geometric specification by calling RTRACE.  By connecting certain display drivers to RTRACE, additional information may be computed in
teractively at selected image locations, such as the illuminance on a surface or the ray propagation tree.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \page 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Tutorial Example
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s3\ql \li360\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin360\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Scene Compilation
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Since we'll want to create many different octrees for viewing the interior and exterior of the cabin at differen
t times of the day and year, we'll start by creating a basic cabin interior octree called "oct/cabin".  The following oconv command creates this octree from the "pattmats", "cabin", "bathroom" and "furniture" files.  This octree can now be used as a start
ing point for all future generated interior images of the cabin.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Creating a Cabin Octree
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 % oconv  pattmats  cabin  bathroom furniture  >  oct/cabin
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 A second oconv command uses "oct/cabin" as input to change the octree into a frozen octree, and add new sur
faces from the "summerday" and "daywindows" files, and to create the octree called "oct/summercabin".  The "-i" option indicates that the input octree will be named next ("oct/cabin", in this case).  The resulting octree will provide us with everything we
 need to generate images or perform calculations on the cabin, taking into account our illuminated windows and the gensky for a summer day.\line 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Creating a Summer Day Octree
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 % oconv  -f  -i  oct/cabin  summerday  landscape daywindows \\\line \tab > oct/summercabin
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 Provi
ded that we had the gensky information for a winter day stored in a file called "winterday", we would be able to create a cabin octree for a snowy day in January:
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Creating a Winter Day Octree
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 % oconv  -f  -i  oct/cabin  winterday  landscape daywindows \\\line \tab > oct/wintercabin
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s3\ql \li360\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin360\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Batch
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Once an octree for our cabin on a summer day has been created with OCONV, a high-quality image can be rendered with RPICT.  To produce such a high-quality image of our scene, we'll first want to examine the floor plan and pick a vi
ew point and view direction, much as we would do if we were to walk into the cabin and take a picture with a camera.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
We can choose an example view point and view direction of standing in the bedroom doorway, looking towards the fireplace.  The coordinates of a person standing in the doorway are approximately (12,8.5,5.5), and the approximate point we'd be looking at is 
located at (27,7,5.5).  We can either calculate the view direction vector by subtracting the view point coordinates from the point being 
viewed, or we can estimate some view direction vector that's close enough, such as (1,-.2,0) since we're looking more or less straight ahead in the x direction, and only slightly down in the y direction.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Creating an RPICT Summer Cabin Picture
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 % rpict  -vp 12  8.5  5.5  -vd 15  -1.5  0 \\\line \tab oct/summercabin > pic/summercabin &
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The "-vp" option stands for view point, and the "-vd" stands for view direction.  This example shows the more precise technique of subtracting view point coordinates from the view cente
r, but a rougher approximation would work just as well.  The resulting Radiance image is written to the file called "pic/summercabin", and the "&" option indicates that we wish this job to run in the background, since we expect it to take a while to compl
ete.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s3\ql \li360\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin360\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Interactive
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
We can use RVIEW in much the same way we would use RPICT, except that once we start RVIEW, we'll be able to issue commands to move around in the scene and change our view point and view center.  We'll also be able to change the ambient l
ight settings, to see if the shadows are too dark or not dark enough.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s3\ql \li360\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin360\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Other Lighting Calculations
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
We can use RTRACE to examine our cabin scene and calculate luminance values at various points, at different times of the day and year.  These calculations can help us determine how we might wish to change the light sources in our cabin.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par \sect }\sectd \linex0\endnhere\sectdefaultcl\sftnbj {\headerl \pard\plain \s35\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Image Manipulation
\par }}{\headerr \pard\plain \s35\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab Image Manipulation
\par }}{\footerl \pard\plain \s34\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\field{\*\fldinst {\insrsid10355392  DATE  }}{\fldrslt {
\insrsid10355392 10/8/07}}}{\insrsid10355392  Draft\tab - }{\field{\*\fldinst {\insrsid10355392  PAGE  }}{\fldrslt {\insrsid10355392 84}}}{\insrsid10355392  -\tab 
\par }}{\footerr \pard\plain \s34\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab - }{\field{\*\fldinst {\insrsid10355392  
PAGE  }}{\fldrslt {\insrsid10355392 85}}}{\insrsid10355392  -\tab }{\field{\*\fldinst {\insrsid10355392  DATE  }}{\fldrslt {\insrsid10355392 10/8/07}}}{\insrsid10355392  Draft
\par }}\pard\plain \s1\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f12\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Image Manipulation
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Introduction
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Several Radiance programs assist the user in viewing and understanding program output, such as pictures and data files.  A picture is essentially a luminance map with color.  With each picture element, known as a }{\i\insrsid10355392 pixel}{
\insrsid10355392 , a red, green and blue value are associated.  The green value corresponds to luminance and the red and blue values add color.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The storage required by an image is a function of its resolution and its complexity.  It is not difficult to produce an image which takes more than 10 megabytes of disk space.  Therefore, the representation of an image in a file is an important considerat
ion.  Currently, the programs use image files which
 represent colors in four bytes.  The first three bytes are red, green, and blue values, and the fourth byte is a common exponent.  By using a common exponent, it is possible to represent very large and very small luminance values in the same picture at m
inimal cost.  Another means of saving space used by the programs is called }{\i\insrsid10355392 run length encoding}{\insrsid10355392 
.  If many adjacent pixels in a scanline have the same value, the value and a count is given instead of all the pixels.  This saves a lot of space on pictures of low complexity, and some space on complex images.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The Radiance picture file format uses a floating point representation for greater accuracy.  Pictures may be scaled in brightness, resized, anti-aliased, and composited digitally with different filters provided.  Drivers display the pictures on monitors o
r make copies on film, video, or paper.  Some display programs can superimpose numerical information on images at selected locations for more accurate evaluation.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Image Display & Conversion
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 A device driver 
is needed to make a picture file viewable on the device (piece of hardware) being used.  Different display programs are required for different devices.  The two basic categories of devices are }{\i\insrsid10355392 display}{\insrsid10355392  and }{
\i\insrsid10355392 hardcopy}{\insrsid10355392 .
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
A display device, such as a graphics terminal, allows quick viewing of a picture.  This type of device also permits interaction.  For example, the driver for the X window system allows the user to display specific luminance values at points on the image.

\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 Hardcopy devices produce permanent recor
ds of the Radiance calculation.  Sometimes a hardcopy device is available as an adjunct to a display device.  If this is not the case, it is necessary to have a separate driver to produce an image remotely.  A simple driver for dot matrix printers is prov
ided as well as a more sophisticated driver for the Dicomed film recorder.  Usually, film recorder output is the highest quality available, and the most expensive.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 Conversion to different image file formats is provided by a number of different utilities:
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 \f12\fs20\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 RA_PR\tab Convert to/from standard 8-bit Sun rasterfiles

\par RA_PR24\tab Convert to/from standard 24-bit Sun rasterfiles
\par RA_T8\tab Convert to/from 8-bit Targa images
\par RA_T16\tab Convert to/from 16 and 24-bit Targa images
\par RA_BN\tab Convert to/from Barneyscan image format
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Image Processing Filters
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Once a picture has been produced, it is usually desirable to filter it for viewing.  Radiance provides the user with several picture filters:  PFILT, PCOMPOS, and PCOMB.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 PFILT allows a picture to be rescaled for a specific device, and wi
ll set the exposure for the frame.  Rescaling allows a picture produced at one resolution to be viewed on a device with a different resolution.  The exposure is set by normalizing the picture to a given average value; this avoids graphics output which is 
too light or too dark.  The program also performs anti-aliasing using an algorithm which defocuses the image.  (This process can be time consuming for high resolution pictures.)  Another option provided by PFILT is the ability to produce star patterns aro
und particularly bright areas of the picture.  This simulates what happens in a conventional camera under extreme lighting conditions.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
PCOMPOS provides the user with a "cut and paste" feature for assisting image composition.  It crops an image, and allows sections to be more closely examined.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 PCOMB combines Radiance images with mathematical functions on pixel values.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Other Utilities
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
PVALUE is a program which extracts red, green and blue values from a picture file.  PVALUE converts between different ima
ge representations for analysis (not display).  Its output can be used by calculation programs (such as rcalc or awk) to get specific information about an image.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par PSIGN generates labels.
\par 
\par PROT rotates images.
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
To obtain the illuminance at a surface, one can run through the Lambertian approximation to luminance backward.  This will be exact for purely diffuse surfaces, and in error for surfaces with specularity.  A simple method for obtaining illuminance values 
at a number of points in a scene is to include small white objects with purely diffuse surfaces in the description.  The illuminance at these objects will then be equal to their luminance multiplied by \u960\'b9.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 The program to get information about a data file is called GETINFO.  This comes in extremely handy, since most data files are unreadable.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \page 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Tutorial Example
\par }\pard\plain \s3\ql \li360\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin360\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par Image Display & Conversion
\par Image Processing Filters
\par Other Utilities
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par \sect }\sectd \linex0\endnhere\sectdefaultcl\sftnbj {\headerl \pard\plain \s35\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Advanced Topics
\par }}{\headerr \pard\plain \s35\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab Advanced Topics
\par }}{\footerl \pard\plain \s34\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\field{\*\fldinst {\insrsid10355392  DATE  }}{\fldrslt {
\insrsid10355392 10/8/07}}}{\insrsid10355392  Draft\tab - }{\field{\*\fldinst {\insrsid10355392  PAGE  }}{\fldrslt {\insrsid10355392 96}}}{\insrsid10355392  -\tab 
\par }}{\footerr \pard\plain \s34\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab - }{\field{\*\fldinst {\insrsid10355392  
PAGE  }}{\fldrslt {\insrsid10355392 97}}}{\insrsid10355392  -\tab }{\field{\*\fldinst {\insrsid10355392  DATE  }}{\fldrslt {\insrsid10355392 10/8/07}}}{\insrsid10355392  Draft
\par }}\pard\plain \s1\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f12\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Advanced Topics
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Introduction
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Radiance is an extremely powerful and complex set of programs, whose capabilities have only been touched on briefly so far in this manual.  In this chapter, some of Radiance's more intriguing and useful features will be explored.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Auxiliary Files
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Auxiliary files used in textures and patterns are accessed by the Radiance programs during image generation.  These files may be located in the working directory, or in some library directory.  Common auxiliary file types include data files, font files, a
nd function files.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\b\insrsid10355392 Data files}{\insrsid10355392  contain n-dimensional arrays of real numbers used for interpolation.  
Typically, definitions in a function file determine how to index and use interpolated data values.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\b\insrsid10355392 Font files}{\insrsid10355392 
 list the polygons that make up a character set.  There are no comments in font files, and all numbers are decimal integers.  The ascii codes can appear in any order.  N is the number of vertices, and the last is automatically connected to the first.  Sep
arate polygonal sections are joined by coincident sides.  The character coordinate system is a square with a lower left corner at (0,0), lower right at (255,0), and upper right at (255,255).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\b\insrsid10355392 Function files}{\insrsid10355392 
 contain the definitions of variables and functions used by a primitive.  The transformation that accompanies the file name contains the necessary rotations, translations, and scalings to bring the coordinates of the function file into agreement with the 
world coordinates.  Many variables and functions are already defined by Radiance, and they are listed in the file "rayinit.cal".  The following variables are particularly important:
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s48\ql \fi-2340\li3060\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin3060\itap0 \f12\fs20\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Dx, Dy, Dz\tab Incident ray direction
\par Px, Py, Pz\tab Intersection point
\par Nx, Ny, Nz\tab Surface normal at intersection point
\par T\tab Total distance traveled by ray
\par Rdot\tab Cosine between ray and normal
\par arg(0)\tab Number of real arguments
\par arg(i)\tab primitive's real arguments
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
It's important to use unique variable and function names, since they are stored together in the same table.  Also, the key variable in a primitive using a function file must only be defined in that file, since its presence is used to determine if the file
 has been loaded by the program.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Using Make
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
The Unix Makefile is a file that provides the Radiance user with an easy way to execute commands correctly and in the proper sequence, and is extremely useful for keeping programs updated.  For our purposes, a series of oconv commands and an rview command
 can all be executed automatically for a given view and scene description with some ambient variable settings, once we've specified these commands to the file called "Makefile".  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Unix Makefile
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 #\line # Makefile for Cabin Scene\line #\line \line VIEW= \tab -vf vf/plan\line \line SCENE= \tab summercabin\line \line AMB= \tab -av .01 .01 .01\line \line view:   \tab 
oct/$(SCENE)\line         \tab \tab rview $(VIEW) $(AMB) oct/$(SCENE)\line \line oct/summercabin:\tab oct/cabin summerday landscape daywindows\\ pattmats\line \tab oconv -f -i oct/cabin summerday landscape daywindows >\\ oct/summercabin\line \line 
oct/wintercabin:\tab oct/cabin winterday landscape daywindows\\ pattmats\line \tab oconv -f -i oct/cabin winterday landscape daywindows >\\ \line oct/wintercabin\line \line oct/nightcabin:\tab oct/cabin lights pattmats\line \tab 
oconv -f -i oct/cabin -r 8192 lights > oct/nightcabin\line \line oct/cabin:\tab cabin bathroom furniture\line \tab oconv -b -100 -100 -100 225 -r 8192 \\\line pattmats cabin bathroom furniture > oct/cabin\line \line oct/cabin:\tab 
window.norm door.norm chair.norm sofa.norm\\ coatrack.norm\line \line oct/nightcabin:\tab flood.rad
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The "VIEW", "SCENE", and "AMB" variables are assigned the values we choose (in this case, a floorplan view of our daycabin scene), which are then used later in the Makefile.  We can easily change these values, in order to create a different scene, or incl
ude other file information.  The "oct/cabin"
 entries are needed for "oct/summercabin", which in turn are needed for "view".  The "view" filename didn't really exist until we defined it here in our Makefile; it contains the rview command that will generate a view of our scene for us.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
To get our plan view of the cabin from the summercabin octree, we now can simply type "make".  A big advantage of using the Makefile is that it saves us from typing oconv every time we make a change to one of our input files; the Makefile maintains all ch
anges for us automatically.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Simulation Options
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par 
\par 
\par 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Animation
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 PINTERP does interpolation for animation.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \page 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Tutorial Example
\par }\pard\plain \s3\ql \li360\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin360\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Coordinate Mapping
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
The roof shingles can be applied to the roof in a similar fashion, for the most part, except that we might want to use noise functions to vary our coordinate locations so that the lines between shingles don't look too unnaturally straight.  We'll also nee
d to pay special attention to orienting the pattern to match the angle of the roof (45\u176\'a1), and the direction (either north or south facing) will require rotation about the z-axis for the north shingles.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 North Shingle Pattern
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 dirty colorpict nshake_pat\line 13 red green blue shingle.pic shake.cal shake_u shake_v \line \tab -s .7  -rz 180 -rx -45\line 0\line 1 1.7037037\line \line 
nshake_pat plastic north_shingle\line 0\line 0\line 5  .15  .08  .05  0  0
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
The "shake.cal" file being referred to will be our own customized version of the "picture.cal" file we've used before, with shake_u and shake_v acting as our variables.  We can use the smooth noise function to vary the horizontal c
oordinates, and fractal noise (which has higher frequencies and looks rougher) for the vertical coordinate variation.  Our "shake.cal" file will need to show how these noise functions will be defined for shake_u and shake_v.  The ratio of the tile height 
to width for our shake pattern is 1.7037037, and it's important to use all the numbers after the decimal point, in order to assure the best possible job placing the tiles.  This ratio will be used as a variable (A1) in our shake.cal file.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Using Noise Functions to Vary Shake Coordinates
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \{\line \tab A1  -  Ratio of height to width for tiles\line \tab \tab (where height is always equal to 1)\line \}\line \line 
shake_u = mod(Px+.1*noise3(Px,Py,Pz), max(1,1/A1));\line shake_v = mod(Py+.05*fnoise3(Px,Py,Pz), max(1,A1));
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Shake_u will determine the coordinates for indexing the pattern in terms of its width (along the x-axis), and shake_v works on the pattern's height coordinates.  We aren't using too much variation in either case; we've specified 10% variation along the wi
dth with the smooth noise function,
 and 5% variation along the height with the fractal noise.  The max function takes two arguments and returns the larger of the two (either the max width or max height), and the mod function then takes two arguments (one of them being the coordinate plus s
ome noise, and the other being the maximum) and returns the remainder of the first divided by the second.  The result is the shake pattern being placed just a little up or down and to the left or right each time it is "tiled" in place.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s3\ql \li360\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin360\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Textures
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 We can add 
more realism to our cabin scene with a wall texture.  Our wood paneled walls can be patterned with a procedural function, and textured with grooves between the boards.  We'll start by visualizing what we want our wall panels to look like; the panels will 
be vertical, six inches wide, with V-shaped grooves .5 inches wide between the panels.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1068{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw293\pich76\picwgoal5860\pichgoal1520\macpict\bliptag-2064239979{\*\blipuid 84f632952bf190509f6340a26bf6d56a}
01d7ffffffff004b01241101a00082a0008ca10096000c020000000200000000000000a1009a0008fffb00000033000001000a0000005d001300c72c00090003
0647656e65766103000304010d000e2b5e0e0c57616c6c2054657874757265a0009701000affffffff004b012422002b00557800230d0c22002b0055f40c2200
2b00013c00230c0c22002b00e6f40c22002b00e63c00a10064000a4d44504c000900010003a0008c71001e0038004900400057003c004900380057003c005700
400057003c004971001e003800cc004000da003c00da004000cc003c00cc003800cc003c00da22003c00577500a0008da1006400084d44504c000a0000a10064
000a4d44504c000900010003a0008c71001e0023003c002a004a0027003c0023004a0027004a002a004a0027003c71001e00230048002a005700270057002a00
48002700480023004800270057220027004afe00a0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffb0000000b
000001000a0017003e0023005704000d0009280021003f04312f3132a00097a10096000c010000000200000000000000a1009a0008fffc00000002000001000a003e008d004a00942b4f270131a00097a0008da00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Ideally, we'd like to use this texture for all of our wall orientations, without ever having to specify "this is an xz texture" or "this is a yz texture".  Even t
hough it may seem more complex to set up such an adaptable texture, it's worth doing, because we didn't expand all our genprism-generated wall surfaces (as we would need to do to determine which way the walls face).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
We'll need some variable (either x or y) to break up our wall, using the mod function.  We can use the surface normal orientation to determine if our wall is running along the x-axis or y-axis.  The surface normal orientation is provided to us by Radiance
 as (Nx,Ny,Nz); the x-aligned walls have surface normals in the y-direction (Nx=0), while the y-aligned walls have surface normals in the x-direction (Ny=0).  We'll edit a file called "paneltex.cal" to define our paneltex function.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Panel Texture Function
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \{\line \tab This file creates a wall texture, using panels that run\line \tab vertical (along the z-axis) with grooves that are 1/12\line \tab 
as wide as the panel segments.  This texture is\line \tab designed to work with all xz and yz wall orientations.\line \}\line paneltex_dx = if(panel_isx, panel_pert(Px),0);\line paneltex_dy = if(panel_isx, 0, panel_pert(Py));\line paneltex_dz = 0;\line 
panel_isx = .5-Nx*Nx;\line panel_pert(v) = if\tab (1/24-frac(v),\line \tab \tab \tab -1,\line \tab \tab \tab if(frac(v)-23/24,\line \tab \tab \tab \tab 1,\line \tab \tab \tab \tab 0));
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
The purpose of our function is twofold; first, we need to determine what segment of the panel we're in (the left side, middle, or right side), and second, we need to apply the correct surface normal perturbation to each segment (computing the perturbation
 for the normal along v, regardless of whether we're on an x-aligned or y-aligned wall).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s43\qc \li360\ri180\keepn\widctlpar\brdrt\brdrdb\brdrw15 \brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 
\phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 \b\f5\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Cabin Wall
\par }\pard\plain \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 # Cabin Wall Material
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 

\par void }{\b\insrsid10355392 brightfunc}{\insrsid10355392  zwoodpat
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
4  zgrain  woodpat.cal  -s .05833
\par 0
\par 1  .15
\par 
\par zwoodpat }{\b\insrsid10355392 texfunc}{\insrsid10355392  woodpaneltex
\par 6  paneltex_dx paneltex_dy \\
\par \tab paneltex_dz paneltex.cal\\
\par \tab -s .67
\par 0
\par 0
\par 
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
woodpaneltex }{\b\insrsid10355392 plastic}{\insrsid10355392  wood_panel
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
0
\par 0
\par }\pard \s44\ql \li360\ri180\keep\widctlpar\brdrl\brdrdb\brdrw15 \brdrb\brdrdb\brdrw15 \brdrr\brdrdb\brdrw15 \phpg\posx7200\absw4320\dxfrtext180\dfrmtxtx180\dfrmtxty180\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin180\lin360\itap0 {\insrsid10355392 
5  .5  .2  .1  0  .1
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Once we've completed describing the texture function, we're ready to apply it to our walls with a procedural woodgrain pattern.  This list of modifiers starts with our procedural function pattern, "zwoodpat", which modifies our functional texture "woodpan
eltex", which in turn modif
ies our "wood_panel" material.  The final result will be a much more realistic looking wall surface for our cabin, and all walls will be treated automatically without any need for us to expand the surface generators for all the walls.
\par 
\par }\pard\plain \s3\ql \li360\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin360\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Instancing
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
The environment immediately surrounding our cabin model provides us with the opportunity to use instancing (for planting the trees), and gensurf for creating a bumpy ground.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 For a bumpy ground surface, we can use the two-dimensional noise function to take the x an
d y values and produce a z value for our gensurf function.  We'll want our cabin to be in a fairly flat spot, so we can modify the amplitude of the z-variation, so it flattens out the magnitude around the cabin.  Since the ground material will be differen
t in summer than in winter (needles in summer and snow in winter), we'll call our material something generic ("groundmat"), and then define it differently in our "summerday" and "winterday" files.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 We'll center our landscape around the center of our cabin's
 foundation, which is located at (13,9,-1.5), and create a landscape that measures 200 feet square in the x and y dimensions, with a maximum height of eight (8) feet every fifty (50) feet.  We'll can choose the type of function we want for gensurf to use 
to create these hills; a sinusoidal (smooth) function will look most natural (as opposed to a triangular function).  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1069{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}
\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw395\pich94\picwgoal7900\pichgoal1880\macpict\bliptag-48717849{\*\blipuid fd189fe7e87d607675f5b2492ffce327}
03c7ffffffff005d018a1101a00082a0008ca10096000c010000000200000000000000a1009a0008fffc00000037000001000a000e010a001e017b2c00090003
0647656e6576610300030d000c28001a010b146628202020293d28312d636f7320202020292f32a00097a10096000c020000000200000000000000a1009a0008
000e0000001e000001000a000000000039005504010d000e28000e000c0867656e737572660d28002100010a4d61676e6974756465202b07130846756e637469
6f6ea0009701000affffffff005d018a51004900f1004e00f858a0008c09000000000000000051004f00e9005a00f109ffffffffffffffff5822005400e90700
a0008da10096000c010000000200000000000000a1009a0008fffc00000006000001000a004c00f1005c010104000d000c2bea24023d30a0009701000affffff
ff005d018a20004b0064004b0183070000000022002700740000a000a0a100a4000201fc01000a0000000000000000070001000122002700641000230c01230f
03230e04230f0a230b05231b07231504230c01a000a301000affffffff005d018a22002700640200230300230400230300230200230300230301230200230000
23030023070123040123040123070123030123020123040123030223040223010123020123030223040223040223010023000023020123020123030123010023
0301230401230301230100230702230c03230501230501230b02230600a000a1070000000022002701720000a000a0a100a4000201fc01000a00000000000000
0007000100012200270182f00023f30123f10323f30423f10a23f50523e50723eb0423f501a000a301000affffffff005d018a2200270182fe0023fd0023fc00
23fd0023fe0023fd0023fd0123fe0023000023fd0023f90123fc0123fc0123f90123fd0123fe0123fc0123fd0223fc0223ff0123fc0323f90423fd0123fe0123
fd0123fc0123fa0223fd0123fc0123fa0123fa0123fa0223fe0023fb0123f40223fb00a000a122001400f40037a10096000c010000000200000000000000a100
9a0008fffc0000000c000001000a004c0130005c014a293f03b92f32a00097a10096000c010000000200000000000000a1009a0008fffc00000004000001000a
004c017e005c0189294e01b9a0009701000affffffff005d018a5100490139004e013f585100490181004e018758a0008c090000000000000000510011015100
1b015809ffffffffffffffff5822001501510600a0008da0008c0900000000000000005100100116001b011d09ffffffffffffffff5822001501160600a0008da0008da00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 Since the gensurf function has an autocorrelation of 1 and a magnitude of 1, our 200' by 200' landscape will correspond to a gensurf 
surface that varies between (s,t)=(0,0) and (s,t)=(1,1).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1070{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw320\pich159\picwgoal6400\pichgoal3180\macpict\bliptag-403861818{\*\blipuid e7ed8ec60aeacb6c3970c3321fb69bb0}
021bffffffff009e013f1101a00082a0008c01000affffffff009e013f090000000000000000310007008a0098011b09ffffffffffffffff38a10096000c0100
00000200000000000000a1009a0008fffc0000001f000001000a00860046009600872c000900030647656e6576610300030d000c2b47920b28732c74293d2830
2c3029a0009701000affffffff009e013f5100950088009a008d58a10096000c020000000200000000000000a1009a000800050000001e000001000a00000000
0026005504010d000e28000e000c0867656e737572660d2800210001094c616e647363617065a00097a10096000c010000000200000000000000a1009a0008ff
fb0000000e000001000a0007011f0017013e04000d000c28001301200528312c3129a0009701000affffffff009e013f5100050118000a011d58a10096000c01
0000000200000000000000a1009a0008fffb0000000e000001000a000700660017008528001300670528302c3129a0009701000affffffff009e013f51000500
88000a008d58a10096000c010000000200000000000000a1009a0008fffb0000000e000001000a008d011e009d013d2bb8860528312c3029a0009701000affff
ffff009e013f51009401180099011d5851005200cb005700d05822005400cd4d00a10096000c010000000200000000000000a1009a0008fffc00000003000001000a004400f4005400fc28005000f50164a00097a0008da00083ff}}{\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 We'll want an equation to show as the distance (d) varies from 0 to .5 over our gensurf landscape, that our magnitude function for theta varies from 1 to 
\u960\'b9.  The distance (d) is equal to the square root of the sum of the squares of (1/2-s) and (1/2-t), and this equation can be put in terms of theta using the conversion factor of (\u960\'b9
/.5) on d, providing us with the final formula for the gensurf magnitude.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 gensurf Landscape
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 !gensurf groundmat ground '-87+200*s'  '-91+200*t'\\\line \tab 'mag(s,t)*noise2(s*4,t*4)*6-1.5'  15  15  -s\\\line \tab -e 'mag(s,t)=(1-cos(PI/.5*sqrt(sq(.5-s)+sq(.5-t))))/2'
\\\line \tab -e 'sq(a)=a*a'  -f noise 2.cal
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
We can now define our forest floor pattern for our "summerdays" file, using the dirt function to create a pattern that will modify our scanned image of the forest floor, which in turn will modify our "groundmat" material (this example was included as part
 of the Scene Description chapter).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 Trees will be planted using rview, ximage, and rcal
c.  We need to start by running rview to place the trees in a scene that shows a box called "cabinbox" where the cabin is (for simplicity).
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Using RVIEW to Place Trees
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 % oconv -f summerday landscape cabinbox > oct/dayland\line % rview -vf vf/ext.se  -av 3  3  3  oct/dayland &
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
In RVIEW, we'll change to a parallel view by typing in the "view" command, and then typing "l" for parallel.  We can start with a relatively high viewpoint (13 9 100) above the center of the cabin, with a view direction looking straight do
wn (0 0 -1).  Our view up will be (0 1 0), to match the same coordinate system we've been using for the cabin where the y-axis points north.  The view horizontal and vertical size is (200 200), the dimensions of the whole scene.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Once we've selected all the parallel view parameters we need, we're ready to use the trace command "t" in RVIEW to pick a ray and get the (x,y,z) coordinates returned to us.  We can either write down the resulting coordinates, or we can write out this fil
e as "landsat", and then leave RVIEW with the "quit" command, and run ximage, with results piped in to RTRACE and our output file of tree locations, "tree.pts".
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Using ximage to Plant Trees
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 % ximage pic/landsat | rtrace -op oct/dayland > tree.pts &
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
By using the "-op" option in RTRACE, we're requesting that output intersection points be given for the rays we pick at the places we want to plant our trees.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 We can use RCALC to take the points we want to plant trees at, contained in our "tree.pts" file, and use a format file called "i
nstance.fmt" to create the scene description instance primitives which can be appended to our "landscape" file.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 "instance.fmt" File
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 void instance tree.$\{recno\}\line 9  tree.oct  -rz  $\{rand(recno)*360\} -s $\{.3+.2*rand(-recno)\}\\\line \tab -t $\{  $1  \} $\{  $2  \} $\{  $3  \}\line 0\line 0
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 The variables for RCALC are preceded by the dollar sign symbol, "$", and are enclosed by curly brackets "\{\}
".  The record number in the input file will be used to number the tree instances, as well as assist in randomizing the rotation of the tree between 0\u176\'a1 and 360\u176\'a1
 around the z-axis, and the scaling of the tree to somewhere between 30% and 50% of the tree size in "tree.oct".  Now we're ready to perform the RCALC command to append the instances to our "landscape" file, based on the points we pick
ed and saved in "tree.pts":
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Using RCALC to Append "landscape" file
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 % rcalc  -o  instance.fmt  tree.pts  >>  ../landscape
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 This RCALC command indicates that output format is desired "-o", and that the output format file to be used is "instance.fmt".  The in
put file is "tree.pts", and the ">>" characters indicate that we want the output to be appended to the following file, "../landscape", where the "../" characters indicate that the "landscape" file is in the directory just above.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
If we thought we might want to change tree locations, we could use RCALC differently.  Instead of appending instances for each tree to "landscape", we could have instead had one line command immediately following the gensurf command in the "landscape" fil
e:
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Alternate Use of RCALC for Tree Instancing
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 !rcalc  -o  treeinst.fmt  tree.pts
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 This use of the RCALC command would allow us the ability to change the "tree.pts" file, and not have to delete or change the rest of the "landscape" file.

\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
Now we can change our Makefile to include the "landscape" file after "summerday".  We'll also need to create a bounding cube  around the cabin for "oct/cabin" that's big enough to show our surrounding landscape.  We'll start by giving OCONV a bounding cub
e  bigger than the default of the cabin size,
 and explicitly tell it to create a bounding cube  that will include the entire landscape, where the x-minimum value is -87, the y-min is -91, and the zmin can be set to -100, since the bounding cube  is a cube measuring 200' in each direction.
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard\plain \s45\qc \li720\ri720\keepn\widctlpar\brdrt\brdrs\brdrw30 \brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \b\f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {
\insrsid10355392 Changing Makefile to include "landscape"
\par }\pard\plain \s46\ql \li720\ri720\sb240\sa240\keep\keepn\widctlpar\brdrl\brdrs\brdrw30 \brdrb\brdrs\brdrw30 \brdrr\brdrs\brdrw30 \aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin720\lin720\itap0 
\f5\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab oconv -b -87 -91 -100 200  -r 8192 \\\line \tab \tab pattmats cabin bathroom furniture > oct/cabin
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 The "-r" option in the oconv command specifies the octree resolution.  The resolution should be greater than or equal to the ratio of the 
largest and smallest dimensions in the scene (ie: surface size or distance between surfaces).  The default resolution is 1024, or 2}{\fs18\up6\insrsid10355392 10}{\insrsid10355392 .  The resolution works best with some 2}{\fs18\up6\insrsid10355392 n}{
\insrsid10355392  value, because the cube gets subdivided by two's.  
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
With a scene size set to 200' and the default resolution of 1024, our minimum cube size equals the size divided by the resolution, or 200/1024=0.1953', or 2.34".  We increased the resolution by about eight times (2}{\fs18\up6\insrsid10355392 3}{
\insrsid10355392 ) to 2}{\fs18\up6\insrsid10355392 13}{\insrsid10355392 , or 8192.  Now, our minimum cube size is 200/8192=.0244', or .293", which is pretty small.  There should be no problem with any object in our cabin being smaller than .293 inches. 

\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\insrsid10355392 
\par \sect }\sectd \linex0\endnhere\sectdefaultcl\sftnbj {\headerl \pard\plain \s35\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
Glossary
\par }}{\headerr \pard\plain \s35\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab Glossary
\par }}{\footerl \pard\plain \s34\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\field{\*\fldinst {\insrsid10355392  DATE  }}{\fldrslt {
\insrsid10355392 10/8/07}}}{\insrsid10355392  Draft\tab - }{\field{\*\fldinst {\insrsid10355392  PAGE  }}{\fldrslt {\insrsid10355392 100}}}{\insrsid10355392  -\tab 
\par }}{\footerr \pard\plain \s34\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab - }{\field{\*\fldinst {\insrsid10355392  
PAGE  }}{\fldrslt {\insrsid10355392 101}}}{\insrsid10355392  -\tab }{\field{\*\fldinst {\insrsid10355392  DATE  }}{\fldrslt {\insrsid10355392 10/8/07}}}{\insrsid10355392  Draft
\par }}\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s1\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f12\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Glossary 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 \f12\fs20\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\i\insrsid10355392 Absorptance}{\b\insrsid10355392 \tab }{\insrsid10355392 
A measurement of absorption.
\par 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Absorption}{\insrsid10355392 \tab 
The diminishing of light's intensity at different wavelengths as it passes through a colored material, such as stained glass.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 {\pict{\*\picprop\shplid1071{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}
\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw72\pich72\picwgoal1440\pichgoal1440\macpict\bliptag1656926523\blipupi72{\*\blipuid 62c2b13b5dc15b2db5ac0828061e31da}000d00000000004800481101ff}}{\insrsid10355392 \tab \tab }{
\insrsid10355392 {\pict{\*\picprop\shplid1072{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw158\pich77\picwgoal3160\pichgoal1540\macpict\bliptag409635852{\*\blipuid 186a8c0cb8b15d88c342b0db5387b700}0120ffffffff004c009d1101a00082a0008c01000affffffff004c009d09880022008800220031001d00010030009b09ffffffffffffffff3807000400042200
0000113f1ba10064000a4d44504c000900010002a0008c71001e0041008d004a009b004a009b0048008d0044008e0041008f004a009b070001000122002f005c
3215a0008da1006400084d44504c000a0000070000000022001c00530000a000a0a100a400020ffb71001a001c004c002f005c001c004c001c0053002f005c00
1c004c01000a0000000000000000070001000122001c004c070023000023091323000023f0ed23000084000a0000000000000000a000a301000affffffff004c009d84000a000000000000000023070023091323f0eda000a1a0008da00083ff}}{\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\b\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Anti-Aliasing}{\insrsid10355392 \tab 
Programming techniques used to avoid "jaggies", unnatural pixel visibility which makes straight lines appear as staircases.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 {\pict{\*\picprop\shplid1073{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}
\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw72\pich72\picwgoal1440\pichgoal1440\macpict\bliptag1656926523\blipupi72{\*\blipuid 62c2b13b5dc15b2db5ac0828061e31da}000d00000000004800481101ff}}{\insrsid10355392 \tab \tab }{
\insrsid10355392 {\pict{\*\picprop\shplid1074{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw187\pich59\picwgoal3740\pichgoal1180\macpict\bliptag1139027935{\*\blipuid 43e42fdf9079e234b5f920b9c9c0b648}0223ffffffff003a00ba1101a00082a0008c01000affffffff003a00ba98000a000000000039005000000000003900500000000000390050000104f800000304
f800003c04f800003c04f800003c04f800003c05f900013fc005f900013fc005f900013fc005f900013fc006fa000203c00006fa000203c00006fa000203c000
06fa000203c00006fa00003cff0006fa00003cff0006fa00003cff0006fa00003cff0007fb00013fc0ff0007fb00013fc0ff0007fb00013fc0ff0007fb00013f
c0ff0007fc000103c0fe0007fc000103c0fe0007fc000103c0fe0007fc000103c0fe0007fd000103fcfd0007fd000103fcfd0007fd000103fcfd0007fd000103
fcfd0006fd00003cfc0006fd00003cfc0006fd00003cfc0006fd00003cfc0007fe000103c0fc0007fe000103c0fc0007fe000103c0fc0007fe000103c0fc0007
03000003fcfb000703000003fcfb000703000003fcfb000703000003fcfb00060200003cfa00060200003cfa00060200003cfa00060200003cfa000602003fc0
fa000602003fc0fa000602003fc0fa000602003fc0fa00050103c0f900050103c0f900050103c0f900050103c0f90004003cf80004003cf80004003cf8000400
3cf8000700020002220037006f48caa10064000a4d44504c000900010002a0008c71001e001300540026007b001d007b00260054001d005400130054001d007b07000a000a2200180050ff00a0008da1006400084d44504c000a0000a0008da00083ff}}{\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }{\i\insrsid10355392 Bidirectional}{\b\insrsid10355392 \tab }{\insrsid10355392 The ratio of the reflected radiance (intensity) in one }{\b\insrsid10355392 
\par }{\i\insrsid10355392 Reflectance}{\b\insrsid10355392 \tab }{\insrsid10355392 direction to the incident irradiance (flux density) }{\b\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Distribution}{\b\insrsid10355392  }{\i\insrsid10355392 Function}{\b\insrsid10355392 \tab }{\insrsid10355392 
responsible for it from another direction is known as the bidirectional reflectivity, which is a function of the direction of reflection divided by the direction of incidence.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }{\i\insrsid10355392 Boundary}{\b\insrsid10355392 \tab }{\insrsid10355392 A description of an object in terms of its surface
\par }{\i\insrsid10355392 Representation}{\b\insrsid10355392 \tab }{\insrsid10355392 boundaries, rather than its volumes.
\par 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 CAD Systems}{\insrsid10355392 \tab Computer Aided Drafting systems used by designers, architects, and engineers.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }{\i\insrsid10355392 Constructive Solid\tab }{\insrsid10355392 An object definition system in which simple primitives }{\b\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Geometry}{\insrsid10355392 \tab 
are combined by means of regularized Boolean set operators that are included directly in the representation, where a whole object is the sum of its parts and their properties.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Diffuse Reflection}{\insrsid10355392 \tab The equal scattering of light in all directions by a surface. \tab \tab }{
\insrsid10355392 {\pict{\*\picprop\shplid1075{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw156\pich93\picwgoal3120\pichgoal1860\macpict\bliptag1117048616{\*\blipuid 4294cf281264fd907c404d26f09f7f32}00b6ffffffff005c009b1101a00082a0008c01000affffffff005c009b22000a0052dc2422000a002e242422001c002536000988002200880022003100490001
005c009b09ffffffffffffffff382200010040005122005200253600a0008c2200520040f7e52200520040e5f7220052004012ee22005200401bf72200520040eeee2200520040f7e5220052004009e5a0008d09000000000000000051001300370026004a09ffffffffffffffff58a0008da00083ff}}{
\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Geometric Model}{\insrsid10355392 \tab 
The mathematical representation of objects in a picture.  A polyhedral modeling system represents shapes as collections of polygonal faces.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }{\i\insrsid10355392 Illuminance\tab }{\insrsid10355392 A measure of the light arriving at a surface.
\par 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Image Plane\tab }{\insrsid10355392 The two-dimensional viewing plane onto which a three-dimensional scene is projected.\tab 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }{\i\insrsid10355392 Irradiance}{\b\insrsid10355392 \tab }{\insrsid10355392 The total light energy impinging on a surface.
\par 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Lambertian Surfaces}{\insrsid10355392 \tab 
Surfaces that are purely diffuse, obeying Lambert's law of equal emission in all directions.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Luminance}{\b\insrsid10355392 \tab }{\insrsid10355392 The quantity of visible light passing through a point in a given direction.}{
\b\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Mirror Reflection}{\insrsid10355392 \tab The bouncing of a light ray by a surface in the mirror direction.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Monte Carlo}{\insrsid10355392 \tab A stochastic, or random-sampling multi-dimensional integration technique.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }{\i\insrsid10355392 Parametric Surface}{\insrsid10355392 \tab Arbitrarily curved surfaces in three-dimensional space.
\par 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Parallel Projection}{\insrsid10355392 \tab 
A mapping from the three-dimensional scene to the two-dimensional image plane in which parallel lines do not converge towards a vanishing point.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Perspective Projection}{\insrsid10355392 \tab 
A mapping from the three-dimensional scene to the two-dimensional image plane which shows closer objects as larger.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1076{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw93\pich75\picwgoal1860\pichgoal1500\macpict\bliptag1733753098{\*\blipuid 6756f90a325bb832d834882ba0dab8f4}
00b0ffffffff004a005c1101a00082a0008c01000affffffff004a005c09000000000000000031001c0001004a004a09ffffffffffffffff3809000000000000
000031000100400014005c09ffffffffffffffff3809882288228822882251000700470014005309ffffffffffffffff5822001c00013fe52200130040c136220001005bee1b220013005bee3609800008008000080051002b0013004a003009ffffffffffffffff58a0008da00083ff}}{\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\b\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Pixel}{\insrsid10355392 \tab The most fundamental picture element; the smallest alterable square in 
an image.  A dot of color.  Each pixel corresponds to a luminance value received through the lens by its position on the image plane.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Radiance}{\insrsid10355392 \tab 
Radiometric brightness.  The amount of light flux passing through a point in a particular direction.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Ray Propagation Tree\tab }{\insrsid10355392 
The collection of an initial ray and all the rays that it spawned, and the rays that those rays spawned.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Ray Tracing}{\insrsid10355392 \tab 
A technique used for rendering images of three-dimensional scenes from a computer by following individual rays of light from the viewpoint backwards to the light source(s).
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1077{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw254\pich93\picwgoal5080\pichgoal1860\macpict\bliptag1253717893{\*\blipuid 4aba37856e2f36825bb27aa37038e6ed}
01e0ffffffff005c00fd1101a00082a0008c01000affffffff005c00fd220004004011110988228822882288225100340025005b004f09ffffffffffffffff58
22000d003b1a002200010049003a2200040053ee1409000000000000000051000900440013004e09ffffffffffffffff58090000000000000000310019009e00
3d00a709ffffffffffffffff38a10064000a4d44504c000900010002a0008c71001e002500bb002c00c9002600c9002c00bc002800bb002500bb002600c92200
3b004972eda0008da1006400084d44504c000a000009aa55aa55aa55aa5551002a00a1003200a409ffffffffffffffff58a10096000c01000000020000000000
0000a1009a0008fffb0000001a000001000a00070000001300360300030d00092b01110c6c6967687420736f75726365a00097a10096000c0100000002000000
00000000a1009a0008fffc0000000c000001000a00080095001400b02b950105696d616765a00097a10096000c010000000200000000000000a1009a0008fffb
00000015000001000a002100cf002d00fc2b3a190976696577706f696e74a00097a10096000c010000000200000000000000a1009a0008fffc0000000d000001000a00460053005200702800500054066f626a656374a00097a0008da00083ff}}{\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Recursion\tab }{\insrsid10355392 
Solving a problem by restating it as a simpler problem of the same type (eg:  n! = n*(n-1)!, 0! = 1).
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Reflection}{\insrsid10355392 \tab The bouncing of a light ray by a surface in the mirror direction.}{\b\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1078{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw72\pich72\picwgoal1440\pichgoal1440\macpict\bliptag1656926523\blipupi72{\*\blipuid 62c2b13b5dc15b2db5ac0828061e31da}
000d00000000004800481101ff}}{\insrsid10355392 {\pict{\*\picprop\shplid1079{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw156\pich46\picwgoal3120\pichgoal920\macpict\bliptag-1660281267{\*\blipuid 9d0a1e4d7c08158740da0cdbf3dd7660}008fffffffff002d009b1101a00082a0008c01000affffffff002d009b09880022008800220031001a0001002d009b09ffffffffffffffff38a10064000a4d44
504c000900010002a0008c71001e0001007a000b008900010089000b007e0008007c0005007a00010089220022004c30e6a0008da1006400084d44504c000a0000220022004bc4dfa0008da00083ff}}{\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Refraction}{\insrsid10355392 \tab The bending of a light ray as it enters or leaves a dielectric material, such as glass.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1080{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw72\pich72\picwgoal1440\pichgoal1440\macpict\bliptag1656926523\blipupi72{\*\blipuid 62c2b13b5dc15b2db5ac0828061e31da}
000d00000000004800481101ff}}{\insrsid10355392 {\pict{\*\picprop\shplid1081{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw156\pich75\picwgoal3120\pichgoal1500\macpict\bliptag662062741{\*\blipuid 27764695d413155fcbe0fe5c0d7f1285}0096ffffffff004a009b1101a00082a0008c01000affffffff004a009b09880022008800220031001c0001002f009b09ffffffffffffffff3822000100133f1b
a10064000a4d44504c000900010002a0008c71001e0040008b0049009a0049009a0046008b0043008d0040008e0049009a22002e005b3215a0008da1006400084d44504c000a000022001b00510a13a0008da00083ff}}{\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Resolution}{\insrsid10355392 \tab 
The number of pixels in an image, usually given as the number of rows and columns.  The color resolution is the number of possible colors for each pixel.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Right Hand Rule}{\b\insrsid10355392 \tab }{\insrsid10355392 
A method for determining or specifying the surface normal direction (the thumb) from the curved direction of vertices across the other two dimensions of space (our fingers).  In the following illustration, vertices entered in the circular direction shown 
(counter-clockwise) would result in a surface normal pointing out of the page in the y-direction.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 \tab \tab \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1082{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw147\pich137\picwgoal2940\pichgoal2740\macpict\bliptag-1733984514{\*\blipuid 98a57efe1f6a1927609a87bc38816b9e}
02baffffffff008800921101a00082a0008c01000affffffff0088009209000000000000000031001300150057007609ffffffffffffffff38a10064000a4d44
504c000900010002a0008c71001e00660001006d000f006a00010066000f006a000f006d000f006a000122006a00868900a0008da1006400084d44504c000a00
00a10064000a4d44504c000900010002a0008c71001e00010082000f008900010086000f0089000f0086000f00820001008622006a008600a5a0008da1006400
084d44504c000a0000a10064000a4d44504c000900010002a0008c71001e007a00660086007300860066007a006e007d0071007f00730086006622006a0086eb
13a0008da1006400084d44504c000a0000a10096000c010000000200000000000000a1009a0008fffb00000003000001000a000f0087001f00912c0009000306
47656e6576610300030d000c2b881b017aa00097a10096000c010000000200000000000000a1009a0008fffb00000004000001000a006b0010007b001a280077
00110178a00097a10096000c010000000200000000000000a1009a0008fffc00000004000001000a0076007a008600842b6a0b0179a0009701000affffffff00
880092070000000022003c00510000a000a0a100a4000201fc01000a00000000000000000700010001220041004d04fb2301f923fdf823fafc23f8ff23f90323
fc07230108a000a301000affffffff00880092220041004d01ff2302fd2301fe2300fe2300ff2300002300fe2300fd2300ff23ffff2300fe23fefd23feff23ff
ff23fcff23feff23fe0023fc0123ff0023fe0123fd0323ff0123000123ff02230003230004230002a000a1a10064000a4d44504c000900010002a0008c71001e003700350045003f0045003f003a0035003900380037003b0045003f22003e003bfdfba0008da1006400084d44504c000a0000a0008da00083ff}}{
\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Run Length Encoding}{\b\insrsid10355392 \tab }{\insrsid10355392 
A means of saving space used by ray tracing programs.  If many adjacent pixels in a scanline have the same value, the value and a count is given instead of all the pixels.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\b\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Specular Reflection}{\insrsid10355392 \tab 
The preferred scattering of light by a surface in the mirror direction.  The shine from a surface.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1083{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw72\pich72\picwgoal1440\pichgoal1440\macpict\bliptag1656926523\blipupi72{\*\blipuid 62c2b13b5dc15b2db5ac0828061e31da}
000d00000000004800481101ff}}{\insrsid10355392 {\pict{\*\picprop\shplid1084{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw156\pich72\picwgoal3120\pichgoal1440\macpict\bliptag-1484084580{\*\blipuid a78aaa9cf6c89c94b0c7253960a5593e}00a5ffffffff0047009b1101a00082a0008c01000affffffff0047009b22000d00111b00220001001f011a2200050029ee130988002200880022003100340001
0047009b09ffffffffffffffff3822003d004bccc709000000000000000051000a001b0014002509ffffffffffffffff5822003d004b2dcd22003c004b1ed722003c004b35d422003c004b29e422003c004b3dc522001f005af11e2321eea0008da00083ff}}{\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Surface Normal}{\b\insrsid10355392 \tab }{\insrsid10355392 A three-dimensional vector pointing away from a surface at right angles.
}{\b\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }{\i\insrsid10355392 Transmission}{\b\insrsid10355392 \tab }{\insrsid10355392 Light passing through a medium.
\par 
\par }{\b\insrsid10355392 \tab }{\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\b\insrsid10355392 
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \sect }\sectd \linex0\endnhere\sectdefaultcl\sftnbj {\headerl \pard\plain 
\s35\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Terms
\par }}{\headerr \pard\plain \s35\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab Terms
\par }}{\footerl \pard\plain \s34\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\field{\*\fldinst {\insrsid10355392  DATE  }}{\fldrslt {
\insrsid10355392 10/8/07}}}{\insrsid10355392  Draft\tab - }{\field{\*\fldinst {\insrsid10355392  PAGE  }}{\fldrslt {\insrsid10355392 104}}}{\insrsid10355392  -\tab 
\par }}{\footerr \pard\plain \s34\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab - }{\field{\*\fldinst {\insrsid10355392  
PAGE  }}{\fldrslt {\insrsid10355392 105}}}{\insrsid10355392  -\tab }{\field{\*\fldinst {\insrsid10355392  DATE  }}{\fldrslt {\insrsid10355392 10/8/07}}}{\insrsid10355392  Draft
\par }}\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s1\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f12\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Terms
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 \f12\fs20\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\i\insrsid10355392 Argument}{\insrsid10355392 \tab 
A string or real number associated with primitives in Radiance scene descriptions.  The first integer following the identifier is the number of string arguments, and is followed by the arguments themselves.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 Bounding Cube\tab 
A cube that contains all surfaces in the scene.  OCONV must first determine or be given a bounding cube before it can generate an octree.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Command Expansion}{\b\insrsid10355392 \tab }{\insrsid10355392 
The execution of commands contained in a scene description in lieu of the corresponding command output.  If desired, the "-e" option of xform may be used to expand all commands, creating a "flat" scene description.  
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Cone}{\b\insrsid10355392 \tab }{\insrsid10355392 
A cone is cut in two places perpendicular to its axis.  The family of cones in Radiance includes }{\i\insrsid10355392 cylinders}{\insrsid10355392  and }{\i\insrsid10355392 rings}{\insrsid10355392 
 as special cases.  A cone whose surface normal is directed inward is called a }{\i\insrsid10355392 cup}{\insrsid10355392 .  A }{\i\insrsid10355392 cylinder}{\insrsid10355392  is like a cone whose radius is constant along its length.  A }{
\i\insrsid10355392 ring}{\insrsid10355392  is a flat object defined by a center, a normal direction, and an inner and outer radius.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1085{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw72\pich72\picwgoal1440\pichgoal1440\macpict\bliptag1656926523\blipupi72{\*\blipuid 62c2b13b5dc15b2db5ac0828061e31da}
000d00000000004800481101ff}}{\insrsid10355392 {\pict{\*\picprop\shplid1086{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw73\pich75\picwgoal1460\pichgoal1500\macpict\bliptag-1953046447{\*\blipuid 8b96e051823919f068cbdcb2072e4d29}0066ffffffff004a00481101a00082a0008c01000affffffff004a0048090000000000000000510001000e0014003d09ffffffffffffffff58220008000ef332
22000a003c0a2fa0008c60002a0001004a004800b4005a68005a005aa0008da0008da00083ff}}{\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }{\i\insrsid10355392 Cup}{\b\insrsid10355392 \tab }{\insrsid10355392 An inverted cone (see cone).
\par 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Cylinder}{\b\insrsid10355392 \tab }{\insrsid10355392 A cylinder is like a cone whose radius is constant along its length.  A }{
\i\insrsid10355392 tube}{\insrsid10355392  is a cylinder whose surface normal is directed inwards rather than outwards.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1087{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw72\pich72\picwgoal1440\pichgoal1440\macpict\bliptag1656926523\blipupi72{\*\blipuid 62c2b13b5dc15b2db5ac0828061e31da}
000d00000000004800481101ff}}{\insrsid10355392 {\pict{\*\picprop\shplid1088{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw148\pich40\picwgoal2960\pichgoal800\macpict\bliptag-297174465{\*\blipuid ee497a3f03b22d220ebcdff193e1ec5d}006effffffff002700931101a00082a0008c01000affffffff0027009309000000000000000051000100010027001609ffffffffffffffff58220001000b7d00
220026000a7d00a0008c600001007d002800920000005a600000007d00270092005a005aa0008da0008da00083ff}}{\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Data File}{\b\insrsid10355392 \tab }{\insrsid10355392 A file containing data for Radiance programs; a scalar field in n-dimensions.

\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Direct Calculation}{\b\insrsid10355392 \tab }{\insrsid10355392 
The calculation of illumination due to light coming directly from sources (rather than reflections "bounced" off other objects in the scene, or ambient light).
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Frozen Octree}{\insrsid10355392 \tab 
All data structures in an octree stay the same once that octree is frozen (with the "-f" option in oconv).   
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\b\insrsid10355392 
\par }{\i\insrsid10355392 Function File}{\insrsid10355392 \tab A file containing a functional procedure.
\par 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Generator}{\insrsid10355392 \tab A program that creates compound objects such as prisms, patches and surfaces of revolution.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Hierarchy}{\b\insrsid10355392 \tab }{\insrsid10355392 
A structure where an object is composed of smaller objects that may themselves be composed of even smaller objects.  One method for creating scene hierarchy is to use the xform command to read in other scene files, transforming them to new positions.  The
se scene files may contain other xform commands, thus producing a tree of transformations. 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Indirect Calculation}{\insrsid10355392 \tab A technique for computing interreflections from objects other than light sources.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Instancing}{\b\insrsid10355392 \tab }{\insrsid10355392 The use of one ob
ject many times (in many "instances") in a scene.  Only one description of the object is required, along with information about the locations of all the identical objects, thus saving program memory.  The layering of instances is called "hierarchical inst
ancing".
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }{\i\insrsid10355392 Intersection Point\tab }{\insrsid10355392 The point where a ray intersects the surface.
\par 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Light Source}{\insrsid10355392 \tab An origin of illumination in a three-dimensional graphics scene.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Material}{\insrsid10355392 \tab Materials determine how each surface in a Radiance scene interacts with light.  Examples of m
aterials are:  light, metal, plastic, and glass.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Modifier}{\b\insrsid10355392 \tab }{\insrsid10355392 
Either the identifier of a previously defined primitive, or "void", to get things started.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Object}{\insrsid10355392 \tab 
A collection of one or more surfaces (polygons, spheres, cones, or light sources) contained in a description file.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Octree}{\insrsid10355392 \tab 
The resulting data structure from a technique that sorts objects in a scene before the rays are traced, so the ray tracer can efficiently examine only those objects in the cubic segments of the scene where rays are intercepted.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Pattern}{\insrsid10355392 \tab 
A perturbation of the material color (as opposed to a perturbation of the surface normal).  A pattern affects its reflectance of an object.  
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Picture File}{\b\insrsid10355392 \tab }{\insrsid10355392 A type of file used by Radiance that contains information about a picture.

\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Pipe}{\insrsid10355392 \tab 
A Unix facility for connecting the output of one program directly as input to another.  In the Unix shell, the pipe facility is represented with the '|' character.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Polygon}{\b\insrsid10355392 \tab }{\insrsid10355392 
An area in a plane enclosed by connected, non-crossing line segments defined by at least three distinct vertices.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1089{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw72\pich72\picwgoal1440\pichgoal1440\macpict\bliptag1656926523\blipupi72{\*\blipuid 62c2b13b5dc15b2db5ac0828061e31da}
000d00000000004800481101ff}}{\insrsid10355392 {\pict{\*\picprop\shplid1090{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw147\pich75\picwgoal2940\pichgoal1500\macpict\bliptag-1350268535{\*\blipuid af848989559c0d8277eaf3950bfd47cf}008fffffffff004a00921101a0008201000affffffff004a0092070000000022004900270000a000a0a100a400020de201000a00000000000000000700010001
22002e0001261b230000236ae923000023d9cf23000023da1623000023c6f123000023f726230000a000a301000affffffff004a009223261b236ae923d9cf23da1623c6f123f726a000a1a00083ff}}{\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\b\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Polygonal Mesh}{\insrsid10355392 \tab 
A set of connected polygonally bounded planar surfaces.  Polygonal meshes can be used to represent objects with curved surfaces, in an approximate fashion in which the curved surface is broken into a number of polygonal segments.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\b\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Primitive}{\b\insrsid10355392 \tab }{\insrsid10355392 
The fundamental building block of a scene description that describes a material or pattern surface that's used by Radiance.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\b\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Ring}{\insrsid10355392 \tab A ring is a flat object defined by a center, a normal direction, and an inner and outer radius.  When 
the inner radius of a ring is zero, it is called a }{\i\insrsid10355392 disk}{\insrsid10355392 .
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1091{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw72\pich72\picwgoal1440\pichgoal1440\macpict\bliptag1656926523\blipupi72{\*\blipuid 62c2b13b5dc15b2db5ac0828061e31da}
000d00000000004800481101ff}}{\insrsid10355392 {\pict{\*\picprop\shplid1092{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw122\pich67\picwgoal2440\pichgoal1340\macpict\bliptag-1951378363{\*\blipuid 8bb054450626f97830845056a512d2fb}005cffffffff004200791101a00082a0008c01000affffffff0042007909000000000000000051000100010042007909ffffffffffffffff5809000000000000
000051001c00360025004309ffffffffffffffff58a0008da00083ff}}{\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Shell Script\tab }{\insrsid10355392 
A file which contains commands to be executed by a command interpreter, such as the Bourne shell or the C-shell.}{\i\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Sphere}{\b\insrsid10355392 \tab }{\insrsid10355392 
A sphere is a three dimensional circular object, defined by its center point and radius.  By default, the surface normal points away from the center.  Spheres with inward pointing normals are called }{\i\insrsid10355392 bubbles}{\insrsid10355392 
 in Radiance.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 \tab }{\insrsid10355392 {\pict{\*\picprop\shplid1093{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}
{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw72\pich72\picwgoal1440\pichgoal1440\macpict\bliptag1656926523\blipupi72{\*\blipuid 62c2b13b5dc15b2db5ac0828061e31da}
000d00000000004800481101ff}}{\insrsid10355392 {\pict{\*\picprop\shplid1094{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw75\pich75\picwgoal1500\pichgoal1500\macpict\bliptag1544752793{\*\blipuid 5c130e9940b748868cbcdb982730bcb5}003affffffff004a004a1101a0008201000affffffff004a004a0900000000000000005100010001004a004a09ffffffffffffffff58a00083ff}}{\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Surface}{\insrsid10355392 \tab The basic shapes used by Radiance:  polygons, spheres, cones and light sources.  An
 object is a collection of one or more surfaces contained in a description file.  
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Texture}{\insrsid10355392 \tab 
A perturbation of the surface normal (as opposed to a perturbation of the material color).  A texture affects the illumination and highlights of an object.  
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Translator\tab }{\insrsid10355392 
Converts files from one type to another (eg: converting a CAD file to a Radiance scene input file).  Also called an importer or exporter.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 Tube}{\b\insrsid10355392 \tab }{\insrsid10355392 
A cylinder whose surface normal is directed inwards rather than outwards (see cylinder).
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\i\insrsid10355392 View}{\insrsid10355392 \tab A particular set of parameters that define a two-dimensional projection from a three-dimensional scene.

\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \sect }\sectd \linex0\endnhere\sectdefaultcl\sftnbj {\headerl \pard\plain 
\s35\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Programs
\par }}{\headerr \pard\plain \s35\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab \tab Programs
\par }}{\footerl \pard\plain \s34\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\field{\*\fldinst {\insrsid10355392  DATE  }}{\fldrslt {
\insrsid10355392 10/8/07}}}{\insrsid10355392  Draft\tab - }{\field{\*\fldinst {\insrsid10355392  PAGE  }}{\fldrslt {\insrsid10355392 106}}}{\insrsid10355392  -\tab 
\par }}{\footerr \pard\plain \s34\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 \tab - }{\field{\*\fldinst {\insrsid10355392  
PAGE  }}{\fldrslt {\insrsid10355392 0}}}{\insrsid10355392  -\tab }{\field{\*\fldinst {\insrsid10355392  DATE  }}{\fldrslt {\insrsid10355392 10/8/07}}}{\insrsid10355392  Draft
\par }}\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s1\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f12\fs28\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 Programs
\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f12\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\insrsid10355392 
\par }\pard\plain \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 \f12\fs20\lang1024\langfe1024\cgrid\noproof\langnp1033\langfenp1033 {\b\insrsid10355392 OCONV}{\insrsid10355392 \tab 
A Radiance command used to create an octree from a list of object files prior to producing picture files or other lighting calculation information in order to speed up the process of ray tracing.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\b\insrsid10355392 RADIANCE}{\insrsid10355392 \tab 
A software package for accurately calculating and displaying lighting.  Radiance takes a scene description with light sources, sun, sky, buildings, rooms, furniture, etc. and produces spectral ra
diance values which can be collected in a "photo-accurate" color image.  
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\b\insrsid10355392 RPICT\tab }{\insrsid10355392 A Radiance rendering program that produces picture files in batch mode.
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\b\insrsid10355392 RTRACE\tab }{\insrsid10355392 
A Radiance program that provides a convenient interface for computing and combining individual radiance values to get luminance, contrast rendering factors, equivalent sphere illumination, glare indices, or any other lighting metric.  
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\b\insrsid10355392 RVIEW\tab }{\insrsid10355392 A Radiance rendering program that produces picture files interactively.}{\b\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\b\insrsid10355392 XFORM\tab }{\insrsid10355392 A Radiance program that trans
forms a scene description from one coordinate space to another.  XFORM performs rotation, translation, scaling, and mirroring.}{\b\insrsid10355392 
\par }\pard \s47\ql \fi-2880\li2880\ri0\keep\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2880\itap0 {\insrsid10355392 
\par }}