<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE RENDER_MONKEY [ <!ELEMENT RENDER_MONKEY ( RmEffectWorkspace | RmRegistryBranch | RmClipboardNode )?> <!ELEMENT RmEffectWorkspace ( RmRegistryBranch?, RmPlugInData?, RmStringVariable*, ( ( RmDirectXEffect, RmOpenGLEffect?, RmOpenGLESEffect? ) | ( RmOpenGLEffect, RmDirectXEffect?, RmOpenGLESEffect? ) | ( RmOpenGLESEffect, RmDirectXEffect?, RmOpenGLEffect? ) )?, ( RmBooleanVariable | RmIntegerVariable | RmFloatVariable | RmVectorVariable | RmMatrixVariable | RmDynamicVariable | RmColorVariable | Rm2DTextureVariable | RmCubemapVariable | Rm3DTextureVariable | RmLightVariable | RmMaterialVariable | RmRenderableTexture | RmStreamMap | RmModelData | RmEffectGroup )* )> <!ELEMENT RmEffectGroup ( RmPlugInData?, ( RmStringVariable | RmDirectXEffect | RmOpenGLEffect | RmOpenGLESEffect | RmBooleanVariable | RmIntegerVariable | RmFloatVariable | RmVectorVariable | RmMatrixVariable | RmDynamicVariable | RmColorVariable | Rm2DTextureVariable | RmCubemapVariable | Rm3DTextureVariable | RmLightVariable | RmMaterialVariable | RmRenderableTexture | RmStreamMap | RmModelData )* )> <!ELEMENT RmDirectXEffect ( RmPlugInData?, ( RmStringVariable | RmCamera | RmBooleanVariable | RmIntegerVariable | RmFloatVariable | RmVectorVariable | RmMatrixVariable | RmDynamicVariable | RmColorVariable | Rm2DTextureVariable | RmCubemapVariable | Rm3DTextureVariable | RmLightVariable | RmMaterialVariable | RmRenderableTexture | RmStreamMap | RmModelData | RmPass )* )> <!ELEMENT RmOpenGLEffect ( RmPlugInData?, ( RmStringVariable | RmCamera | RmBooleanVariable | RmIntegerVariable | RmFloatVariable | RmVectorVariable | RmMatrixVariable | RmDynamicVariable | RmColorVariable | Rm2DTextureVariable | RmCubemapVariable | Rm3DTextureVariable | RmLightVariable | RmMaterialVariable | RmRenderableTexture | RmStreamMap | RmModelData | RmGLPass )* )> <!ELEMENT RmOpenGLESEffect ( RmPlugInData?, ( RmStringVariable | RmCamera | RmBooleanVariable | RmIntegerVariable | RmFloatVariable | RmVectorVariable | RmMatrixVariable | RmDynamicVariable | RmColorVariable | Rm2DTextureVariable | RmCubemapVariable | Rm3DTextureVariable | RmLightVariable | RmMaterialVariable | RmRenderableTexture | RmStreamMap | RmModelData | RmGLESPass )* )> <!ELEMENT RmPass ( RmPlugInData?, RmStringVariable*, RmCameraReference?, RmModelReference?, RmRenderStateBlock?, ( ( ( RmHLSLShader | RmShader ), ( RmShader | RmHLSLShader )? ) )?, RmRenderTarget*, RmStreamMapReference?, ( RmBooleanVariable | RmIntegerVariable | RmFloatVariable | RmVectorVariable | RmMatrixVariable | RmDynamicVariable | RmColorVariable | Rm2DTextureVariable | RmCubemapVariable | Rm3DTextureVariable | RmLightVariable | RmMaterialVariable | RmTextureObject | RmLightObject | RmMaterialObject )* )> <!ELEMENT RmGLPass ( RmPlugInData?, RmStringVariable*, RmCameraReference?, RmModelReference?, RmRenderStateBlock?, ( ( RmGLShader, RmGLShader? ) )?, RmRenderTarget?, RmStreamMapReference?, ( RmBooleanVariable | RmIntegerVariable | RmFloatVariable | RmVectorVariable | RmMatrixVariable | RmDynamicVariable | RmColorVariable | Rm2DTextureVariable | RmCubemapVariable | Rm3DTextureVariable | RmLightVariable | RmMaterialVariable | RmTextureObject | RmLightObject | RmMaterialObject | RmShaderConstant | RmSampler )* )> <!ELEMENT RmGLESPass ( RmPlugInData?, RmStringVariable*, RmCameraReference?, RmModelReference?, RmRenderStateBlock?, ( ( RmGLESShader, RmGLESShader? ) )?, RmRenderTarget?, RmStreamMapReference?, ( RmBooleanVariable | RmIntegerVariable | RmFloatVariable | RmVectorVariable | RmMatrixVariable | RmDynamicVariable | RmColorVariable | Rm2DTextureVariable | RmCubemapVariable | Rm3DTextureVariable | RmLightVariable | RmMaterialVariable | RmTextureObject | RmLightObject | RmMaterialObject | RmShaderConstant | RmSampler )* )> <!ELEMENT RmShader ( RmShaderCode, RmPlugInData?, ( RmStringVariable | RmShaderConstant )* )> <!ELEMENT RmHLSLShader ( RmShaderCode, RmPlugInData?, ( RmStringVariable | RmShaderConstant | RmSampler )* )> <!ELEMENT RmGLShader ( RmShaderCode, RmPlugInData?, ( RmStringVariable )* )> <!ELEMENT RmGLESShader ( RmShaderCode, RmPlugInData?, ( RmStringVariable )* )> <!ELEMENT RmTextureObject ( RmPlugInData?, RmStringVariable*, RmTextureReference?, RmState* )> <!ELEMENT RmLightObject ( RmPlugInData?, RmStringVariable*, RmLightReference? )> <!ELEMENT RmMaterialObject ( RmPlugInData?, RmStringVariable*, RmMaterialReference? )> <!ELEMENT RmRenderStateBlock ( RmPlugInData?, ( RmStringVariable | RmState )* )> <!ELEMENT RmStreamMap ( RmPlugInData?, ( RmStringVariable | RmStream )* )> <!ELEMENT RmStream ( RmPlugInData?, RmStreamChannel* )> <!ELEMENT RmModelData ( RmPlugInData?, RmStringVariable* )> <!ELEMENT RmTextureReference ( RmPlugInData?, RmStringVariable* )> <!ELEMENT RmLightReference ( RmPlugInData?, RmStringVariable* )> <!ELEMENT RmMaterialReference ( RmPlugInData?, RmStringVariable* )> <!ELEMENT RmCameraReference ( RmPlugInData?, RmStringVariable* )> <!ELEMENT RmModelReference ( RmPlugInData?, RmStringVariable* )> <!ELEMENT RmStreamMapReference ( RmPlugInData?, RmStringVariable* )> <!ELEMENT RmRenderableTexture ( RmPlugInData?, RmStringVariable* )> <!ELEMENT RmRenderTarget ( RmPlugInData?, RmStringVariable* )> <!ELEMENT RmBooleanVariable ( RmPlugInData?, RmStringVariable? )> <!ELEMENT RmFloatVariable ( RmPlugInData?, RmStringVariable? )> <!ELEMENT RmVectorVariable ( RmPlugInData?, RmStringVariable? )> <!ELEMENT RmMatrixVariable ( RmPlugInData?, RmStringVariable? )> <!ELEMENT RmColorVariable ( RmPlugInData?, RmStringVariable? )> <!ELEMENT RmIntegerVariable ( RmPlugInData?, RmStringVariable? )> <!ELEMENT Rm2DTextureVariable ( RmPlugInData?, RmStringVariable? )> <!ELEMENT RmCubemapVariable ( RmPlugInData?, RmStringVariable? )> <!ELEMENT Rm3DTextureVariable ( RmPlugInData?, RmStringVariable? )> <!ELEMENT RmLightVariable ( RmPlugInData?, RmStringVariable? )> <!ELEMENT RmMaterialVariable ( RmPlugInData?, RmStringVariable? )> <!ELEMENT RmCamera ( RmPlugInData?, RmStringVariable* )> <!ELEMENT RmStringVariable ( RmTextDataBlock, RmPlugInData? )> <!ELEMENT RmDynamicVariable ( RmDynamicVariableValueContainer, RmPlugInData?, RmStringVariable? )> <!ELEMENT RmDynamicVariableValueContainer ( RmPlugInData?, RmDynamicVariableValue* )> <!ELEMENT RmTextDataBlock ( #PCDATA ) > <!ELEMENT RmRegistryBranch ( RmTextDataBlock?, ( RmRegistryBranch | RmStringVariable | RmIntegerVariable | RmBooleanVariable | RmFloatVariable )* )> <!ELEMENT RmPlugInData ( RmTextDataBlock?, ( RmStringVariable | RmIntegerVariable | RmBooleanVariable | RmFloatVariable | RmVectorVariable )* )> <!ELEMENT RmClipboardNode ( RmTextDataBlock?, ( RmEffectWorkspace | RmEffectGroup | RmDirectXEffect | RmOpenGLEffect | RmOpenGLESEffect | RmPass | RmGLPass | RmGLESPass | RmShader | RmHLSLShader | RmGLShader | RmGLESShader | RmShaderConstant | RmSampler | RmTextureObject | RmLightObject | RmMaterialObject | RmRenderStateBlock | RmState | RmStreamMap | RmStream | RmStreamChannel | RmModelData | RmTextureReference | RmLightReference | RmMaterialReference | RmModelReference | RmStreamMapReference | RmRenderableTexture | RmRenderTarget | RmBooleanVariable | RmFloatVariable | RmVectorVariable | RmMatrixVariable | RmDynamicVariable | RmDynamicVariableValue | RmColorVariable | RmIntegerVariable | RmStringVariable | Rm2DTextureVariable | RmCubemapVariable | Rm3DTextureVariable | RmLightVariable | RmMaterialVariable | RmRegistryBranch | RmPlugInData | RmCamera | RmCameraReference )* )> <!ELEMENT RmStreamChannel ( RmPlugInData? ) > <!ELEMENT RmShaderConstant ( RmPlugInData? ) > <!ELEMENT RmSampler ( RmPlugInData? ) > <!ELEMENT RmState ( RmPlugInData? ) > <!ELEMENT RmDynamicVariableValue ( RmPlugInData? ) > <!ELEMENT RmShaderCode ( #PCDATA ) > <!ATTLIST RmEffectWorkspace NAME CDATA #REQUIRED API CDATA #REQUIRED ACTIVE_EFFECT CDATA #REQUIRED VALIDATION_STRING CDATA #REQUIRED XML_VERSION CDATA #REQUIRED > <!ATTLIST RmEffectGroup NAME CDATA #REQUIRED API CDATA #REQUIRED > <!ATTLIST RmDirectXEffect NAME CDATA #REQUIRED API CDATA #REQUIRED ACTIVE_CAMERA CDATA #REQUIRED > <!ATTLIST RmOpenGLEffect NAME CDATA #REQUIRED API CDATA #REQUIRED ACTIVE_CAMERA CDATA #REQUIRED > <!ATTLIST RmOpenGLESEffect NAME CDATA #REQUIRED API CDATA #REQUIRED ACTIVE_CAMERA CDATA #REQUIRED > <!ATTLIST RmPass NAME CDATA #REQUIRED API CDATA #REQUIRED PASS_INDEX CDATA #REQUIRED ENABLED ( TRUE | FALSE ) #REQUIRED > <!ATTLIST RmGLPass NAME CDATA #REQUIRED API CDATA #REQUIRED PASS_INDEX CDATA #REQUIRED ENABLED ( TRUE | FALSE ) #REQUIRED > <!ATTLIST RmGLESPass NAME CDATA #REQUIRED API CDATA #REQUIRED PASS_INDEX CDATA #REQUIRED ENABLED ( TRUE | FALSE ) #REQUIRED > <!ATTLIST RmShader NAME CDATA #REQUIRED API CDATA #REQUIRED PIXEL_SHADER CDATA #REQUIRED > <!ATTLIST RmHLSLShader NAME CDATA #REQUIRED API CDATA #REQUIRED PIXEL_SHADER ( TRUE | FALSE ) #REQUIRED TARGET CDATA #REQUIRED ENTRY_POINT CDATA #REQUIRED COMPILER_FLAGS CDATA #REQUIRED > <!ATTLIST RmGLShader NAME CDATA #REQUIRED API CDATA #REQUIRED PIXEL_SHADER ( TRUE | FALSE ) #REQUIRED > <!ATTLIST RmGLESShader NAME CDATA #REQUIRED API CDATA #REQUIRED PIXEL_SHADER ( TRUE | FALSE ) #REQUIRED > <!ATTLIST RmShaderConstant NAME CDATA #REQUIRED API CDATA #REQUIRED REGISTER CDATA #REQUIRED > <!ATTLIST RmSampler NAME CDATA #REQUIRED API CDATA #REQUIRED REGISTER CDATA #REQUIRED > <!ATTLIST RmTextureObject NAME CDATA #REQUIRED API CDATA #REQUIRED STATE_INDEX CDATA #REQUIRED VERTEX_TEXTURE ( TRUE | FALSE ) #REQUIRED > <!ATTLIST RmLightObject NAME CDATA #REQUIRED API CDATA #REQUIRED INDEX CDATA #REQUIRED > <!ATTLIST RmMaterialObject NAME CDATA #REQUIRED API CDATA #REQUIRED INDEX CDATA #REQUIRED > <!ATTLIST RmRenderStateBlock NAME CDATA #REQUIRED API CDATA #REQUIRED > <!ATTLIST RmState NAME CDATA #REQUIRED API CDATA #REQUIRED STATE CDATA #REQUIRED VALUE CDATA #REQUIRED USAGE CDATA #REQUIRED > <!ATTLIST RmStreamMap NAME CDATA #REQUIRED API CDATA #REQUIRED > <!ATTLIST RmStream NAME CDATA #REQUIRED API CDATA #REQUIRED STRIDE CDATA #REQUIRED > <!ATTLIST RmStreamChannel NAME CDATA #REQUIRED API CDATA #REQUIRED DATA_SIZE CDATA #REQUIRED DATA_TYPE CDATA #REQUIRED REGISTER CDATA #REQUIRED USAGE CDATA #REQUIRED USAGE_INDEX CDATA #REQUIRED ATTRIBUTE_NAME CDATA #REQUIRED > <!ATTLIST RmModelData NAME CDATA #REQUIRED API CDATA #REQUIRED FILE_NAME CDATA #REQUIRED ORIENTATION CDATA #REQUIRED > <!ATTLIST RmTextureReference NAME CDATA #REQUIRED API CDATA #REQUIRED > <!ATTLIST RmLightReference NAME CDATA #REQUIRED API CDATA #REQUIRED > <!ATTLIST RmMaterialReference NAME CDATA #REQUIRED API CDATA #REQUIRED > <!ATTLIST RmModelReference NAME CDATA #REQUIRED API CDATA #REQUIRED > <!ATTLIST RmStreamMapReference NAME CDATA #REQUIRED API CDATA #REQUIRED > <!ATTLIST RmRenderableTexture NAME CDATA #REQUIRED API CDATA #REQUIRED ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED VARIABLE_SEMANTIC CDATA #REQUIRED FILE_NAME CDATA #REQUIRED ORIGIN CDATA #REQUIRED WIDTH CDATA #REQUIRED HEIGHT CDATA #REQUIRED FORMAT CDATA #REQUIRED USE_VIEWPORT_DIMENSIONS ( TRUE | FALSE ) #REQUIRED GENERATE_MIPMAPS ( TRUE | FALSE ) #REQUIRED WIDTH_RATIO CDATA #REQUIRED HEIGHT_RATIO CDATA #REQUIRED > <!ATTLIST RmRenderTarget NAME CDATA #REQUIRED API CDATA #REQUIRED INDEX CDATA #REQUIRED RENDER_TO_SCREEN ( TRUE | FALSE ) #REQUIRED COLOR_CLEAR ( TRUE | FALSE ) #REQUIRED DEPTH_CLEAR ( TRUE | FALSE ) #REQUIRED CLEAR_COLOR_VALUE CDATA #REQUIRED DEPTH_CLEAR_VALUE CDATA #REQUIRED > <!ATTLIST RmBooleanVariable NAME CDATA #REQUIRED API CDATA #REQUIRED ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED VARIABLE_SEMANTIC CDATA #REQUIRED VALUE CDATA #REQUIRED > <!ATTLIST RmFloatVariable NAME CDATA #REQUIRED API CDATA #REQUIRED ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED VARIABLE_SEMANTIC CDATA #REQUIRED VALUE CDATA #REQUIRED MIN CDATA #REQUIRED MAX CDATA #REQUIRED CLAMP ( TRUE | FALSE ) #REQUIRED > <!ATTLIST RmVectorVariable NAME CDATA #REQUIRED API CDATA #REQUIRED ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED VARIABLE_SEMANTIC CDATA #REQUIRED VALUE_0 CDATA #REQUIRED VALUE_1 CDATA #REQUIRED VALUE_2 CDATA #REQUIRED VALUE_3 CDATA #REQUIRED MIN CDATA #REQUIRED MAX CDATA #REQUIRED CLAMP ( TRUE | FALSE ) #REQUIRED NORMALIZE ( TRUE | FALSE ) #REQUIRED > <!ATTLIST RmMatrixVariable NAME CDATA #REQUIRED API CDATA #REQUIRED ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED VARIABLE_SEMANTIC CDATA #REQUIRED VALUE_0 CDATA #REQUIRED VALUE_1 CDATA #REQUIRED VALUE_2 CDATA #REQUIRED VALUE_3 CDATA #REQUIRED VALUE_4 CDATA #REQUIRED VALUE_5 CDATA #REQUIRED VALUE_6 CDATA #REQUIRED VALUE_7 CDATA #REQUIRED VALUE_8 CDATA #REQUIRED VALUE_9 CDATA #REQUIRED VALUE_10 CDATA #REQUIRED VALUE_11 CDATA #REQUIRED VALUE_12 CDATA #REQUIRED VALUE_13 CDATA #REQUIRED VALUE_14 CDATA #REQUIRED VALUE_15 CDATA #REQUIRED > <!ATTLIST RmDynamicVariable NAME CDATA #REQUIRED API CDATA #REQUIRED ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED VARIABLE_SEMANTIC CDATA #REQUIRED VARIABLE_TYPE ( FLOAT | INTEGER | BOOLEAN ) #REQUIRED ROWS CDATA #REQUIRED COLUMNS CDATA #REQUIRED FIXED_SIZE ( TRUE | FALSE ) #REQUIRED MIN CDATA #REQUIRED MAX CDATA #REQUIRED CLAMP ( TRUE | FALSE ) #REQUIRED NORMALIZE ( TRUE | FALSE ) #REQUIRED > <!ATTLIST RmDynamicVariableValue ROW_INDEX CDATA #REQUIRED COLUMN_INDEX CDATA #REQUIRED VALUE CDATA #REQUIRED > <!ATTLIST RmColorVariable NAME CDATA #REQUIRED API CDATA #REQUIRED ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED VARIABLE_SEMANTIC CDATA #REQUIRED VALUE_0 CDATA #REQUIRED VALUE_1 CDATA #REQUIRED VALUE_2 CDATA #REQUIRED VALUE_3 CDATA #REQUIRED > <!ATTLIST RmIntegerVariable NAME CDATA #REQUIRED API CDATA #REQUIRED ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED VARIABLE_SEMANTIC CDATA #REQUIRED VALUE CDATA #REQUIRED MIN CDATA #REQUIRED MAX CDATA #REQUIRED CLAMP ( TRUE | FALSE ) #REQUIRED > <!ATTLIST RmStringVariable NAME CDATA #REQUIRED API CDATA #REQUIRED ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED VARIABLE_SEMANTIC CDATA #REQUIRED > <!ATTLIST Rm2DTextureVariable NAME CDATA #REQUIRED API CDATA #REQUIRED ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED VARIABLE_SEMANTIC CDATA #REQUIRED FILE_NAME CDATA #REQUIRED ORIGIN CDATA #REQUIRED > <!ATTLIST RmCubemapVariable NAME CDATA #REQUIRED API CDATA #REQUIRED ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED VARIABLE_SEMANTIC CDATA #REQUIRED FILE_NAME CDATA #REQUIRED ORIGIN CDATA #REQUIRED > <!ATTLIST Rm3DTextureVariable NAME CDATA #REQUIRED API CDATA #REQUIRED ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED VARIABLE_SEMANTIC CDATA #REQUIRED FILE_NAME CDATA #REQUIRED ORIGIN CDATA #REQUIRED > <!ATTLIST RmLightVariable NAME CDATA #REQUIRED API CDATA #REQUIRED ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED VARIABLE_SEMANTIC CDATA #REQUIRED LIGHT_ENABLED ( TRUE | FALSE ) #REQUIRED LIGHT_TYPE ( POSITIONAL | DIRECTIONAL | SPOTLIGHT ) #REQUIRED AMBIENT_0 CDATA #REQUIRED AMBIENT_1 CDATA #REQUIRED AMBIENT_2 CDATA #REQUIRED AMBIENT_3 CDATA #REQUIRED DIFFUSE_0 CDATA #REQUIRED DIFFUSE_1 CDATA #REQUIRED DIFFUSE_2 CDATA #REQUIRED DIFFUSE_3 CDATA #REQUIRED SPECULAR_0 CDATA #REQUIRED SPECULAR_1 CDATA #REQUIRED SPECULAR_2 CDATA #REQUIRED SPECULAR_3 CDATA #REQUIRED POSITION_0 CDATA #REQUIRED POSITION_1 CDATA #REQUIRED POSITION_2 CDATA #REQUIRED DIRECTION_0 CDATA #REQUIRED DIRECTION_1 CDATA #REQUIRED DIRECTION_2 CDATA #REQUIRED ATTENUATION_0 CDATA #REQUIRED ATTENUATION_1 CDATA #REQUIRED ATTENUATION_2 CDATA #REQUIRED SPOTLIGHT_THETA CDATA #REQUIRED SPOTLIGHT_PHI CDATA #REQUIRED RANGE CDATA #REQUIRED FALLOFF CDATA #REQUIRED > <!ATTLIST RmMaterialVariable NAME CDATA #REQUIRED API CDATA #REQUIRED ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED VARIABLE_SEMANTIC CDATA #REQUIRED AMBIENT_0 CDATA #REQUIRED AMBIENT_1 CDATA #REQUIRED AMBIENT_2 CDATA #REQUIRED AMBIENT_3 CDATA #REQUIRED DIFFUSE_0 CDATA #REQUIRED DIFFUSE_1 CDATA #REQUIRED DIFFUSE_2 CDATA #REQUIRED DIFFUSE_3 CDATA #REQUIRED SPECULAR_0 CDATA #REQUIRED SPECULAR_1 CDATA #REQUIRED SPECULAR_2 CDATA #REQUIRED SPECULAR_3 CDATA #REQUIRED EMISSIVE_0 CDATA #REQUIRED EMISSIVE_1 CDATA #REQUIRED EMISSIVE_2 CDATA #REQUIRED EMISSIVE_3 CDATA #REQUIRED SPECULAR_POWER CDATA #REQUIRED > <!ATTLIST RmRegistryBranch NAME CDATA #REQUIRED API CDATA #REQUIRED XML_VERSION CDATA #REQUIRED > <!ATTLIST RmPlugInData NAME CDATA #REQUIRED API CDATA #REQUIRED PLUGIN_GUID CDATA #REQUIRED > <!ATTLIST RmClipboardNode NAME CDATA #REQUIRED API CDATA #REQUIRED XML_VERSION CDATA #REQUIRED > <!ATTLIST RmCamera NAME CDATA #REQUIRED API CDATA #REQUIRED CAMERA_POSITION_X CDATA #REQUIRED CAMERA_POSITION_Y CDATA #REQUIRED CAMERA_POSITION_Z CDATA #REQUIRED LOOK_AT_VECTOR_X CDATA #REQUIRED LOOK_AT_VECTOR_Y CDATA #REQUIRED LOOK_AT_VECTOR_Z CDATA #REQUIRED UP_VECTOR_X CDATA #REQUIRED UP_VECTOR_Y CDATA #REQUIRED UP_VECTOR_Z CDATA #REQUIRED FOV CDATA #REQUIRED NEAR_CLIP_PLANE CDATA #REQUIRED FAR_CLIP_PLANE CDATA #REQUIRED > <!ATTLIST RmCameraReference NAME CDATA #REQUIRED API CDATA #REQUIRED USE_ACTIVE_CAMERA ( TRUE | FALSE ) #REQUIRED > <!ATTLIST RmShaderCode TYPE ( TEXT ) #REQUIRED > <!ATTLIST RmTextDataBlock TYPE ( TEXT ) #REQUIRED > ]> <RENDER_MONKEY> <RmEffectWorkspace NAME="Effect Workspace" API="" ACTIVE_EFFECT="Effect Workspace.ProjectiveSpotlight" VALIDATION_STRING="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="RM_REGISTRY" API="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="RM_LOCAL" API="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="RM_PLUGIN" API="" XML_VERSION="RenderMonkey 1.71"><RmTextDataBlock TYPE="TEXT"><![CDATA[ <DockingPaneLayouts><Application_Layout><Pane-1><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Artist Editor</Title><ID>1001</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>14</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>14</LastHolder></Pane-1><Pane-2><Type>0</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Title>u_blurStep</Title><ID>1100</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>8</DockingHolder><FloatingHolder>19</FloatingHolder><LastHolder>19</LastHolder></Pane-2><Pane-3><Type>2</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><Horiz>1</Horiz><Pane-1>4</Pane-1><Pane-2>5</Pane-2><Pane-3>6</Pane-3><Pane-4>7</Pane-4><Pane-5>8</Pane-5><Pane-6>9</Pane-6><Panes>6</Panes></Pane-3><Pane-4><Type>1</Type><DockingCX>434</DockingCX><DockingCY>212</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-4><Pane-5><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-5><Pane-6><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-6><Pane-7><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-7><Pane-8><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-8><Pane-9><Type>2</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><Horiz>0</Horiz><Pane-1>10</Pane-1><Pane-2>15</Pane-2><Panes>2</Panes></Pane-9><Pane-10><Type>2</Type><DockingCX>0</DockingCX><DockingCY>641</DockingCY><Horiz>1</Horiz><Pane-1>11</Pane-1><Pane-2>13</Pane-2><Pane-3>14</Pane-3><Panes>3</Panes></Pane-10><Pane-11><Type>1</Type><DockingCX>336</DockingCX><DockingCY>250</DockingCY><Selected>12</Selected><Panes>1</Panes><Pane-1>12</Pane-1></Pane-11><Pane-12><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Workspace</Title><ID>1000</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>11</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>11</LastHolder></Pane-12><Pane-13><Type>4</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY></Pane-13><Pane-14><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-14><Pane-15><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>16</Selected><Panes>1</Panes><Pane-1>16</Pane-1></Pane-15><Pane-16><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Output</Title><ID>1002</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>15</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>15</LastHolder></Pane-16><Pane-17><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>18</TopContaner><WindowRectTopPos>32</WindowRectTopPos><WindowRectBottomPos>160</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>566</WindowRectRightPos></Pane-17><Pane-18><Type>2</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Horiz>1</Horiz><Pane-1>19</Pane-1><Panes>1</Panes></Pane-18><Pane-19><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-19><Pane-20><Type>0</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Title>u_blurStep</Title><ID>1101</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>7</DockingHolder><FloatingHolder>23</FloatingHolder><LastHolder>23</LastHolder></Pane-20><Pane-21><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>22</TopContaner><WindowRectTopPos>32</WindowRectTopPos><WindowRectBottomPos>160</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>566</WindowRectRightPos></Pane-21><Pane-22><Type>2</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Horiz>1</Horiz><Pane-1>23</Pane-1><Panes>1</Panes></Pane-22><Pane-23><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-23><Pane-24><Type>0</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Title>u_blurStep</Title><ID>1102</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>6</DockingHolder><FloatingHolder>27</FloatingHolder><LastHolder>27</LastHolder></Pane-24><Pane-25><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>26</TopContaner><WindowRectTopPos>32</WindowRectTopPos><WindowRectBottomPos>160</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>566</WindowRectRightPos></Pane-25><Pane-26><Type>2</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Horiz>1</Horiz><Pane-1>27</Pane-1><Panes>1</Panes></Pane-26><Pane-27><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-27><Pane-28><Type>0</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Title>u_blurStep</Title><ID>1103</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>5</DockingHolder><FloatingHolder>31</FloatingHolder><LastHolder>31</LastHolder></Pane-28><Pane-29><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>30</TopContaner><WindowRectTopPos>32</WindowRectTopPos><WindowRectBottomPos>160</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>566</WindowRectRightPos></Pane-29><Pane-30><Type>2</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Horiz>1</Horiz><Pane-1>31</Pane-1><Panes>1</Panes></Pane-30><Pane-31><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-31><Pane-32><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>33</TopContaner><WindowRectTopPos>557</WindowRectTopPos><WindowRectBottomPos>769</WindowRectBottomPos><WindowRectLeftPos>386</WindowRectLeftPos><WindowRectRightPos>820</WindowRectRightPos></Pane-32><Pane-33><Type>2</Type><DockingCX>434</DockingCX><DockingCY>212</DockingCY><Horiz>1</Horiz><Pane-1>34</Pane-1><Panes>1</Panes></Pane-33><Pane-34><Type>1</Type><DockingCX>434</DockingCX><DockingCY>212</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-34><Pane-35><Type>0</Type><DockingCX>434</DockingCX><DockingCY>212</DockingCY><Title>u_lightPos</Title><ID>1104</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>4</DockingHolder><FloatingHolder>34</FloatingHolder><LastHolder>34</LastHolder></Pane-35><Summary><TopContainer>3</TopContainer><Client>13</Client><Panes>35</Panes></Summary></Application_Layout></DockingPaneLayouts> ]]></RmTextDataBlock> <RmRegistryBranch NAME="RmPreviewDx9Window" API="" XML_VERSION="RenderMonkey 1.71"/> <RmRegistryBranch NAME="RmPreviewGLESWindow" API="" XML_VERSION="RenderMonkey 1.71"/> <RmRegistryBranch NAME="RmPreviewGLWindow" API="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="EffectPlacementRepository" API="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="Effect Workspace.ProjectiveSpotlight" API="" XML_VERSION="RenderMonkey 1.71"> <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="39" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="2" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="483" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="483" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> </RmRegistryBranch> </RmRegistryBranch> </RmRegistryBranch> <RmRegistryBranch NAME="RmPreviewGLPreview" API="" XML_VERSION="RenderMonkey 1.71"/> <RmRegistryBranch NAME="RmLightEditor" API="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> </RmRegistryBranch> <RmRegistryBranch NAME="NoteEditor" API="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> </RmRegistryBranch> <RmRegistryBranch NAME="RmRenderableTextureEditor" API="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> </RmRegistryBranch> <RmRegistryBranch NAME="RmRenderTargetEditor" API="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> </RmRegistryBranch> <RmRegistryBranch NAME="RmRenderStateBlockEditor" API="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> </RmRegistryBranch> <RmRegistryBranch NAME="RmTextureObjectEditor" API="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="Effect Workspace.ProjectiveSpotlight.Render Object.spotLight" API="" XML_VERSION="RenderMonkey 1.71"/> </RmRegistryBranch> <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="Effect Workspace.ProjectiveSpotlight" API="" XML_VERSION="RenderMonkey 1.71"> <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="431" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="36" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1063" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="514" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> </RmRegistryBranch> </RmRegistryBranch> </RmRegistryBranch> <RmRegistryBranch NAME="RmTextureGenerator" API="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> </RmRegistryBranch> <RmRegistryBranch NAME="RmShaderEditor" API="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="Effect Workspace.ProjectiveSpotlight" API="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="Disassembly" API="" XML_VERSION="RenderMonkey 1.71"/> <RmStringVariable NAME="Editing Shader" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ Fragment Program]]></RmTextDataBlock></RmStringVariable> <RmStringVariable NAME="Editing Pass" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ Render Object]]></RmTextDataBlock></RmStringVariable> <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="650" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="650" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="429" MIN="-10" MAX="10" CLAMP="FALSE"/> </RmRegistryBranch> </RmRegistryBranch> <RmRegistryBranch NAME="RmStreamEditor" API="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="Effect Workspace.Textured.Stream Mapping" API="" XML_VERSION="RenderMonkey 1.71"> <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="258" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="128" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="851" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="270" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> </RmRegistryBranch> <RmRegistryBranch NAME="Effect Workspace.ProjectiveSpotlight.Stream Mapping" API="" XML_VERSION="RenderMonkey 1.71"> <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="344" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="128" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="851" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="270" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> </RmRegistryBranch> </RmRegistryBranch> <RmRegistryBranch NAME="RmScalarEditor" API="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> </RmRegistryBranch> <RmRegistryBranch NAME="RmDynamicVariableEditor" API="" XML_VERSION="RenderMonkey 1.71"> <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> </RmRegistryBranch> </RmRegistryBranch> <RmRegistryBranch NAME="WORKSPACE" API="" XML_VERSION="RenderMonkey 1.71"> <RmStringVariable NAME="LAST_SAVE" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ 19/1/2008 9:30:45]]></RmTextDataBlock></RmStringVariable> <RmStringVariable NAME="VERSION" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ RenderMonkey Version 1.80 (build 125)]]></RmTextDataBlock></RmStringVariable> <RmStringVariable NAME="XML_VERSION" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ RenderMonkey 1.71]]></RmTextDataBlock></RmStringVariable> <RmStringVariable NAME="BASE_WORKSPACE_PATH" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ D:\svn\redbook\Code\Chapter_13\ProjectiveSpotlight\]]></RmTextDataBlock></RmStringVariable> </RmRegistryBranch> </RmRegistryBranch> </RmRegistryBranch> <RmOpenGLESEffect NAME="ProjectiveSpotlight" API="OpenGL ES" ACTIVE_CAMERA="Camera"> <RmCamera NAME="Camera" API="" CAMERA_POSITION_X="-95.867363" CAMERA_POSITION_Y="52.315987" CAMERA_POSITION_Z="-127.439903" LOOK_AT_VECTOR_X="0.000000" LOOK_AT_VECTOR_Y="0.000000" LOOK_AT_VECTOR_Z="0.000000" UP_VECTOR_X="0.128836" UP_VECTOR_Y="0.947666" UP_VECTOR_Z="0.292114" FOV="45.000000" NEAR_CLIP_PLANE="1.000000" FAR_CLIP_PLANE="1000.000000"/> <RmMatrixVariable NAME="u_matViewProjection" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="ViewProjection" VALUE_0="-1.824085" VALUE_1="-0.155327" VALUE_2="1.308414" VALUE_3="0.000011" VALUE_4="0.311038" VALUE_5="2.287868" VALUE_6="0.705226" VALUE_7="0.000228" VALUE_8="0.571773" VALUE_9="-0.312024" VALUE_10="0.760079" VALUE_11="167.001587" VALUE_12="0.571202" VALUE_13="-0.311712" VALUE_14="0.759319" VALUE_15="167.834579"/> <RmMatrixVariable NAME="u_matProjection" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="Projection" VALUE_0="2.250190" VALUE_1="0.000000" VALUE_2="0.000000" VALUE_3="0.000000" VALUE_4="0.000000" VALUE_5="2.414213" VALUE_6="0.000000" VALUE_7="0.000000" VALUE_8="0.000000" VALUE_9="0.000000" VALUE_10="-1.001001" VALUE_11="-1.001001" VALUE_12="0.000000" VALUE_13="0.000000" VALUE_14="-1.000000" VALUE_15="0.000000"/> <RmFloatVariable NAME="u_time_0_X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="Time0_X" VALUE="41.675537" MIN="-1.000000" MAX="1.000000" CLAMP="FALSE"/> <Rm2DTextureVariable NAME="Spotlight" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" FILE_NAME="Corona.tga" ORIGIN="0"/> <Rm2DTextureVariable NAME="base" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" FILE_NAME="Terrain.tga" ORIGIN="0"/> <RmStreamMap NAME="Stream Mapping" API=""> <RmStream NAME="Stream" API="" STRIDE="32"> <RmStreamChannel NAME="Position_0" API="" DATA_SIZE="12" DATA_TYPE="2" REGISTER="0" USAGE="0" USAGE_INDEX="0" ATTRIBUTE_NAME="a_vertex"/> <RmStreamChannel NAME="TexCoord_0" API="" DATA_SIZE="8" DATA_TYPE="1" REGISTER="0" USAGE="5" USAGE_INDEX="0" ATTRIBUTE_NAME="a_texCoord0"/> <RmStreamChannel NAME="Normal_0" API="" DATA_SIZE="12" DATA_TYPE="2" REGISTER="0" USAGE="3" USAGE_INDEX="0" ATTRIBUTE_NAME="a_normal"/> </RmStream> </RmStreamMap> <RmModelData NAME="Terrrain" API="" FILE_NAME=".\Terrain.3ds" ORIENTATION="0"/> <RmGLESPass NAME="Render Object" API="OpenGL ES" PASS_INDEX="0" ENABLED="TRUE"> <RmCameraReference NAME="Camera" API="" USE_ACTIVE_CAMERA="FALSE"/> <RmModelReference NAME="Terrrain" API=""/> <RmGLESShader NAME="Fragment Program" API="OpenGL ES" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[ precision mediump float; uniform sampler2D baseMap; uniform sampler2D spotLight; varying vec2 v_texCoord; varying vec3 v_projTexCoord; varying vec3 v_normal; varying vec3 v_lightDir; void main( void ) { // Projective fetch of spotlight vec4 spotLightColor = texture2DProj( spotLight, v_projTexCoord ); // Basemap vec4 baseColor = texture2D( baseMap, v_texCoord ); // Compute N.L float nDotL = max( 0.0, -dot( v_normal, v_lightDir ) ); gl_FragColor = spotLightColor * baseColor * 2.0 * nDotL; }]]></RmShaderCode></RmGLESShader> <RmGLESShader NAME="Vertex Program" API="OpenGL ES" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[ uniform float u_time_0_X; uniform mat4 u_matProjection; uniform mat4 u_matViewProjection; attribute vec4 a_vertex; attribute vec2 a_texCoord0; attribute vec3 a_normal; varying vec2 v_texCoord; varying vec3 v_projTexCoord; varying vec3 v_normal; varying vec3 v_lightDir; void main( void ) { gl_Position = u_matViewProjection * a_vertex; v_texCoord = a_texCoord0.xy; // Compute a light position based on time vec3 lightPos; lightPos.x = cos(u_time_0_X); lightPos.z = sin(u_time_0_X); lightPos.xz = 100.0 * normalize(lightPos.xz); lightPos.y = 100.0; // Compute the light coordinate axes vec3 look = -normalize( lightPos ); vec3 right = cross( vec3( 0.0, 0.0, 1.0), look ); vec3 up = cross( look, right ); // Create a view matrix for the light mat4 lightView = mat4( right, dot( right, -lightPos ), up, dot( up, -lightPos ), look, dot( look, -lightPos), 0.0, 0.0, 0.0, 1.0 ); // Transform position into light view space vec4 objPosLight = a_vertex * lightView; // Transform position into projective light view space objPosLight = u_matProjection * objPosLight; // Create bias matrix mat3 biasMatrix = mat3( 0.5, 0.0, 0.5, 0.0, -0.5, 0.5, 0.0, 0.0, 1.0 ); // Compute projective texture coordinates v_projTexCoord = objPosLight.xyz * biasMatrix; v_lightDir = normalize(a_vertex.xyz - lightPos); v_normal = a_normal; }]]></RmShaderCode></RmGLESShader> <RmStreamMapReference NAME="Stream Mapping" API=""/> <RmTextureObject NAME="baseMap" API="OpenGL ES" STATE_INDEX="0" VERTEX_TEXTURE="FALSE"> <RmTextureReference NAME="base" API=""/> <RmState NAME="GL_TextureMinify" API="OpenGL ES" STATE="4" VALUE="6" USAGE="SAMPLER_STATE"/> <RmState NAME="GL_TextureMagnify" API="OpenGL ES" STATE="5" VALUE="1" USAGE="SAMPLER_STATE"/> </RmTextureObject> <RmTextureObject NAME="spotLight" API="OpenGL ES" STATE_INDEX="1" VERTEX_TEXTURE="FALSE"> <RmTextureReference NAME="Spotlight" API=""/> <RmState NAME="GL_TextureWrapS" API="OpenGL ES" STATE="1" VALUE="2" USAGE="SAMPLER_STATE"/> <RmState NAME="GL_TextureWrapT" API="OpenGL ES" STATE="2" VALUE="2" USAGE="SAMPLER_STATE"/> <RmState NAME="GL_TextureWrapR" API="OpenGL ES" STATE="3" VALUE="2" USAGE="SAMPLER_STATE"/> <RmState NAME="GL_TextureMinify" API="OpenGL ES" STATE="4" VALUE="1" USAGE="SAMPLER_STATE"/> <RmState NAME="GL_TextureMagnify" API="OpenGL ES" STATE="5" VALUE="1" USAGE="SAMPLER_STATE"/> </RmTextureObject> <RmSampler NAME="baseMap" API="" REGISTER="-1"/> <RmSampler NAME="spotLight" API="" REGISTER="-1"/> <RmShaderConstant NAME="u_time_0_X" API="" REGISTER="-1"/> <RmShaderConstant NAME="u_matProjection" API="" REGISTER="-1"/> <RmShaderConstant NAME="u_matViewProjection" API="" REGISTER="-1"/> </RmGLESPass> </RmOpenGLESEffect> </RmEffectWorkspace> </RENDER_MONKEY>