4
edits
Changes
no edit summary
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
xmlns="http://www.w3.org/TR/REC-html40"> <head><meta http-equiv=Content-Type content="text/html; charset=windows-1252"><meta name=ProgId content=Word.Document><meta name=Generator content="Microsoft Word 12"><meta name=Originator content="Microsoft Word 12"><link rel=File-Listhref="How%20to%20implement%20Environmental%20Cube%20Mapping_files/filelist.xml"><!!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Author>CloudScorpion</o:Author> <o:LastAuthor>CloudScorpion</o:LastAuthor> <o:Revision>2</o:Revision> <o:TotalTime>1971</o:TotalTime> <o:Created>2011-04-14T09:44:00Z</o:Created> <o:LastSaved>2011-04-14T09:44:00Z</o:LastSaved> <o:Pages>3</o:Pages> <o:Words>1044</o:Words> <o:Characters>5954</o:Characters> <o:Lines>49</o:Lines> <o:Paragraphs>13</o:Paragraphs> <o:CharactersWithSpaces>6985</o:CharactersWithSpaces> <o:Version>12.00</o:Version> </o:DocumentProperties></xml><!![endif]--><link rel=themeDatahref="How%20to%20implement%20Environmental%20Cube%20Mapping_files/themedata.thmx"><link rel=colorSchemeMappinghref="How%20to%20implement%20Environmental%20Cube%20Mapping_files/colorschememapping.xml"><!!--[if gte mso 9]><xml> <w:WordDocument> <w:SpellingState>Clean</w:SpellingState> <w:GrammarState>Clean</w:GrammarState> <w:TrackMoves>false</w:TrackMoves> <w:TrackFormatting/> <w:PunctuationKerning/> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF/> <w:LidThemeOther>EN-CA</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:SplitPgBreakAndParaMark/> <w:DontVertAlignCellWithSp/> <w:DontBreakConstrainedForcedTables/> <w:DontVertAlignInTxbx/> <w:Word11KerningPairs/> <w:CachedColBalance/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> <m:mathPr> <m:mathFont m:val="Cambria Math"/> <m:brkBin m:val="before"/> <m:brkBinSub m:val="--"/> <m:smallFrac m:val="off"/> <m:dispDef/> <m:lMargin m:val="0"/> <m:rMargin m:val="0"/> <m:defJc m:val="centerGroup"/> <m:wrapIndent m:val="1440"/> <m:intLim m:val="subSup"/> <m:naryLim m:val="undOvr"/> </m:mathPr></w:WordDocument></xml><!![endif]--><!!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Normal"/> <w:LsdException Locked="false" Priority="9" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="heading 1"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/> <w:LsdException Locked="false" Priority="39" Name="toc 1"/> <w:LsdException Locked="false" Priority="39" Name="toc 2"/> <w:LsdException Locked="false" Priority="39" Name="toc 3"/> <w:LsdException Locked="false" Priority="39" Name="toc 4"/> <w:LsdException Locked="false" Priority="39" Name="toc 5"/> <w:LsdException Locked="false" Priority="39" Name="toc 6"/> <w:LsdException Locked="false" Priority="39" Name="toc 7"/> <w:LsdException Locked="false" Priority="39" Name="toc 8"/> <w:LsdException Locked="false" Priority="39" Name="toc 9"/> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/> <w:LsdException Locked="false" Priority="10" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Title"/> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> <w:LsdException Locked="false" Priority="11" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> <w:LsdException Locked="false" Priority="22" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Strong"/> <w:LsdException Locked="false" Priority="20" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> <w:LsdException Locked="false" Priority="59" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/> <w:LsdException Locked="false" Priority="1" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 1"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 1"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 1"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/> <w:LsdException Locked="false" Priority="34" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> <w:LsdException Locked="false" Priority="29" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Quote"/> <w:LsdException Locked="false" Priority="30" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 1"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 1"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 2"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 2"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 2"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 2"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 2"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 3"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 3"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 3"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 3"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 3"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 4"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 4"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 4"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 4"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 4"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 5"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 5"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 5"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 5"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 5"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 6"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 6"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 6"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 6"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 6"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> <w:LsdException Locked="false" Priority="19" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> <w:LsdException Locked="false" Priority="21" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> <w:LsdException Locked="false" Priority="31" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> <w:LsdException Locked="false" Priority="32" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> <w:LsdException Locked="false" Priority="33" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Book Title"/> <w:LsdException Locked="false" Priority="37" Name="Bibliography"/> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/> </w:LatentStyles></xml><!![endif]--><style><!!-- /* Font Definitions */ @font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;
mso-font-pitch:variable;
mso-font-signature:-520092929 1073786111 9 0 415 0;}
{mso-style-unhide:no;
mso-style-qformat:yes;
div.WordSection1
{page:WordSection1;}
{mso-list-id:99953897;
mso-list-type:hybrid;
mso-list-template-ids:1078334064 269025297 269025281 269025299 269025295 269025305 269025307 269025295 269025305 269025307;}
@list l0:level1
{mso-level-text:"%1\)";
mso-level-tab-stop:none;
mso-level-number-position:left;
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
mso-list-template-ids:-930814958 269025297 269025305 269025307 269025295 269025305 269025307 269025295 269025305 269025307;}
@list l3:level1
{mso-level-text:"%1\)";
mso-level-tab-stop:none;
mso-level-number-position:left;
ul
{margin-bottom:0cm;}
--></style><!!--[if gte mso 10]><style> /* Style Definitions */ table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-bidi-theme-font:minor-bidi;
mso-fareast-language:EN-US;}
</style><!![endif]--><!!--[if gte mso 9]><xml> <o:shapedefaults v:ext="edit" spidmax="2050"/></xml><!![endif]--><!!--[if gte mso 9]><xml> <o:shapelayout v:ext="edit"> <o:idmap v:ext="edit" data="1"/> </o:shapelayout></xml><!![endif]--></head> <body lang=EN-CA style='tab-interval:36.0pt'> <div class=WordSection1> <p class=MsoNormal>Theory behind the Material Class:</p> <p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l1 level1 lfo4'><!![if !!supportLists]><span
style='mso-ascii-font-family:Calibri;mso-fareast-font-family:Calibri;
mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>The material class was originally supposed to encapsulate
all material related data, such as textures, colors, reflectivity etc. The
intention was to replace a lot of the functionality of graphic, so that an
way you could have a material attached to many different meshes, so a similar
appearance can be applied amongst many objects. This is similar to the approach
taken by 3DS Max.</p> <p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l1 level1 lfo4'><!![if !!supportLists]><span
style='mso-ascii-font-family:Calibri;mso-fareast-font-family:Calibri;
mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>This approach proved too invasive for others to
implement, so now I have made Material a category, which will shift
responsibility of drawing the object away from graphic and into Material.</p> <p class=MsoNormal>How to implement Environmental Cube Mapping</p> <p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l0 level1 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'>1)<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Download and include the <span class=SpellE>iMaterial.h</span>,<span class=SpellE>Material.h</span> and Material.cpp into your project.</p> <p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l0 level1 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'>2)<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Add the cube map code from the provided FX file
into your own FX file. If you will be adding there manually, copy the code
between //REF_CUBE_MAP_A# and //END REF_CUBE_MAP_A#, there should be 4 sections
to copy in total</p> <p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l0 level1 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'>3)<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Edit the <span class=SpellE>Configuration.h</span>
file<span style='mso-spacerun:yes'> </span>and add “MATERIAL” to the Category
enumeration</p> <p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l0 level1 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'>4)<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Object is now going to need some
adjustments.<span style='mso-spacerun:yes'> </span>I’ll break this down into a
few components:</p> <p class=MsoListParagraphCxSpMiddle style='margin-left:72.0pt;mso-add-space:auto;text-indent:-18.0pt;mso-list:l0 level2 lfo1'><!![if !!supportLists]><span
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]><span class=SpellE>iObject.h</span></p> <p class=MsoListParagraphCxSpMiddle style='margin-left:108.0pt;mso-add-space:auto;text-indent:-108.0pt;mso-text-indent-alt:-9.0pt;mso-list:l0 level3 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'><span style='font:7.0pt "Times New Roman"'>
</span>I.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Add ‘class <span class=SpellE>iMaterial</span>’to the top of the file with the rest of the declarations</p> <p class=MsoListParagraphCxSpMiddle style='margin-left:108.0pt;mso-add-space:auto;text-indent:-108.0pt;mso-text-indent-alt:-9.0pt;mso-list:l0 level3 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'><span style='font:7.0pt "Times New Roman"'>
</span>II.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Add a virtual getting and setter for theObject’s material</p> <p class=MsoListParagraphCxSpMiddle style='margin-left:108.0pt;mso-add-space:auto;text-indent:-108.0pt;mso-text-indent-alt:-9.0pt;mso-list:l0 level3 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'><span style='font:7.0pt "Times New Roman"'>
</span>III.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Add two more virtual functions, one called <span
class=SpellE>getID</span>, receives an <span class=SpellE>int</span> and
returns an <span class=SpellE>int</span>, and second one called <span
class=SpellE>resetID</span> which receives an <span class=SpellE>int</span> and
returns nothing.</p> <p class=MsoListParagraphCxSpMiddle style='margin-left:72.0pt;mso-add-space:auto;text-indent:-18.0pt;mso-list:l0 level2 lfo1'><!![if !!supportLists]><span
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]><span class=SpellE>Object.h</span></p> <p class=MsoListParagraphCxSpMiddle style='margin-left:108.0pt;mso-add-space:auto;text-indent:-108.0pt;mso-text-indent-alt:-9.0pt;mso-list:l0 level3 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'><span style='font:7.0pt "Times New Roman"'>
</span>I.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Add a private <span class=SpellE>iMaterial</span>
pointer to the object named <span class=SpellE>rMaterial</span> (you could
change it to w/e you want, but it won’t be as easy to copy/paste code if you
don’t)</p> <p class=MsoListParagraphCxSpMiddle style='margin-left:108.0pt;mso-add-space:auto;text-indent:-108.0pt;mso-text-indent-alt:-9.0pt;mso-list:l0 level3 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'><span style='font:7.0pt "Times New Roman"'>
</span>II.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Implement the getter and setter in the in theObject header, in the setter, change the category of the object to MATERIAL.</p> <p class=MsoListParagraphCxSpMiddle style='margin-left:108.0pt;mso-add-space:auto;text-indent:-108.0pt;mso-text-indent-alt:-9.0pt;mso-list:l0 level3 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'><span style='font:7.0pt "Times New Roman"'>
</span>III.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Remove the braces after Object’s <span
class=SpellE><span class=GramE>preDraw</span></span><span class=GramE>(</span>)
function, we are going to need to implement this function in the <span
class=SpellE>cpp</span>.</p> <p class=MsoListParagraphCxSpMiddle style='margin-left:108.0pt;mso-add-space:auto;text-indent:-108.0pt;mso-text-indent-alt:-9.0pt;mso-list:l0 level3 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'><span style='font:7.0pt "Times New Roman"'>
</span>IV.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Add a private <span class=SpellE>int</span>
array called get <span class=SpellE>cubeMapID</span>, which for this
implementation<span class=GramE>,<span style='mso-spacerun:yes'> </span>it</span>
can be an array of 2 items, since reflection depth will not be implemented.</p> <p class=MsoListParagraphCxSpMiddle style='margin-left:108.0pt;mso-add-space:auto;text-indent:-108.0pt;mso-text-indent-alt:-9.0pt;mso-list:l0 level3 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'><span style='font:7.0pt "Times New Roman"'>
</span>V.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Implement <span class=SpellE>getID</span> and <span
class=SpellE>resetID</span>, get id returns the <span class=SpellE>int</span>
at level in the <span class=SpellE>cubeMapID</span> array (return <span
class=SpellE><span class=GramE>cubeMapID</span></span><span class=GramE>[</span>level];)
and <span class=SpellE>resetID</span> sets the <span class=SpellE>int</span> at
level in the <span class=SpellE>cubeMapID</span> to -1.</p> <p class=MsoListParagraphCxSpMiddle style='margin-left:72.0pt;mso-add-space:auto;text-indent:-18.0pt;mso-list:l0 level2 lfo1'><!![if !!supportLists]><span
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Object.cpp</p> <p class=MsoListParagraphCxSpMiddle style='margin-left:108.0pt;mso-add-space:auto;text-indent:-108.0pt;mso-text-indent-alt:-9.0pt;mso-list:l0 level3 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'><span style='font:7.0pt "Times New Roman"'>
</span>I.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Add ‘#<span class=GramE>include</span> <spanclass=SpellE>iMaterial.h</span>’ at the top.</p> <p class=MsoListParagraphCxSpMiddle style='margin-left:108.0pt;mso-add-space:auto;text-indent:-108.0pt;mso-text-indent-alt:-9.0pt;mso-list:l0 level3 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'><span style='font:7.0pt "Times New Roman"'>
</span>II.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>In the object constructor add ‘<span
class=SpellE>rMaterial</span> = NULL’, just to be safe, also set <span
class=SpellE>cubeMapID</span> [0] and [1] to -1.</p> <p class=MsoListParagraphCxSpMiddle style='margin-left:108.0pt;mso-add-space:auto;text-indent:-108.0pt;mso-text-indent-alt:-9.0pt;mso-list:l0 level3 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'><span style='font:7.0pt "Times New Roman"'>
</span>III.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>In the object’s = operator, set <span
class=SpellE><span class=GramE>CubeMapID</span></span><span class=GramE>[</span>0]
and [1] to -1.</p> <p class=MsoListParagraphCxSpMiddle style='margin-left:108.0pt;mso-add-space:auto;text-indent:-108.0pt;mso-text-indent-alt:-9.0pt;mso-list:l0 level3 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'><span style='font:7.0pt "Times New Roman"'>
</span>IV.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>In the Object’s attach function,<span
style='mso-spacerun:yes'> </span>check if the category is set to MATERIAL and
that <span class=SpellE>rMaterial</span> isn’t NULL, if true, use Material’s <span
class=SpellE>setStage</span>, if category is not set to MATERIALS then use the
code already there (Remember, if reading this is confusing, you can always copy
the code, this is just trying to explain what to do)</p> <p class=MsoListParagraphCxSpMiddle style='margin-left:108.0pt;mso-add-space:auto;text-indent:-108.0pt;mso-text-indent-alt:-9.0pt;mso-list:l0 level3 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'><span style='font:7.0pt "Times New Roman"'>
</span>V.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Above the draw function, add the implementation
of the <span class=SpellE>preDraw</span>, which is simple. Check if the
category is set to MATERIAL and <span class=SpellE>rMaterial</span> isn’t NULL,
Finally call the <span class=SpellE>preDraw</span> function on <span
class=SpellE>rMaterial</span> and pass it a reference to the object (this), <span
class=SpellE>vertexlist</span> pointer, and scene pointer.</p> <p class=MsoListParagraphCxSpMiddle style='margin-left:108.0pt;mso-add-space:auto;text-indent:-108.0pt;mso-text-indent-alt:-9.0pt;mso-list:l0 level3 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'><span style='font:7.0pt "Times New Roman"'>
</span>VI.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Mod the Object’s draw function to test if the
category is set to MATERIAL, if it is and<span style='mso-spacerun:yes'>
</span><span class=SpellE>rMaterial</span> isn’t NULL, call the draw function
on the material (passing in the object and scene) in place of using the attach
and draw code in the function, the report should occur regardless.</p> <p class=MsoListParagraphCxSpMiddle style='margin-left:108.0pt;mso-add-space:auto;text-indent:-108.0pt;mso-text-indent-alt:-9.0pt;mso-list:l0 level3 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'><span style='font:7.0pt "Times New Roman"'>
</span>VII.<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>In the suspend code, check if <span
class=SpellE>rMaterial</span> is NULL, if not, call suspend on it. Do the same
for release.</p> <p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l0 level1 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'>5)<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Open Display.cpp,<span
style='mso-spacerun:yes'> </span>#include <span class=SpellE>Material.h</span>
and call the static function <span class=SpellE>connectDevice</span> from
Material, this will give material access to the device and below, call the
static function <span class=SpellE>connectEffect</span>, giving Material access
to the effect file.</p> <p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l0 level1 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'>6)<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>The system requires a knowledge of the vertices
of the in a mesh, so you have to go to <span class=SpellE>iVertex</span> list
and add two virtual functions<span class=GramE>,<span
style='mso-spacerun:yes'> </span>‘<span class=SpellE>int</span></span> <span
class=SpellE>getNumOfVerts</span>()’ and ‘Vertex* <span class=SpellE>getVertitices</span>()’.
Now you have to go into the <span class=SpellE>VertexList</span> class,
NOTE: If you already have your object’s center and radius calculated or easily
accessible, you can skip this step and alter the code in the Material class to
use that data instead of calculating the center from the vertex list.</p> <p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l0 level1 lfo1'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'>7)<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Open Design.cpp and #include <span class=SpellE>iMaterial.h</span>.<span
style='mso-spacerun:yes'> </span>Add scene-><span class=GramE>draw(</span>MATERIAL);
to Design’s draw function and scene->draw(MATERIAL); to Design’s <span
class=SpellE>preDraw</span>.</p> <p class=MsoNormal>This will give you the ability to use the Material classwith your object to give them a nice reflective or refracting effect.</p> <p class=MsoNormal>How to use Material:</p> <p class=MsoNormal>To use a material, follow these few steps:</p> <p class=MsoListParagraphCxSpFirst style='margin-left:54.0pt;mso-add-space:auto;text-indent:-18.0pt;mso-list:l3 level1 lfo5'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'>1)<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Create a Material<span class=GramE>:</span><br><span class=SpellE><i style='mso-bidi-font-style:normal'>iMaterial</i></span><i
style='mso-bidi-font-style:normal'>* mat = <span class=SpellE>CreateMaterial</span>(<span
class=SpellE>contextPointer</span>, <span class=SpellE>numberOfStages</span>, <span
class=SpellE>numberOfSubsets</span>);<br></i>NOTES: if the material only have one stage and subset, only pass incontext.</p> <p class=MsoListParagraphCxSpMiddle style='margin-left:54.0pt;mso-add-space:auto;text-indent:-18.0pt;mso-list:l3 level1 lfo5'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'>2)<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Setup the material<span class=GramE>:</span><br><i style='mso-bidi-font-style:normal'>mat->setup(<span class=SpellE>arrayOfBasicColors</span>,
<span class=SpellE>twoDimensionalTextureArray</span>, <span class=SpellE>arrayOfColorsRepresentingReflection</span>,
<span class=SpellE>arrayOfRefractionPowers</span>, <span class=SpellE>twoDimensionalArrayOfColorsRepresentingRefraction</span>,
the light bends, so if it is equal to 1.0, the light will not bend at all,
where as if it is set to 0.9, it will bend about 10% of the angle of the normal
of the fragment.</p> <p class=MsoListParagraphCxSpLast style='margin-left:54.0pt;mso-add-space:auto;text-indent:-18.0pt;mso-list:l3 level1 lfo5'><!![if !!supportLists]><span
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style='mso-list:Ignore'>3)<span style='font:7.0pt "Times New Roman"'>
</span></span></span><!![endif]>Set the material onto the object<spanclass=GramE>:</span><br><i style='mso-bidi-font-style:normal'>object-><span class=SpellE>setMaterial</span>(mat);</i><br>
NOTE: this will convert the object to a material object and attach the
material.</p> <p class=MsoNormal><o:p> </o:p></p> <p class=MsoNormal>A quick example of how to make a glass like cube would be:</p> <p class=MsoNormal><br><span class=SpellE><i style='mso-bidi-font-style:normal'>iObject</i></span><i
style='mso-bidi-font-style:normal'>* boxy = <span class=SpellE>CreateBox</span>(-10,-10,
-10, 10, 10, 10, “opaque”, Colour(1.0f, 1.0f, 1.0f,1.0f);<br><span class=SpellE>iMaterial</span>* mat = <span class=SpellE>CreateMaterial</span>(context);<br>
float power = 0.9f; //this is just to sidestep the need for an array<br>
mat->setup(&Colour(0.7f, 0.7f, 0.7f, 0.7f), NULL, &Colour(1.0f,
1.0f, 1.0f, 0.25), &power, &Colour(1.0f, 1.0f, 1.0f, 1.0f));<br>
boxy-><span class=SpellE>setMaterial</span>(mat);<o:p></o:p></i></p> <p class=MsoNormal>I didn’t test the above code so there could be a typo.</p> </div> </body> </html>