<?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>
