2020-10-21 17:24:01 +02:00

1493 lines
85 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- /****************************************************************************
* MeshLab o o *
* An extendible mesh processor o o *
* _ O _ *
* Copyright(C) 2005, 2009 \/)\/ *
* Visual Computing Lab /\/| *
* ISTI - Italian National Research Council | *
* \ *
* All rights reserved. *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt) *
* for more details. *
* *
****************************************************************************/ -->
<!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*,
RmTessellationNode?,
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 RmTessellationNode
(
RmPlugInData?,
RmStringVariable*
)>
<!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
>
<!ATTLIST RmTessellationNode
NAME CDATA #REQUIRED
API CDATA #REQUIRED
MIN_TESSELLATION_LEVEL CDATA #REQUIRED
MAX_TESSELLATION_LEVEL CDATA #REQUIRED
>
]>
<RENDER_MONKEY>
<RmEffectWorkspace NAME="Effect Workspace" API="" ACTIVE_EFFECT="Effect Workspace.ShadowMapping" 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>30</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>30</LastHolder></Pane-1><Pane-2><Type>0</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Title>distanceScale</Title><ID>1100</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>24</DockingHolder><FloatingHolder>35</FloatingHolder><LastHolder>35</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><Pane-7>10</Pane-7><Pane-8>11</Pane-8><Pane-9>12</Pane-9><Pane-10>13</Pane-10><Pane-11>14</Pane-11><Pane-12>15</Pane-12><Pane-13>16</Pane-13><Pane-14>17</Pane-14><Pane-15>18</Pane-15><Pane-16>19</Pane-16><Pane-17>20</Pane-17><Pane-18>21</Pane-18><Pane-19>22</Pane-19><Pane-20>23</Pane-20><Pane-21>24</Pane-21><Pane-22>25</Pane-22><Panes>22</Panes></Pane-3><Pane-4><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-4><Pane-5><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-5><Pane-6><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-6><Pane-7><Type>1</Type><DockingCX>374</DockingCX><DockingCY>183</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-7><Pane-8><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-8><Pane-9><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-9><Pane-10><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-10><Pane-11><Type>1</Type><DockingCX>374</DockingCX><DockingCY>183</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-11><Pane-12><Type>1</Type><DockingCX>331</DockingCX><DockingCY>169</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-12><Pane-13><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-13><Pane-14><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-14><Pane-15><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-15><Pane-16><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-16><Pane-17><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-17><Pane-18><Type>1</Type><DockingCX>374</DockingCX><DockingCY>183</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-18><Pane-19><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-19><Pane-20><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-20><Pane-21><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-21><Pane-22><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-22><Pane-23><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-23><Pane-24><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-24><Pane-25><Type>2</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><Horiz>0</Horiz><Pane-1>26</Pane-1><Pane-2>31</Pane-2><Panes>2</Panes></Pane-25><Pane-26><Type>2</Type><DockingCX>0</DockingCX><DockingCY>743</DockingCY><Horiz>1</Horiz><Pane-1>27</Pane-1><Pane-2>29</Pane-2><Pane-3>30</Pane-3><Panes>3</Panes></Pane-26><Pane-27><Type>1</Type><DockingCX>160</DockingCX><DockingCY>250</DockingCY><Selected>28</Selected><Panes>1</Panes><Pane-1>28</Pane-1></Pane-27><Pane-28><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Workspace</Title><ID>1000</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>27</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>27</LastHolder></Pane-28><Pane-29><Type>4</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY></Pane-29><Pane-30><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-30><Pane-31><Type>1</Type><DockingCX>250</DockingCX><DockingCY>144</DockingCY><Selected>32</Selected><Panes>1</Panes><Pane-1>32</Pane-1></Pane-31><Pane-32><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Output</Title><ID>1002</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>31</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>31</LastHolder></Pane-32><Pane-33><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>34</TopContaner><WindowRectTopPos>21</WindowRectTopPos><WindowRectBottomPos>122</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-33><Pane-34><Type>2</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Horiz>1</Horiz><Pane-1>35</Pane-1><Panes>1</Panes></Pane-34><Pane-35><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-35><Pane-36><Type>0</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Title>shadowBias</Title><ID>1101</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>23</DockingHolder><FloatingHolder>39</FloatingHolder><LastHolder>39</LastHolder></Pane-36><Pane-37><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>38</TopContaner><WindowRectTopPos>24</WindowRectTopPos><WindowRectBottomPos>125</WindowRectBottomPos><WindowRectLeftPos>4</WindowRectLeftPos><WindowRectRightPos>431</WindowRectRightPos></Pane-37><Pane-38><Type>2</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Horiz>1</Horiz><Pane-1>39</Pane-1><Panes>1</Panes></Pane-38><Pane-39><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-39><Pane-40><Type>0</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Title>backProjectionCut</Title><ID>1102</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>22</DockingHolder><FloatingHolder>43</FloatingHolder><LastHolder>43</LastHolder></Pane-40><Pane-41><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>42</TopContaner><WindowRectTopPos>24</WindowRectTopPos><WindowRectBottomPos>125</WindowRectBottomPos><WindowRectLeftPos>4</WindowRectLeftPos><WindowRectRightPos>431</WindowRectRightPos></Pane-41><Pane-42><Type>2</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Horiz>1</Horiz><Pane-1>43</Pane-1><Panes>1</Panes></Pane-42><Pane-43><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-43><Pane-44><Type>0</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Title>Ka</Title><ID>1103</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>21</DockingHolder><FloatingHolder>47</FloatingHolder><LastHolder>47</LastHolder></Pane-44><Pane-45><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>46</TopContaner><WindowRectTopPos>24</WindowRectTopPos><WindowRectBottomPos>125</WindowRectBottomPos><WindowRectLeftPos>4</WindowRectLeftPos><WindowRectRightPos>431</WindowRectRightPos></Pane-45><Pane-46><Type>2</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Horiz>1</Horiz><Pane-1>47</Pane-1><Panes>1</Panes></Pane-46><Pane-47><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-47><Pane-48><Type>0</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Title>Ks</Title><ID>1104</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>20</DockingHolder><FloatingHolder>51</FloatingHolder><LastHolder>51</LastHolder></Pane-48><Pane-49><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>50</TopContaner><WindowRectTopPos>24</WindowRectTopPos><WindowRectBottomPos>125</WindowRectBottomPos><WindowRectLeftPos>4</WindowRectLeftPos><WindowRectRightPos>431</WindowRectRightPos></Pane-49><Pane-50><Type>2</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Horiz>1</Horiz><Pane-1>51</Pane-1><Panes>1</Panes></Pane-50><Pane-51><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-51><Pane-52><Type>0</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Title>Kd</Title><ID>1105</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>19</DockingHolder><FloatingHolder>55</FloatingHolder><LastHolder>55</LastHolder></Pane-52><Pane-53><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>54</TopContaner><WindowRectTopPos>24</WindowRectTopPos><WindowRectBottomPos>125</WindowRectBottomPos><WindowRectLeftPos>4</WindowRectLeftPos><WindowRectRightPos>431</WindowRectRightPos></Pane-53><Pane-54><Type>2</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Horiz>1</Horiz><Pane-1>55</Pane-1><Panes>1</Panes></Pane-54><Pane-55><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-55><Pane-56><Type>0</Type><DockingCX>374</DockingCX><DockingCY>183</DockingCY><Title>lightPosition</Title><ID>1106</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>18</DockingHolder><FloatingHolder>59</FloatingHolder><LastHolder>59</LastHolder></Pane-56><Pane-57><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>58</TopContaner><WindowRectTopPos>21</WindowRectTopPos><WindowRectBottomPos>204</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>374</WindowRectRightPos></Pane-57><Pane-58><Type>2</Type><DockingCX>374</DockingCX><DockingCY>183</DockingCY><Horiz>1</Horiz><Pane-1>59</Pane-1><Panes>1</Panes></Pane-58><Pane-59><Type>1</Type><DockingCX>374</DockingCX><DockingCY>183</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-59><Pane-60><Type>0</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Title>backProjectionCut</Title><ID>1107</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>17</DockingHolder><FloatingHolder>63</FloatingHolder><LastHolder>63</LastHolder></Pane-60><Pane-61><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>62</TopContaner><WindowRectTopPos>21</WindowRectTopPos><WindowRectBottomPos>122</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-61><Pane-62><Type>2</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Horiz>1</Horiz><Pane-1>63</Pane-1><Panes>1</Panes></Pane-62><Pane-63><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-63><Pane-64><Type>0</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Title>shadowBias</Title><ID>1108</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>16</DockingHolder><FloatingHolder>67</FloatingHolder><LastHolder>67</LastHolder></Pane-64><Pane-65><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>66</TopContaner><WindowRectTopPos>21</WindowRectTopPos><WindowRectBottomPos>122</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-65><Pane-66><Type>2</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Horiz>1</Horiz><Pane-1>67</Pane-1><Panes>1</Panes></Pane-66><Pane-67><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-67><Pane-68><Type>0</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Title>Ka</Title><ID>1109</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>15</DockingHolder><FloatingHolder>71</FloatingHolder><LastHolder>71</LastHolder></Pane-68><Pane-69><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>70</TopContaner><WindowRectTopPos>21</WindowRectTopPos><WindowRectBottomPos>122</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-69><Pane-70><Type>2</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Horiz>1</Horiz><Pane-1>71</Pane-1><Panes>1</Panes></Pane-70><Pane-71><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-71><Pane-72><Type>0</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Title>Kd</Title><ID>1110</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>14</DockingHolder><FloatingHolder>75</FloatingHolder><LastHolder>75</LastHolder></Pane-72><Pane-73><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>74</TopContaner><WindowRectTopPos>21</WindowRectTopPos><WindowRectBottomPos>122</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-73><Pane-74><Type>2</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Horiz>1</Horiz><Pane-1>75</Pane-1><Panes>1</Panes></Pane-74><Pane-75><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-75><Pane-76><Type>0</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Title>Ks</Title><ID>1111</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>13</DockingHolder><FloatingHolder>79</FloatingHolder><LastHolder>79</LastHolder></Pane-76><Pane-77><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>78</TopContaner><WindowRectTopPos>21</WindowRectTopPos><WindowRectBottomPos>122</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-77><Pane-78><Type>2</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Horiz>1</Horiz><Pane-1>79</Pane-1><Panes>1</Panes></Pane-78><Pane-79><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-79><Pane-80><Type>0</Type><DockingCX>331</DockingCX><DockingCY>169</DockingCY><Title>lightPosition</Title><ID>1112</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>12</DockingHolder><FloatingHolder>83</FloatingHolder><LastHolder>83</LastHolder></Pane-80><Pane-81><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>82</TopContaner><WindowRectTopPos>21</WindowRectTopPos><WindowRectBottomPos>190</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>331</WindowRectRightPos></Pane-81><Pane-82><Type>2</Type><DockingCX>331</DockingCX><DockingCY>169</DockingCY><Horiz>1</Horiz><Pane-1>83</Pane-1><Panes>1</Panes></Pane-82><Pane-83><Type>1</Type><DockingCX>331</DockingCX><DockingCY>169</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-83><Pane-84><Type>0</Type><DockingCX>374</DockingCX><DockingCY>183</DockingCY><Title>lightPosition</Title><ID>1113</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>11</DockingHolder><FloatingHolder>87</FloatingHolder><LastHolder>87</LastHolder></Pane-84><Pane-85><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>86</TopContaner><WindowRectTopPos>21</WindowRectTopPos><WindowRectBottomPos>204</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>374</WindowRectRightPos></Pane-85><Pane-86><Type>2</Type><DockingCX>374</DockingCX><DockingCY>183</DockingCY><Horiz>1</Horiz><Pane-1>87</Pane-1><Panes>1</Panes></Pane-86><Pane-87><Type>1</Type><DockingCX>374</DockingCX><DockingCY>183</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-87><Pane-88><Type>0</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Title>Ka</Title><ID>1114</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>10</DockingHolder><FloatingHolder>91</FloatingHolder><LastHolder>91</LastHolder></Pane-88><Pane-89><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>90</TopContaner><WindowRectTopPos>21</WindowRectTopPos><WindowRectBottomPos>122</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-89><Pane-90><Type>2</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Horiz>1</Horiz><Pane-1>91</Pane-1><Panes>1</Panes></Pane-90><Pane-91><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-91><Pane-92><Type>0</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Title>Ks</Title><ID>1115</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>9</DockingHolder><FloatingHolder>95</FloatingHolder><LastHolder>95</LastHolder></Pane-92><Pane-93><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>94</TopContaner><WindowRectTopPos>21</WindowRectTopPos><WindowRectBottomPos>122</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-93><Pane-94><Type>2</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Horiz>1</Horiz><Pane-1>95</Pane-1><Panes>1</Panes></Pane-94><Pane-95><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-95><Pane-96><Type>0</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Title>Kd</Title><ID>1116</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>8</DockingHolder><FloatingHolder>99</FloatingHolder><LastHolder>99</LastHolder></Pane-96><Pane-97><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>98</TopContaner><WindowRectTopPos>21</WindowRectTopPos><WindowRectBottomPos>122</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-97><Pane-98><Type>2</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Horiz>1</Horiz><Pane-1>99</Pane-1><Panes>1</Panes></Pane-98><Pane-99><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-99><Pane-100><Type>0</Type><DockingCX>374</DockingCX><DockingCY>183</DockingCY><Title>lightPosition</Title><ID>1117</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>7</DockingHolder><FloatingHolder>103</FloatingHolder><LastHolder>103</LastHolder></Pane-100><Pane-101><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>102</TopContaner><WindowRectTopPos>455</WindowRectTopPos><WindowRectBottomPos>638</WindowRectBottomPos><WindowRectLeftPos>751</WindowRectLeftPos><WindowRectRightPos>1125</WindowRectRightPos></Pane-101><Pane-102><Type>2</Type><DockingCX>374</DockingCX><DockingCY>183</DockingCY><Horiz>1</Horiz><Pane-1>103</Pane-1><Panes>1</Panes></Pane-102><Pane-103><Type>1</Type><DockingCX>374</DockingCX><DockingCY>183</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-103><Pane-104><Type>0</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Title>Ks</Title><ID>1118</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>6</DockingHolder><FloatingHolder>107</FloatingHolder><LastHolder>107</LastHolder></Pane-104><Pane-105><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>106</TopContaner><WindowRectTopPos>21</WindowRectTopPos><WindowRectBottomPos>122</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-105><Pane-106><Type>2</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Horiz>1</Horiz><Pane-1>107</Pane-1><Panes>1</Panes></Pane-106><Pane-107><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-107><Pane-108><Type>0</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Title>Kd</Title><ID>1119</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>5</DockingHolder><FloatingHolder>111</FloatingHolder><LastHolder>111</LastHolder></Pane-108><Pane-109><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>110</TopContaner><WindowRectTopPos>21</WindowRectTopPos><WindowRectBottomPos>122</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-109><Pane-110><Type>2</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Horiz>1</Horiz><Pane-1>111</Pane-1><Panes>1</Panes></Pane-110><Pane-111><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-111><Pane-112><Type>0</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Title>Ka</Title><ID>1120</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>4</DockingHolder><FloatingHolder>115</FloatingHolder><LastHolder>115</LastHolder></Pane-112><Pane-113><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>114</TopContaner><WindowRectTopPos>21</WindowRectTopPos><WindowRectBottomPos>122</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-113><Pane-114><Type>2</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Horiz>1</Horiz><Pane-1>115</Pane-1><Panes>1</Panes></Pane-114><Pane-115><Type>1</Type><DockingCX>427</DockingCX><DockingCY>101</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-115><Summary><TopContainer>3</TopContainer><Client>29</Client><Panes>115</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="RmPreviewGLPreview" 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.ShadowMapping" API="" XML_VERSION="RenderMonkey 1.71">
<RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/>
<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="637" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="697" 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="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 NAME="Effect Workspace.ShadowMapping.shadowTex" API="" XML_VERSION="RenderMonkey 1.71">
<RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="679" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="385" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="210" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="355" 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>
<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 NAME="Effect Workspace.ShadowMapping.Depth.shadowTex" API="" XML_VERSION="RenderMonkey 1.71">
<RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="211" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="111" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="239" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="237" 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>
<RmRegistryBranch NAME="RmShaderEditor" API="" XML_VERSION="RenderMonkey 1.71">
<RmRegistryBranch NAME="Effect Workspace.ShadowMapping" 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[
Vertex Program]]></RmTextDataBlock></RmStringVariable>
<RmStringVariable NAME="Editing Pass" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[
Depth]]></RmTextDataBlock></RmStringVariable>
<RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="6" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="690" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="702" 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="412" MIN="-10" MAX="10" CLAMP="FALSE"/>
</RmRegistryBranch>
</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 NAME="Effect Workspace.ShadowMapping" API="" XML_VERSION="RenderMonkey 1.71">
<RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="89" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="112" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="867" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="443" 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>
<RmRegistryBranch NAME="RmTextureObjectEditor" 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 NAME="Effect Workspace.ShadowMapping" API="" XML_VERSION="RenderMonkey 1.71">
<RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="165" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="59" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="867" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="443" 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>
<RmRegistryBranch NAME="RmTessellationNodeEditorDlg" API="" XML_VERSION="RenderMonkey 1.71">
<RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/>
</RmRegistryBranch>
<RmRegistryBranch NAME="RmTextureGenerator" API="" XML_VERSION="RenderMonkey 1.71">
<RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/>
</RmRegistryBranch>
<RmRegistryBranch NAME="RmStreamEditor" API="" XML_VERSION="RenderMonkey 1.71">
<RmRegistryBranch NAME="Effect Workspace.Default_OpenGL_Effect.Stream Mapping" API="" XML_VERSION="RenderMonkey 1.71">
<RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="211" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="111" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="641" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="228" 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.ShadowMapping.Stream Mapping" API="" XML_VERSION="RenderMonkey 1.71">
<RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="211" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="111" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="641" MIN="-10" MAX="10" CLAMP="FALSE"/>
<RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="228" 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 NAME="Effect Workspace.ShadowMapping.Ks" API="" XML_VERSION="RenderMonkey 1.71">
<RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1118" MIN="-10" MAX="10" CLAMP="FALSE"/>
</RmRegistryBranch>
<RmRegistryBranch NAME="Effect Workspace.ShadowMapping.Kd" API="" XML_VERSION="RenderMonkey 1.71">
<RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1119" MIN="-10" MAX="10" CLAMP="FALSE"/>
</RmRegistryBranch>
<RmRegistryBranch NAME="Effect Workspace.ShadowMapping.Ka" API="" XML_VERSION="RenderMonkey 1.71">
<RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1120" MIN="-10" MAX="10" CLAMP="FALSE"/>
</RmRegistryBranch>
</RmRegistryBranch>
</RmRegistryBranch>
<RmRegistryBranch NAME="RmVectorEditor" API="" XML_VERSION="RenderMonkey 1.71">
<RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71">
<RmRegistryBranch NAME="Effect Workspace.ShadowMapping.lightPosition" API="" XML_VERSION="RenderMonkey 1.71">
<RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1117" MIN="-10" MAX="10" CLAMP="FALSE"/>
</RmRegistryBranch>
</RmRegistryBranch>
</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[
23/9/2008 13:34:15]]></RmTextDataBlock></RmStringVariable>
<RmStringVariable NAME="VERSION" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[
RenderMonkey Version 1.81 (build 280)]]></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[
C:\Documents and Settings\BELiAL\Desktop\]]></RmTextDataBlock></RmStringVariable>
</RmRegistryBranch>
</RmRegistryBranch>
</RmRegistryBranch>
<RmOpenGLEffect NAME="ShadowMapping" API="OpenGL" ACTIVE_CAMERA="">
<RmVectorVariable NAME="lightPosition" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE_0="20.000000" VALUE_1="110.000000" VALUE_2="50.000000" VALUE_3="1.000000" MIN="-10.000000" MAX="10.000000" CLAMP="FALSE" NORMALIZE="FALSE"/>
<RmFloatVariable NAME="Ka" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0.200000" MIN="-1.000000" MAX="1.000000" CLAMP="FALSE"/>
<RmFloatVariable NAME="Ks" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0.520000" MIN="-1.000000" MAX="1.000000" CLAMP="FALSE"/>
<RmFloatVariable NAME="Kd" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0.700000" MIN="-1.000000" MAX="1.000000" CLAMP="FALSE"/>
<Rm2DTextureVariable NAME="Wood" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" FILE_NAME="..\textures\wood.jpg" ORIGIN="0"/>
<Rm2DTextureVariable NAME="Platform" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" FILE_NAME="..\textures\rockbump.jpg" ORIGIN="0"/>
<Rm2DTextureVariable NAME="rockbump" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" FILE_NAME="..\textures\rockbump.tga" ORIGIN="0"/>
<RmRenderableTexture NAME="shadowTex" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" FILE_NAME="" ORIGIN="0" WIDTH="1024" HEIGHT="1024" FORMAT="21" USE_VIEWPORT_DIMENSIONS="FALSE" GENERATE_MIPMAPS="FALSE" WIDTH_RATIO="1.000000" HEIGHT_RATIO="1.000000"/>
<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="rm_Vertex"/>
<RmStreamChannel NAME="Normal_0" API="" DATA_SIZE="12" DATA_TYPE="2" REGISTER="0" USAGE="3" USAGE_INDEX="0" ATTRIBUTE_NAME="rm_Normal"/>
<RmStreamChannel NAME="TexCoord_0" API="" DATA_SIZE="8" DATA_TYPE="1" REGISTER="0" USAGE="5" USAGE_INDEX="0" ATTRIBUTE_NAME="rm_TexCoord0"/>
</RmStream>
</RmStreamMap>
<RmModelData NAME="Disc" API="" FILE_NAME="..\..\..\Program Files\AMD\RenderMonkey 1.81\Examples\Media\Models\Disc.3ds" ORIENTATION="0"/>
<RmModelData NAME="Model" API="" FILE_NAME="..\..\..\Program Files\AMD\RenderMonkey 1.81\Examples\Media\Models\Teapot.3ds" ORIENTATION="0"/>
<RmGLPass NAME="Object" API="OpenGL" PASS_INDEX="1" ENABLED="TRUE">
<RmModelReference NAME="Model" API=""/>
<RmGLShader NAME="Vertex Program" API="OpenGL" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[
varying vec3 lightVecDist;
varying vec3 normalVec;
varying vec3 lightVec;
varying vec3 viewVec;
void main(void)
{
gl_Position = ftransform();
gl_TexCoord[0] = gl_MultiTexCoord0;
vec4 lightPosition = gl_ModelViewMatrixInverse * gl_LightSource[0].position * 2.0;
// lighting is performed in eye space
vec4 ePos = gl_ModelViewMatrix * gl_Vertex;
vec4 eLight = gl_ModelViewMatrix * lightPosition;
vec3 eNorm = gl_NormalMatrix * gl_Normal;
normalVec = eNorm;
lightVec = eLight.xyz - ePos.xyz;
viewVec = /* (0,0,0) - we're in eye space */ - ePos.xyz;
// reproduce gluLookAt() behaviour
vec3 newZ = normalize(-lightPosition.xyz);
vec3 newX = cross(newZ, vec3(0.0, 1.0, 0.0));
vec3 newY = cross(newX, newZ);
mat4 toLightSpaceRot = mat4(
newX.x, newY.x, -newZ.x, 0.0,
newX.y, newY.y, -newZ.y, 0.0,
newX.z, newY.z, -newZ.z, 0.0,
0.0, 0.0, 0.0, 1.0
);
mat4 toLightSpaceTr = mat4(
1.0, 0.0, 0.0, 0.0,
0.0, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
-lightPosition.xyz, 1.0
);
// reproduce gluPerspective behavior
float f = 1.0 / tan(radians(30.0));
float zFar = 500.0;
float zNear = 0.1;
float a = (zFar + zNear) / (zNear - zFar);
float b = (2.0 * zFar * zNear) / (zNear - zFar);
mat4 toLightProject = mat4(
f, 0.0, 0.0, 0.0,
0.0, f, 0.0, 0.0,
0.0, 0.0, a, -1.0,
0.0, 0.0, b, 0.0
);
// vertex translated and rotated in light space, then projected
vec4 lPos = toLightProject *
toLightSpaceRot * toLightSpaceTr *
gl_Vertex;
// glTexGen basically do:
// T = S * Pp * Vp * M * vertex
//
// vertex from local to world space (M)
// then to Light (projector) space (Vp)
// then projected (Pp)
// and at this point adjust to get texcoord from [-1, 1] to [0, 1] range (S)
mat4 texAdjTrSc = mat4(
0.5, 0.0, 0.0, 0.0,
0.0, 0.5, 0.0, 0.0,
0.0, 0.0, 0.5, 0.0,
0.5, 0.5, 0.5, 1.0
);
gl_TexCoord[1] = texAdjTrSc * lPos;
// we also need world space light vector
lightVecDist = (lightPosition.xyz - gl_Vertex.xyz) * (1.0 / zFar);
}]]></RmShaderCode></RmGLShader>
<RmGLShader NAME="Fragment Program" API="OpenGL" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[
uniform sampler2D shadowMap;
uniform sampler2D modelTexture;
uniform float Ka;
uniform float Kd;
uniform float Ks;
varying vec3 lightVecDist;
varying vec3 normalVec;
varying vec3 lightVec;
varying vec3 viewVec;
void main(void)
{
// normalize vectors for lighting
vec3 nNormal = normalize(normalVec);
vec3 nLight = normalize(lightVec);
vec3 nView = normalize(viewVec);
// base texture color
vec4 modelColor = texture2D(modelTexture, gl_TexCoord[0].st);
// diffuse and specular contribution
float diffuse = clamp(dot(nLight, nNormal), 0.0, 1.0);
float specular = pow(clamp(dot(reflect(-nView, nNormal), nLight), 0.0, 1.0), 16.0);
// get current fragment distance from light
float depth = length(lightVecDist);
// retrieve stored depth from depthmap
// this is the same as:
// float sDepth = texture2D(shadowMap, gl_TexCoord[1].st/gl_TexCoord[1].q).r;
float sDepth = texture2DProj(shadowMap, gl_TexCoord[1]).r;
// compare distances to determine if fragment should be
// lit or shadowed
float shadow = (depth < sDepth + 0.004)? 1.0 : 0.0;
// if fragment is shadowed, do not add specular and diffuse
// contribution
gl_FragColor = Ka * modelColor +
(Kd * diffuse * modelColor + Ks * specular) * shadow;
}]]></RmShaderCode></RmGLShader>
<RmStreamMapReference NAME="Stream Mapping" API=""/>
<RmTextureObject NAME="shadowMap" API="OpenGL" STATE_INDEX="0" VERTEX_TEXTURE="FALSE">
<RmTextureReference NAME="shadowTex" API=""/>
<RmState NAME="GL_TextureMinify" API="OpenGL" STATE="4" VALUE="1" USAGE="SAMPLER_STATE"/>
<RmState NAME="GL_TextureMagnify" API="OpenGL" STATE="5" VALUE="1" USAGE="SAMPLER_STATE"/>
<RmState NAME="GL_TextureWrapS" API="OpenGL" STATE="1" VALUE="1" USAGE="SAMPLER_STATE"/>
<RmState NAME="GL_TextureWrapT" API="OpenGL" STATE="2" VALUE="1" USAGE="SAMPLER_STATE"/>
<RmState NAME="GL_TextureWrapR" API="OpenGL" STATE="3" VALUE="1" USAGE="SAMPLER_STATE"/>
</RmTextureObject>
<RmTextureObject NAME="modelTexture" API="OpenGL" STATE_INDEX="1" VERTEX_TEXTURE="FALSE">
<RmTextureReference NAME="Wood" API=""/>
</RmTextureObject>
<RmSampler NAME="modelTexture" API="" REGISTER="-1"/>
<RmSampler NAME="shadowMap" API="" REGISTER="-1"/>
<RmShaderConstant NAME="Ks" API="" REGISTER="-1"/>
<RmShaderConstant NAME="lightPosition" API="" REGISTER="-1"/>
<RmShaderConstant NAME="Ka" API="" REGISTER="-1"/>
<RmShaderConstant NAME="Kd" API="" REGISTER="-1"/>
</RmGLPass>
<RmGLPass NAME="Platform" API="OpenGL" PASS_INDEX="2" ENABLED="FALSE">
<RmModelReference NAME="Disc" API=""/>
<RmGLShader NAME="Vertex Program" API="OpenGL" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[
uniform vec4 lightPosition;
varying vec3 lightVecDist;
varying vec3 normalVec;
varying vec3 lightVec;
varying vec3 viewVec;
void main(void)
{
// flatten and enlarge model
vec4 pPos = gl_Vertex;
pPos.xyz = pPos.xyz * 5.0;
pPos.y = -40.0;
gl_Position = gl_ModelViewProjectionMatrix * pPos;
gl_TexCoord[0] = gl_MultiTexCoord0;
// lighting is performed in eye space
vec4 ePos = gl_ModelViewMatrix * gl_Vertex;
vec4 eLight = gl_ModelViewMatrix * lightPosition;
vec3 eNorm = gl_NormalMatrix * gl_Normal;
normalVec = eNorm;
lightVec = eLight.xyz - ePos.xyz;
viewVec = /* (0,0,0) - we're in eye space */ - ePos.xyz;
// reproduce gluLookAt() behaviour
vec3 newZ = normalize(-lightPosition.xyz);
vec3 newX = cross(newZ, vec3(0.0, 1.0, 0.0));
vec3 newY = cross(newX, newZ);
mat4 toLightSpaceRot = mat4(
newX.x, newY.x, -newZ.x, 0.0,
newX.y, newY.y, -newZ.y, 0.0,
newX.z, newY.z, -newZ.z, 0.0,
0.0, 0.0, 0.0, 1.0
);
mat4 toLightSpaceTr = mat4(
1.0, 0.0, 0.0, 0.0,
0.0, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
-lightPosition.xyz, 1.0
);
// reproduce gluPerspective behavior
float f = 1.0 / tan(radians(30.0));
float zFar = 500.0;
float zNear = 0.1;
float a = (zFar + zNear) / (zNear - zFar);
float b = (2.0 * zFar * zNear) / (zNear - zFar);
mat4 toLightProject = mat4(
f, 0.0, 0.0, 0.0,
0.0, f, 0.0, 0.0,
0.0, 0.0, a, -1.0,
0.0, 0.0, b, 0.0
);
// vertex translated and rotated in light space, then projected
// (we should use light own projection matrix, but in practice for
// this simple scene, the gl projection mat. will suffice)
vec4 lPos = toLightProject *
toLightSpaceRot * toLightSpaceTr *
pPos;
// glTexGen basically do:
// T = S * Pp * Vp * M * vertex
//
// vertex from local to world space (M)
// then to Light (projector) space (Vp)
// then projected (Pp)
// and at this point adjust to get texcoord from [-1, 1] to [0, 1] range (S)
mat4 texAdjTrSc = mat4(
0.5, 0.0, 0.0, 0.0,
0.0, 0.5, 0.0, 0.0,
0.0, 0.0, 0.5, 0.0,
0.5, 0.5, 0.5, 1.0
);
gl_TexCoord[1] = texAdjTrSc * lPos;
// we also need world space light vector
lightVecDist = (lightPosition.xyz - gl_Vertex.xyz) * (1.0 / zFar);
}]]></RmShaderCode></RmGLShader>
<RmGLShader NAME="Fragment Program" API="OpenGL" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[
uniform sampler2D shadowMap;
uniform sampler2D modelTexture;
uniform sampler2D modelTextureBump;
uniform float Ka;
uniform float Kd;
uniform float Ks;
varying vec3 lightVecDist;
varying vec3 normalVec;
varying vec3 lightVec;
varying vec3 viewVec;
void main(void)
{
// bonus: bumpmap surface :)
vec3 normOffset = texture2D(modelTextureBump, gl_TexCoord[0].st).rgb;
// normalize vectors for lighting
vec3 nNormal = normalize(normalVec + normOffset);
vec3 nLight = normalize(lightVec);
vec3 nView = normalize(viewVec);
// base texture color
vec4 modelColor = texture2D(modelTexture, gl_TexCoord[0].st);
// diffuse and specular contribution
float diffuse = clamp(dot(nLight, nNormal), 0.0, 1.0);
float specular = pow(clamp(dot(reflect(-nView, nNormal), nLight), 0.0, 1.0), 16.0);
// get current fragment distance from light
float depth = length(lightVecDist);
// retrieve stored depth from depthmap
// this is the same as:
// float sDepth = texture2D(shadowMap, gl_TexCoord[1].st/gl_TexCoord[1].q).r;
float sDepth = texture2DProj(shadowMap, gl_TexCoord[1]).r;
// compare distances to determine if fragment should be
// lit or shadowed
float shadow = (depth < sDepth)? 1.0 : 0.0;
// if fragment is shadowed, do not add specular and diffuse
// contribution
gl_FragColor = Ka * modelColor +
(Kd * diffuse * modelColor + Ks * specular) * shadow;
}]]></RmShaderCode></RmGLShader>
<RmStreamMapReference NAME="Stream Mapping" API=""/>
<RmTextureObject NAME="shadowMap" API="OpenGL" STATE_INDEX="0" VERTEX_TEXTURE="FALSE">
<RmTextureReference NAME="shadowTex" API=""/>
<RmState NAME="GL_TextureWrapS" API="OpenGL" STATE="1" VALUE="1" USAGE="SAMPLER_STATE"/>
<RmState NAME="GL_TextureWrapT" API="OpenGL" STATE="2" VALUE="1" USAGE="SAMPLER_STATE"/>
<RmState NAME="GL_TextureWrapR" API="OpenGL" STATE="3" VALUE="1" USAGE="SAMPLER_STATE"/>
<RmState NAME="GL_TextureMinify" API="OpenGL" STATE="4" VALUE="1" USAGE="SAMPLER_STATE"/>
<RmState NAME="GL_TextureMagnify" API="OpenGL" STATE="5" VALUE="1" USAGE="SAMPLER_STATE"/>
</RmTextureObject>
<RmTextureObject NAME="modelTexture" API="OpenGL" STATE_INDEX="1" VERTEX_TEXTURE="FALSE">
<RmTextureReference NAME="Platform" API=""/>
</RmTextureObject>
<RmTextureObject NAME="modelTextureBump" API="OpenGL" STATE_INDEX="2" VERTEX_TEXTURE="FALSE">
<RmTextureReference NAME="rockbump" API=""/>
</RmTextureObject>
<RmSampler NAME="modelTexture" API="" REGISTER="-1"/>
<RmSampler NAME="modelTextureBump" API="" REGISTER="-1"/>
<RmSampler NAME="shadowMap" API="" REGISTER="-1"/>
<RmShaderConstant NAME="lightPosition" API="" REGISTER="-1"/>
<RmShaderConstant NAME="Ka" API="" REGISTER="-1"/>
<RmShaderConstant NAME="Kd" API="" REGISTER="-1"/>
<RmShaderConstant NAME="Ks" API="" REGISTER="-1"/>
</RmGLPass>
<RmGLPass NAME="Depth" API="OpenGL" PASS_INDEX="0" ENABLED="TRUE">
<RmModelReference NAME="Model" API=""/>
<RmGLShader NAME="Vertex Program" API="OpenGL" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[
varying vec3 lightVec;
void main(void)
{
vec4 lightPosition = gl_ModelViewMatrixInverse * gl_LightSource[0].position * 2.0;
// reproduce gluLookAt() behavior
vec3 newZ = normalize(-lightPosition.xyz);
vec3 newX = cross(newZ, vec3(0.0, 1.0, 0.0));
vec3 newY = cross(newX, newZ);
mat4 toLightSpaceRot = mat4(
newX.x, newY.x, -newZ.x, 0.0,
newX.y, newY.y, -newZ.y, 0.0,
newX.z, newY.z, -newZ.z, 0.0,
0.0, 0.0, 0.0, 1.0
);
mat4 toLightSpaceTr = mat4(
1.0, 0.0, 0.0, 0.0,
0.0, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
-lightPosition.xyz, 1.0
);
// reproduce gluPerspective behavior
float f = 1.0 / tan(radians(30.0));
float zFar = 500.0;
float zNear = 0.1;
float a = (zFar + zNear) / (zNear - zFar);
float b = (2.0 * zFar * zNear) / (zNear - zFar);
mat4 toLightProject = mat4(
f, 0.0, 0.0, 0.0,
0.0, f, 0.0, 0.0,
0.0, 0.0, a, -1.0,
0.0, 0.0, b, 0.0
);
// vertex translated and rotated in light space, then projected
gl_Position = toLightProject *
toLightSpaceRot * toLightSpaceTr *
gl_Vertex;
// we need vertex distance from light source
lightVec = (lightPosition.xyz - gl_Vertex.xyz) * (1.0 / zFar);
}]]></RmShaderCode></RmGLShader>
<RmGLShader NAME="Fragment Program" API="OpenGL" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[
varying vec3 lightVec;
void main(void)
{
gl_FragColor = vec4(length(lightVec));
}]]></RmShaderCode></RmGLShader>
<RmRenderTarget NAME="shadowTex" API="" INDEX="0" RENDER_TO_SCREEN="FALSE" COLOR_CLEAR="TRUE" DEPTH_CLEAR="TRUE" CLEAR_COLOR_VALUE="-1" DEPTH_CLEAR_VALUE="1.000000"/>
<RmStreamMapReference NAME="Stream Mapping" API=""/>
<RmShaderConstant NAME="lightPosition" API="" REGISTER="-1"/>
</RmGLPass>
</RmOpenGLEffect>
</RmEffectWorkspace>
</RENDER_MONKEY>