summaryrefslogtreecommitdiffstats
path: root/third_party/gles2_book/Chapter_13/PerFragmentLighting/PerFragmentLighting.rfx
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/gles2_book/Chapter_13/PerFragmentLighting/PerFragmentLighting.rfx')
-rw-r--r--third_party/gles2_book/Chapter_13/PerFragmentLighting/PerFragmentLighting.rfx1137
1 files changed, 1137 insertions, 0 deletions
diff --git a/third_party/gles2_book/Chapter_13/PerFragmentLighting/PerFragmentLighting.rfx b/third_party/gles2_book/Chapter_13/PerFragmentLighting/PerFragmentLighting.rfx
new file mode 100644
index 0000000..58c3b9f
--- /dev/null
+++ b/third_party/gles2_book/Chapter_13/PerFragmentLighting/PerFragmentLighting.rfx
@@ -0,0 +1,1137 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!DOCTYPE RENDER_MONKEY [
+ <!ELEMENT RENDER_MONKEY
+ (
+ RmEffectWorkspace |
+ RmRegistryBranch |
+ RmClipboardNode
+ )?>
+
+ <!ELEMENT RmEffectWorkspace
+ (
+ RmRegistryBranch?,
+ RmPlugInData?,
+ RmStringVariable*,
+ (
+ ( RmDirectXEffect, RmOpenGLEffect?, RmOpenGLESEffect? ) |
+ ( RmOpenGLEffect, RmDirectXEffect?, RmOpenGLESEffect? ) |
+ ( RmOpenGLESEffect, RmDirectXEffect?, RmOpenGLEffect? )
+ )?,
+ (
+ RmBooleanVariable |
+ RmIntegerVariable |
+ RmFloatVariable |
+ RmVectorVariable |
+ RmMatrixVariable |
+ RmDynamicVariable |
+ RmColorVariable |
+ Rm2DTextureVariable |
+ RmCubemapVariable |
+ Rm3DTextureVariable |
+ RmLightVariable |
+ RmMaterialVariable |
+ RmRenderableTexture |
+ RmStreamMap |
+ RmModelData |
+ RmEffectGroup
+ )*
+ )>
+
+ <!ELEMENT RmEffectGroup
+ (
+ RmPlugInData?,
+ (
+ RmStringVariable |
+ RmDirectXEffect |
+ RmOpenGLEffect |
+ RmOpenGLESEffect |
+ RmBooleanVariable |
+ RmIntegerVariable |
+ RmFloatVariable |
+ RmVectorVariable |
+ RmMatrixVariable |
+ RmDynamicVariable |
+ RmColorVariable |
+ Rm2DTextureVariable |
+ RmCubemapVariable |
+ Rm3DTextureVariable |
+ RmLightVariable |
+ RmMaterialVariable |
+ RmRenderableTexture |
+ RmStreamMap |
+ RmModelData
+ )*
+ )>
+
+ <!ELEMENT RmDirectXEffect
+ (
+ RmPlugInData?,
+ (
+ RmStringVariable |
+ RmCamera |
+ RmBooleanVariable |
+ RmIntegerVariable |
+ RmFloatVariable |
+ RmVectorVariable |
+ RmMatrixVariable |
+ RmDynamicVariable |
+ RmColorVariable |
+ Rm2DTextureVariable |
+ RmCubemapVariable |
+ Rm3DTextureVariable |
+ RmLightVariable |
+ RmMaterialVariable |
+ RmRenderableTexture |
+ RmStreamMap |
+ RmModelData |
+ RmPass
+ )*
+ )>
+
+ <!ELEMENT RmOpenGLEffect
+ (
+ RmPlugInData?,
+ (
+ RmStringVariable |
+ RmCamera |
+ RmBooleanVariable |
+ RmIntegerVariable |
+ RmFloatVariable |
+ RmVectorVariable |
+ RmMatrixVariable |
+ RmDynamicVariable |
+ RmColorVariable |
+ Rm2DTextureVariable |
+ RmCubemapVariable |
+ Rm3DTextureVariable |
+ RmLightVariable |
+ RmMaterialVariable |
+ RmRenderableTexture |
+ RmStreamMap |
+ RmModelData |
+ RmGLPass
+ )*
+ )>
+
+ <!ELEMENT RmOpenGLESEffect
+ (
+ RmPlugInData?,
+ (
+ RmStringVariable |
+ RmCamera |
+ RmBooleanVariable |
+ RmIntegerVariable |
+ RmFloatVariable |
+ RmVectorVariable |
+ RmMatrixVariable |
+ RmDynamicVariable |
+ RmColorVariable |
+ Rm2DTextureVariable |
+ RmCubemapVariable |
+ Rm3DTextureVariable |
+ RmLightVariable |
+ RmMaterialVariable |
+ RmRenderableTexture |
+ RmStreamMap |
+ RmModelData |
+ RmGLESPass
+ )*
+ )>
+
+ <!ELEMENT RmPass
+ (
+ RmPlugInData?,
+ RmStringVariable*,
+ RmCameraReference?,
+ RmModelReference?,
+ RmRenderStateBlock?,
+ (
+ (
+ ( RmHLSLShader | RmShader ),
+ ( RmShader | RmHLSLShader )?
+ )
+ )?,
+ RmRenderTarget*,
+ RmStreamMapReference?,
+ (
+ RmBooleanVariable |
+ RmIntegerVariable |
+ RmFloatVariable |
+ RmVectorVariable |
+ RmMatrixVariable |
+ RmDynamicVariable |
+ RmColorVariable |
+ Rm2DTextureVariable |
+ RmCubemapVariable |
+ Rm3DTextureVariable |
+ RmLightVariable |
+ RmMaterialVariable |
+ RmTextureObject |
+ RmLightObject |
+ RmMaterialObject
+ )*
+ )>
+
+ <!ELEMENT RmGLPass
+ (
+ RmPlugInData?,
+ RmStringVariable*,
+ RmCameraReference?,
+ RmModelReference?,
+ RmRenderStateBlock?,
+ (
+ ( RmGLShader, RmGLShader? )
+ )?,
+ RmRenderTarget?,
+ RmStreamMapReference?,
+ (
+ RmBooleanVariable |
+ RmIntegerVariable |
+ RmFloatVariable |
+ RmVectorVariable |
+ RmMatrixVariable |
+ RmDynamicVariable |
+ RmColorVariable |
+ Rm2DTextureVariable |
+ RmCubemapVariable |
+ Rm3DTextureVariable |
+ RmLightVariable |
+ RmMaterialVariable |
+ RmTextureObject |
+ RmLightObject |
+ RmMaterialObject |
+ RmShaderConstant |
+ RmSampler
+ )*
+ )>
+
+ <!ELEMENT RmGLESPass
+ (
+ RmPlugInData?,
+ RmStringVariable*,
+ RmCameraReference?,
+ RmModelReference?,
+ RmRenderStateBlock?,
+ (
+ ( RmGLESShader, RmGLESShader? )
+ )?,
+ RmRenderTarget?,
+ RmStreamMapReference?,
+ (
+ RmBooleanVariable |
+ RmIntegerVariable |
+ RmFloatVariable |
+ RmVectorVariable |
+ RmMatrixVariable |
+ RmDynamicVariable |
+ RmColorVariable |
+ Rm2DTextureVariable |
+ RmCubemapVariable |
+ Rm3DTextureVariable |
+ RmLightVariable |
+ RmMaterialVariable |
+ RmTextureObject |
+ RmLightObject |
+ RmMaterialObject |
+ RmShaderConstant |
+ RmSampler
+ )*
+ )>
+
+ <!ELEMENT RmShader
+ (
+ RmShaderCode,
+ RmPlugInData?,
+ (
+ RmStringVariable |
+ RmShaderConstant
+ )*
+ )>
+
+ <!ELEMENT RmHLSLShader
+ (
+ RmShaderCode,
+ RmPlugInData?,
+ (
+ RmStringVariable |
+ RmShaderConstant |
+ RmSampler
+ )*
+ )>
+
+ <!ELEMENT RmGLShader
+ (
+ RmShaderCode,
+ RmPlugInData?,
+ (
+ RmStringVariable
+ )*
+ )>
+
+ <!ELEMENT RmGLESShader
+ (
+ RmShaderCode,
+ RmPlugInData?,
+ (
+ RmStringVariable
+ )*
+ )>
+
+ <!ELEMENT RmTextureObject
+ (
+ RmPlugInData?,
+ RmStringVariable*,
+ RmTextureReference?,
+ RmState*
+ )>
+
+ <!ELEMENT RmLightObject
+ (
+ RmPlugInData?,
+ RmStringVariable*,
+ RmLightReference?
+ )>
+
+ <!ELEMENT RmMaterialObject
+ (
+ RmPlugInData?,
+ RmStringVariable*,
+ RmMaterialReference?
+ )>
+
+ <!ELEMENT RmRenderStateBlock
+ (
+ RmPlugInData?,
+ (
+ RmStringVariable |
+ RmState
+ )*
+ )>
+
+ <!ELEMENT RmStreamMap
+ (
+ RmPlugInData?,
+ (
+ RmStringVariable |
+ RmStream
+ )*
+ )>
+
+ <!ELEMENT RmStream ( RmPlugInData?, RmStreamChannel* )>
+
+ <!ELEMENT RmModelData ( RmPlugInData?, RmStringVariable* )>
+ <!ELEMENT RmTextureReference ( RmPlugInData?, RmStringVariable* )>
+ <!ELEMENT RmLightReference ( RmPlugInData?, RmStringVariable* )>
+ <!ELEMENT RmMaterialReference ( RmPlugInData?, RmStringVariable* )>
+ <!ELEMENT RmCameraReference ( RmPlugInData?, RmStringVariable* )>
+ <!ELEMENT RmModelReference ( RmPlugInData?, RmStringVariable* )>
+ <!ELEMENT RmStreamMapReference ( RmPlugInData?, RmStringVariable* )>
+ <!ELEMENT RmRenderableTexture ( RmPlugInData?, RmStringVariable* )>
+ <!ELEMENT RmRenderTarget ( RmPlugInData?, RmStringVariable* )>
+ <!ELEMENT RmBooleanVariable ( RmPlugInData?, RmStringVariable? )>
+ <!ELEMENT RmFloatVariable ( RmPlugInData?, RmStringVariable? )>
+ <!ELEMENT RmVectorVariable ( RmPlugInData?, RmStringVariable? )>
+ <!ELEMENT RmMatrixVariable ( RmPlugInData?, RmStringVariable? )>
+ <!ELEMENT RmColorVariable ( RmPlugInData?, RmStringVariable? )>
+ <!ELEMENT RmIntegerVariable ( RmPlugInData?, RmStringVariable? )>
+ <!ELEMENT Rm2DTextureVariable ( RmPlugInData?, RmStringVariable? )>
+ <!ELEMENT RmCubemapVariable ( RmPlugInData?, RmStringVariable? )>
+ <!ELEMENT Rm3DTextureVariable ( RmPlugInData?, RmStringVariable? )>
+ <!ELEMENT RmLightVariable ( RmPlugInData?, RmStringVariable? )>
+ <!ELEMENT RmMaterialVariable ( RmPlugInData?, RmStringVariable? )>
+ <!ELEMENT RmCamera ( RmPlugInData?, RmStringVariable* )>
+
+ <!ELEMENT RmStringVariable ( RmTextDataBlock, RmPlugInData? )>
+
+ <!ELEMENT RmDynamicVariable
+ (
+ RmDynamicVariableValueContainer,
+ RmPlugInData?,
+ RmStringVariable?
+ )>
+
+ <!ELEMENT RmDynamicVariableValueContainer
+ (
+ RmPlugInData?,
+ RmDynamicVariableValue*
+ )>
+
+ <!ELEMENT RmTextDataBlock ( #PCDATA ) >
+
+ <!ELEMENT RmRegistryBranch
+ (
+ RmTextDataBlock?,
+ (
+ RmRegistryBranch |
+ RmStringVariable |
+ RmIntegerVariable |
+ RmBooleanVariable |
+ RmFloatVariable
+ )*
+ )>
+
+ <!ELEMENT RmPlugInData
+ (
+ RmTextDataBlock?,
+ (
+ RmStringVariable |
+ RmIntegerVariable |
+ RmBooleanVariable |
+ RmFloatVariable |
+ RmVectorVariable
+ )*
+ )>
+
+ <!ELEMENT RmClipboardNode
+ (
+ RmTextDataBlock?,
+ (
+ RmEffectWorkspace |
+ RmEffectGroup |
+ RmDirectXEffect |
+ RmOpenGLEffect |
+ RmOpenGLESEffect |
+ RmPass |
+ RmGLPass |
+ RmGLESPass |
+ RmShader |
+ RmHLSLShader |
+ RmGLShader |
+ RmGLESShader |
+ RmShaderConstant |
+ RmSampler |
+ RmTextureObject |
+ RmLightObject |
+ RmMaterialObject |
+ RmRenderStateBlock |
+ RmState |
+ RmStreamMap |
+ RmStream |
+ RmStreamChannel |
+ RmModelData |
+ RmTextureReference |
+ RmLightReference |
+ RmMaterialReference |
+ RmModelReference |
+ RmStreamMapReference |
+ RmRenderableTexture |
+ RmRenderTarget |
+ RmBooleanVariable |
+ RmFloatVariable |
+ RmVectorVariable |
+ RmMatrixVariable |
+ RmDynamicVariable |
+ RmDynamicVariableValue |
+ RmColorVariable |
+ RmIntegerVariable |
+ RmStringVariable |
+ Rm2DTextureVariable |
+ RmCubemapVariable |
+ Rm3DTextureVariable |
+ RmLightVariable |
+ RmMaterialVariable |
+ RmRegistryBranch |
+ RmPlugInData |
+ RmCamera |
+ RmCameraReference
+ )*
+ )>
+
+ <!ELEMENT RmStreamChannel ( RmPlugInData? ) >
+ <!ELEMENT RmShaderConstant ( RmPlugInData? ) >
+ <!ELEMENT RmSampler ( RmPlugInData? ) >
+ <!ELEMENT RmState ( RmPlugInData? ) >
+ <!ELEMENT RmDynamicVariableValue ( RmPlugInData? ) >
+
+ <!ELEMENT RmShaderCode ( #PCDATA ) >
+
+ <!ATTLIST RmEffectWorkspace
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ ACTIVE_EFFECT CDATA #REQUIRED
+ VALIDATION_STRING CDATA #REQUIRED
+ XML_VERSION CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmEffectGroup
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmDirectXEffect
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ ACTIVE_CAMERA CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmOpenGLEffect
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ ACTIVE_CAMERA CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmOpenGLESEffect
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ ACTIVE_CAMERA CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmPass
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ PASS_INDEX CDATA #REQUIRED
+ ENABLED ( TRUE | FALSE ) #REQUIRED
+ >
+
+ <!ATTLIST RmGLPass
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ PASS_INDEX CDATA #REQUIRED
+ ENABLED ( TRUE | FALSE ) #REQUIRED
+ >
+
+ <!ATTLIST RmGLESPass
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ PASS_INDEX CDATA #REQUIRED
+ ENABLED ( TRUE | FALSE ) #REQUIRED
+ >
+
+ <!ATTLIST RmShader
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ PIXEL_SHADER CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmHLSLShader
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ PIXEL_SHADER ( TRUE | FALSE ) #REQUIRED
+ TARGET CDATA #REQUIRED
+ ENTRY_POINT CDATA #REQUIRED
+ COMPILER_FLAGS CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmGLShader
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ PIXEL_SHADER ( TRUE | FALSE ) #REQUIRED
+ >
+
+ <!ATTLIST RmGLESShader
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ PIXEL_SHADER ( TRUE | FALSE ) #REQUIRED
+ >
+
+ <!ATTLIST RmShaderConstant
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ REGISTER CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmSampler
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ REGISTER CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmTextureObject
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ STATE_INDEX CDATA #REQUIRED
+ VERTEX_TEXTURE ( TRUE | FALSE ) #REQUIRED
+ >
+
+ <!ATTLIST RmLightObject
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ INDEX CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmMaterialObject
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ INDEX CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmRenderStateBlock
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmState
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ STATE CDATA #REQUIRED
+ VALUE CDATA #REQUIRED
+ USAGE CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmStreamMap
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmStream
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ STRIDE CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmStreamChannel
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ DATA_SIZE CDATA #REQUIRED
+ DATA_TYPE CDATA #REQUIRED
+ REGISTER CDATA #REQUIRED
+ USAGE CDATA #REQUIRED
+ USAGE_INDEX CDATA #REQUIRED
+ ATTRIBUTE_NAME CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmModelData
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ FILE_NAME CDATA #REQUIRED
+ ORIENTATION CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmTextureReference
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmLightReference
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmMaterialReference
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmModelReference
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmStreamMapReference
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmRenderableTexture
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
+ VARIABLE_SEMANTIC CDATA #REQUIRED
+ FILE_NAME CDATA #REQUIRED
+ ORIGIN CDATA #REQUIRED
+ WIDTH CDATA #REQUIRED
+ HEIGHT CDATA #REQUIRED
+ FORMAT CDATA #REQUIRED
+ USE_VIEWPORT_DIMENSIONS ( TRUE | FALSE ) #REQUIRED
+ GENERATE_MIPMAPS ( TRUE | FALSE ) #REQUIRED
+ WIDTH_RATIO CDATA #REQUIRED
+ HEIGHT_RATIO CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmRenderTarget
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ INDEX CDATA #REQUIRED
+ RENDER_TO_SCREEN ( TRUE | FALSE ) #REQUIRED
+ COLOR_CLEAR ( TRUE | FALSE ) #REQUIRED
+ DEPTH_CLEAR ( TRUE | FALSE ) #REQUIRED
+ CLEAR_COLOR_VALUE CDATA #REQUIRED
+ DEPTH_CLEAR_VALUE CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmBooleanVariable
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
+ VARIABLE_SEMANTIC CDATA #REQUIRED
+ VALUE CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmFloatVariable
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
+ VARIABLE_SEMANTIC CDATA #REQUIRED
+ VALUE CDATA #REQUIRED
+ MIN CDATA #REQUIRED
+ MAX CDATA #REQUIRED
+ CLAMP ( TRUE | FALSE ) #REQUIRED
+ >
+
+ <!ATTLIST RmVectorVariable
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
+ VARIABLE_SEMANTIC CDATA #REQUIRED
+ VALUE_0 CDATA #REQUIRED
+ VALUE_1 CDATA #REQUIRED
+ VALUE_2 CDATA #REQUIRED
+ VALUE_3 CDATA #REQUIRED
+ MIN CDATA #REQUIRED
+ MAX CDATA #REQUIRED
+ CLAMP ( TRUE | FALSE ) #REQUIRED
+ NORMALIZE ( TRUE | FALSE ) #REQUIRED
+ >
+
+ <!ATTLIST RmMatrixVariable
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
+ VARIABLE_SEMANTIC CDATA #REQUIRED
+ VALUE_0 CDATA #REQUIRED
+ VALUE_1 CDATA #REQUIRED
+ VALUE_2 CDATA #REQUIRED
+ VALUE_3 CDATA #REQUIRED
+ VALUE_4 CDATA #REQUIRED
+ VALUE_5 CDATA #REQUIRED
+ VALUE_6 CDATA #REQUIRED
+ VALUE_7 CDATA #REQUIRED
+ VALUE_8 CDATA #REQUIRED
+ VALUE_9 CDATA #REQUIRED
+ VALUE_10 CDATA #REQUIRED
+ VALUE_11 CDATA #REQUIRED
+ VALUE_12 CDATA #REQUIRED
+ VALUE_13 CDATA #REQUIRED
+ VALUE_14 CDATA #REQUIRED
+ VALUE_15 CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmDynamicVariable
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
+ VARIABLE_SEMANTIC CDATA #REQUIRED
+ VARIABLE_TYPE ( FLOAT | INTEGER | BOOLEAN ) #REQUIRED
+ ROWS CDATA #REQUIRED
+ COLUMNS CDATA #REQUIRED
+ FIXED_SIZE ( TRUE | FALSE ) #REQUIRED
+ MIN CDATA #REQUIRED
+ MAX CDATA #REQUIRED
+ CLAMP ( TRUE | FALSE ) #REQUIRED
+ NORMALIZE ( TRUE | FALSE ) #REQUIRED
+ >
+
+ <!ATTLIST RmDynamicVariableValue
+ ROW_INDEX CDATA #REQUIRED
+ COLUMN_INDEX CDATA #REQUIRED
+ VALUE CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmColorVariable
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
+ VARIABLE_SEMANTIC CDATA #REQUIRED
+ VALUE_0 CDATA #REQUIRED
+ VALUE_1 CDATA #REQUIRED
+ VALUE_2 CDATA #REQUIRED
+ VALUE_3 CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmIntegerVariable
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
+ VARIABLE_SEMANTIC CDATA #REQUIRED
+ VALUE CDATA #REQUIRED
+ MIN CDATA #REQUIRED
+ MAX CDATA #REQUIRED
+ CLAMP ( TRUE | FALSE ) #REQUIRED
+ >
+
+ <!ATTLIST RmStringVariable
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
+ VARIABLE_SEMANTIC CDATA #REQUIRED
+ >
+
+ <!ATTLIST Rm2DTextureVariable
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
+ VARIABLE_SEMANTIC CDATA #REQUIRED
+ FILE_NAME CDATA #REQUIRED
+ ORIGIN CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmCubemapVariable
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
+ VARIABLE_SEMANTIC CDATA #REQUIRED
+ FILE_NAME CDATA #REQUIRED
+ ORIGIN CDATA #REQUIRED
+ >
+
+ <!ATTLIST Rm3DTextureVariable
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
+ VARIABLE_SEMANTIC CDATA #REQUIRED
+ FILE_NAME CDATA #REQUIRED
+ ORIGIN CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmLightVariable
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
+ VARIABLE_SEMANTIC CDATA #REQUIRED
+ LIGHT_ENABLED ( TRUE | FALSE ) #REQUIRED
+ LIGHT_TYPE ( POSITIONAL | DIRECTIONAL | SPOTLIGHT ) #REQUIRED
+ AMBIENT_0 CDATA #REQUIRED
+ AMBIENT_1 CDATA #REQUIRED
+ AMBIENT_2 CDATA #REQUIRED
+ AMBIENT_3 CDATA #REQUIRED
+ DIFFUSE_0 CDATA #REQUIRED
+ DIFFUSE_1 CDATA #REQUIRED
+ DIFFUSE_2 CDATA #REQUIRED
+ DIFFUSE_3 CDATA #REQUIRED
+ SPECULAR_0 CDATA #REQUIRED
+ SPECULAR_1 CDATA #REQUIRED
+ SPECULAR_2 CDATA #REQUIRED
+ SPECULAR_3 CDATA #REQUIRED
+ POSITION_0 CDATA #REQUIRED
+ POSITION_1 CDATA #REQUIRED
+ POSITION_2 CDATA #REQUIRED
+ DIRECTION_0 CDATA #REQUIRED
+ DIRECTION_1 CDATA #REQUIRED
+ DIRECTION_2 CDATA #REQUIRED
+ ATTENUATION_0 CDATA #REQUIRED
+ ATTENUATION_1 CDATA #REQUIRED
+ ATTENUATION_2 CDATA #REQUIRED
+ SPOTLIGHT_THETA CDATA #REQUIRED
+ SPOTLIGHT_PHI CDATA #REQUIRED
+ RANGE CDATA #REQUIRED
+ FALLOFF CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmMaterialVariable
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
+ VARIABLE_SEMANTIC CDATA #REQUIRED
+ AMBIENT_0 CDATA #REQUIRED
+ AMBIENT_1 CDATA #REQUIRED
+ AMBIENT_2 CDATA #REQUIRED
+ AMBIENT_3 CDATA #REQUIRED
+ DIFFUSE_0 CDATA #REQUIRED
+ DIFFUSE_1 CDATA #REQUIRED
+ DIFFUSE_2 CDATA #REQUIRED
+ DIFFUSE_3 CDATA #REQUIRED
+ SPECULAR_0 CDATA #REQUIRED
+ SPECULAR_1 CDATA #REQUIRED
+ SPECULAR_2 CDATA #REQUIRED
+ SPECULAR_3 CDATA #REQUIRED
+ EMISSIVE_0 CDATA #REQUIRED
+ EMISSIVE_1 CDATA #REQUIRED
+ EMISSIVE_2 CDATA #REQUIRED
+ EMISSIVE_3 CDATA #REQUIRED
+ SPECULAR_POWER CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmRegistryBranch
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ XML_VERSION CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmPlugInData
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ PLUGIN_GUID CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmClipboardNode
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ XML_VERSION CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmCamera
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ CAMERA_POSITION_X CDATA #REQUIRED
+ CAMERA_POSITION_Y CDATA #REQUIRED
+ CAMERA_POSITION_Z CDATA #REQUIRED
+ LOOK_AT_VECTOR_X CDATA #REQUIRED
+ LOOK_AT_VECTOR_Y CDATA #REQUIRED
+ LOOK_AT_VECTOR_Z CDATA #REQUIRED
+ UP_VECTOR_X CDATA #REQUIRED
+ UP_VECTOR_Y CDATA #REQUIRED
+ UP_VECTOR_Z CDATA #REQUIRED
+ FOV CDATA #REQUIRED
+ NEAR_CLIP_PLANE CDATA #REQUIRED
+ FAR_CLIP_PLANE CDATA #REQUIRED
+ >
+
+ <!ATTLIST RmCameraReference
+ NAME CDATA #REQUIRED
+ API CDATA #REQUIRED
+ USE_ACTIVE_CAMERA ( TRUE | FALSE ) #REQUIRED
+ >
+
+ <!ATTLIST RmShaderCode
+ TYPE ( TEXT ) #REQUIRED
+ >
+
+ <!ATTLIST RmTextDataBlock
+ TYPE ( TEXT ) #REQUIRED
+ >
+
+]>
+<RENDER_MONKEY>
+ <RmEffectWorkspace NAME="Effect Workspace" API="" ACTIVE_EFFECT="Effect Workspace.Textured Bump" 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>8</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>8</LastHolder></Pane-1><Pane-2><Type>2</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><Horiz>1</Horiz><Pane-1>3</Pane-1><Panes>1</Panes></Pane-2><Pane-3><Type>2</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><Horiz>0</Horiz><Pane-1>4</Pane-1><Pane-2>9</Pane-2><Panes>2</Panes></Pane-3><Pane-4><Type>2</Type><DockingCX>0</DockingCX><DockingCY>791</DockingCY><Horiz>1</Horiz><Pane-1>5</Pane-1><Pane-2>7</Pane-2><Pane-3>8</Pane-3><Panes>3</Panes></Pane-4><Pane-5><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>6</Selected><Panes>1</Panes><Pane-1>6</Pane-1></Pane-5><Pane-6><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Workspace</Title><ID>1000</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>5</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>5</LastHolder></Pane-6><Pane-7><Type>4</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY></Pane-7><Pane-8><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-8><Pane-9><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>10</Selected><Panes>1</Panes><Pane-1>10</Pane-1></Pane-9><Pane-10><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Output</Title><ID>1002</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>9</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>9</LastHolder></Pane-10><Summary><TopContainer>2</TopContainer><Client>7</Client><Panes>10</Panes></Summary></Application_Layout></DockingPaneLayouts>
+]]></RmTextDataBlock>
+ <RmRegistryBranch NAME="RmPreviewGLWindow" API="" XML_VERSION="RenderMonkey 1.71">
+ <RmRegistryBranch NAME="EffectPlacementRepository" API="" XML_VERSION="RenderMonkey 1.71">
+ <RmRegistryBranch NAME="Effect Workspace.Textured Bump" API="" XML_VERSION="RenderMonkey 1.71">
+ <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/>
+ <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/>
+ <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="349" MIN="-10" MAX="10" CLAMP="FALSE"/>
+ <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="350" 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="RmStreamEditor" API="" XML_VERSION="RenderMonkey 1.71">
+ <RmRegistryBranch NAME="Effect Workspace.Textured Bump.Stream Mapping" API="" XML_VERSION="RenderMonkey 1.71">
+ <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="663" MIN="-10" MAX="10" CLAMP="FALSE"/>
+ <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="400" MIN="-10" MAX="10" CLAMP="FALSE"/>
+ <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="851" MIN="-10" MAX="10" CLAMP="FALSE"/>
+ <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="310" 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="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="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>
+ <RmRegistryBranch NAME="RmRenderTargetEditor" API="" XML_VERSION="RenderMonkey 1.71">
+ <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/>
+ </RmRegistryBranch>
+ <RmRegistryBranch NAME="RmShaderEditor" API="" XML_VERSION="RenderMonkey 1.71">
+ <RmRegistryBranch NAME="Effect Workspace.Textured Bump" API="" XML_VERSION="RenderMonkey 1.71">
+ <RmRegistryBranch NAME="Disassembly" API="" XML_VERSION="RenderMonkey 1.71"/>
+ <RmStringVariable NAME="Editing Shader" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[
+Fragment Program]]></RmTextDataBlock></RmStringVariable>
+ <RmStringVariable NAME="Editing Pass" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[
+Pass 0]]></RmTextDataBlock></RmStringVariable>
+ <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="32" MIN="-10" MAX="10" CLAMP="FALSE"/>
+ <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1014" MIN="-10" MAX="10" CLAMP="FALSE"/>
+ <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="650" MIN="-10" MAX="10" CLAMP="FALSE"/>
+ <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/>
+ <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/>
+ <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/>
+ <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/>
+ <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="43" 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>
+ <RmRegistryBranch NAME="RmTextureObjectEditor" 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>
+ <RmRegistryBranch NAME="WORKSPACE" API="" XML_VERSION="RenderMonkey 1.71">
+ <RmStringVariable NAME="LAST_SAVE" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[
+21/12/2007 14:16:11]]></RmTextDataBlock></RmStringVariable>
+ <RmStringVariable NAME="VERSION" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[
+RenderMonkey Version 1.80 (build 125)]]></RmTextDataBlock></RmStringVariable>
+ <RmStringVariable NAME="XML_VERSION" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[
+RenderMonkey 1.71]]></RmTextDataBlock></RmStringVariable>
+ <RmStringVariable NAME="BASE_WORKSPACE_PATH" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[
+D:\download\]]></RmTextDataBlock></RmStringVariable>
+ </RmRegistryBranch>
+ </RmRegistryBranch>
+ </RmRegistryBranch>
+ <RmOpenGLESEffect NAME="Textured Bump" API="OpenGL ES" ACTIVE_CAMERA="">
+ <RmFloatVariable NAME="u_specularPower" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE="25.000000" MIN="1.000000" MAX="100.000000" CLAMP="TRUE"/>
+ <RmDynamicVariable NAME="u_lightPosition" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VARIABLE_TYPE="FLOAT" ROWS="3" COLUMNS="1" FIXED_SIZE="TRUE" MIN="-100.000000" MAX="100.000000" CLAMP="TRUE" NORMALIZE="FALSE">
+ <RmDynamicVariableValueContainer>
+ <RmDynamicVariableValue ROW_INDEX="0" COLUMN_INDEX="0" VALUE="-100.000000"/>
+ <RmDynamicVariableValue ROW_INDEX="1" COLUMN_INDEX="0" VALUE="100.000000"/>
+ <RmDynamicVariableValue ROW_INDEX="2" COLUMN_INDEX="0" VALUE="100.000000"/>
+ </RmDynamicVariableValueContainer>
+ </RmDynamicVariable>
+ <RmDynamicVariable NAME="u_eyePosition" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VARIABLE_TYPE="FLOAT" ROWS="3" COLUMNS="1" FIXED_SIZE="TRUE" MIN="-100.000000" MAX="100.000000" CLAMP="TRUE" NORMALIZE="FALSE">
+ <RmDynamicVariableValueContainer>
+ <RmDynamicVariableValue ROW_INDEX="0" COLUMN_INDEX="0" VALUE="0.000000"/>
+ <RmDynamicVariableValue ROW_INDEX="1" COLUMN_INDEX="0" VALUE="0.000000"/>
+ <RmDynamicVariableValue ROW_INDEX="2" COLUMN_INDEX="0" VALUE="100.000000"/>
+ </RmDynamicVariableValueContainer>
+ </RmDynamicVariable>
+ <RmMatrixVariable NAME="u_matViewProjection" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="ViewProjection" VALUE_0="1.248492" VALUE_1="-0.144174" VALUE_2="1.796089" VALUE_3="-0.000000" VALUE_4="-0.822713" VALUE_5="2.144300" VALUE_6="0.744007" VALUE_7="-0.000062" VALUE_8="0.748748" VALUE_9="0.455184" VALUE_10="-0.483929" VALUE_11="199.199112" VALUE_12="0.747999" VALUE_13="0.454729" VALUE_14="-0.483445" VALUE_15="199.999908"/>
+ <RmMatrixVariable NAME="u_matViewInverse" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="ViewInverse" VALUE_0="0.569533" VALUE_1="-0.340779" VALUE_2="-0.747999" VALUE_3="-149.599716" VALUE_4="-0.065769" VALUE_5="0.888198" VALUE_6="-0.454729" VALUE_7="-90.945732" VALUE_8="0.819333" VALUE_9="0.308178" VALUE_10="0.483445" VALUE_11="96.689011" VALUE_12="-0.000000" VALUE_13="-0.000000" VALUE_14="0.000000" VALUE_15="1.000000"/>
+ <RmColorVariable NAME="u_ambient" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE_0="0.368627" VALUE_1="0.368421" VALUE_2="0.368421" VALUE_3="1.000000"/>
+ <RmColorVariable NAME="u_diffuse" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE_0="0.886275" VALUE_1="0.885003" VALUE_2="0.885003" VALUE_3="1.000000"/>
+ <RmColorVariable NAME="u_specular" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE_0="0.490196" VALUE_1="0.488722" VALUE_2="0.488722" VALUE_3="1.000000"/>
+ <Rm2DTextureVariable NAME="bump" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" FILE_NAME="FieldstoneBumpDOT3.tga" ORIGIN="0"/>
+ <Rm2DTextureVariable NAME="base" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" FILE_NAME="Fieldstone.tga" ORIGIN="0"/>
+ <RmStreamMap NAME="Stream Mapping" API="">
+ <RmStream NAME="Stream" API="" STRIDE="56">
+ <RmStreamChannel NAME="Position_0" API="" DATA_SIZE="12" DATA_TYPE="2" REGISTER="0" USAGE="0" USAGE_INDEX="0" ATTRIBUTE_NAME="a_vertex"/>
+ <RmStreamChannel NAME="TexCoord_0" API="" DATA_SIZE="8" DATA_TYPE="1" REGISTER="0" USAGE="5" USAGE_INDEX="0" ATTRIBUTE_NAME="a_texcoord0"/>
+ <RmStreamChannel NAME="Normal_0" API="" DATA_SIZE="12" DATA_TYPE="2" REGISTER="0" USAGE="3" USAGE_INDEX="0" ATTRIBUTE_NAME="a_normal"/>
+ <RmStreamChannel NAME="Binormal_0" API="" DATA_SIZE="12" DATA_TYPE="2" REGISTER="0" USAGE="7" USAGE_INDEX="0" ATTRIBUTE_NAME="a_binormal"/>
+ <RmStreamChannel NAME="Tangent_0" API="" DATA_SIZE="12" DATA_TYPE="2" REGISTER="0" USAGE="6" USAGE_INDEX="0" ATTRIBUTE_NAME="a_tangent"/>
+ </RmStream>
+ </RmStreamMap>
+ <RmModelData NAME="Model" API="" FILE_NAME=".\Torus.3ds" ORIENTATION="0"/>
+ <RmGLESPass NAME="Pass 0" API="OpenGL ES" PASS_INDEX="0" ENABLED="TRUE">
+ <RmModelReference NAME="Model" API=""/>
+ <RmGLESShader NAME="Vertex Program" API="OpenGL ES" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[
+uniform mat4 u_matViewInverse;
+uniform mat4 u_matViewProjection;
+uniform vec3 u_lightPosition;
+uniform vec3 u_eyePosition;
+
+varying vec2 v_texcoord;
+varying vec3 v_viewDirection;
+varying vec3 v_lightDirection;
+
+attribute vec4 a_vertex;
+attribute vec2 a_texcoord0;
+attribute vec3 a_normal;
+attribute vec3 a_binormal;
+attribute vec3 a_tangent;
+
+void main( void )
+{
+ // Transform eye vector into world space
+ vec3 eyePositionWorld = (u_matViewInverse * vec4(u_eyePosition, 1.0)).xyz;
+
+ // Compute world-space direction vector
+ vec3 viewDirectionWorld = eyePositionWorld - a_vertex.xyz;
+
+ // Transform light position into world space
+ vec3 lightPositionWorld = (u_matViewInverse * vec4(u_lightPosition, 1.0)).xyz;
+
+ // Compute world-space light dirction vector
+ vec3 lightDirectionWorld = lightPositionWorld - a_vertex.xyz;
+
+ // Create the tangent matrix
+ mat3 tangentMat = mat3( a_tangent,
+ a_binormal,
+ a_normal );
+
+ // Transform the view and light vectors into tangent space
+ v_viewDirection = viewDirectionWorld * tangentMat;
+ v_lightDirection = lightDirectionWorld * tangentMat;
+
+ // Transform output position
+ gl_Position = u_matViewProjection * a_vertex;
+
+ // Pass through texture coordinate
+ v_texcoord = a_texcoord0.xy;
+
+}]]></RmShaderCode></RmGLESShader>
+ <RmGLESShader NAME="Fragment Program" API="OpenGL ES" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[
+precision mediump float;
+
+uniform vec4 u_ambient;
+uniform vec4 u_specular;
+uniform vec4 u_diffuse;
+uniform float u_specularPower;
+
+uniform sampler2D s_baseMap;
+uniform sampler2D s_bumpMap;
+
+varying vec2 v_texcoord;
+varying vec3 v_viewDirection;
+varying vec3 v_lightDirection;
+
+void main( void )
+{
+ // Fetch basemap color
+ vec4 baseColor = texture2D( s_baseMap, v_texcoord );
+
+ // Fetch the tangent space normal from normal map
+ vec3 normal = texture2D( s_bumpMap, v_texcoord ).xyz;
+
+ // Scale and bias from [0, 1] to [-1, 1] and normalize
+ normal = normalize( normal * 2.0 - 1.0 );
+
+ // Normalize the light direction and view direction
+ vec3 lightDirection = normalize( v_lightDirection );
+ vec3 viewDirection = normalize( v_viewDirection );
+
+ // Compute N.L
+ float nDotL = dot( normal, lightDirection );
+
+ // Compute reflection vector
+ vec3 reflection = ( 2.0 * normal * nDotL ) - lightDirection;
+
+ // Compute R.V
+ float rDotV = max( 0.0, dot( reflection, viewDirection ) );
+
+ // Compute Ambient term
+ vec4 ambient = u_ambient * baseColor;
+
+ // Compute Diffuse term
+ vec4 diffuse = u_diffuse * nDotL * baseColor;
+
+ // Compute Specular term
+ vec4 specular = u_specular * pow( rDotV, u_specularPower );
+
+ // Output final color
+ gl_FragColor = ambient + diffuse + specular;
+}]]></RmShaderCode></RmGLESShader>
+ <RmStreamMapReference NAME="Stream Mapping" API=""/>
+ <RmTextureObject NAME="s_baseMap" API="OpenGL ES" STATE_INDEX="0" VERTEX_TEXTURE="FALSE">
+ <RmTextureReference NAME="base" API=""/>
+ <RmState NAME="GL_TextureMinify" API="OpenGL ES" STATE="4" VALUE="6" USAGE="SAMPLER_STATE"/>
+ <RmState NAME="GL_TextureMagnify" API="OpenGL ES" STATE="5" VALUE="1" USAGE="SAMPLER_STATE"/>
+ </RmTextureObject>
+ <RmTextureObject NAME="s_bumpMap" API="OpenGL ES" STATE_INDEX="1" VERTEX_TEXTURE="FALSE">
+ <RmTextureReference NAME="bump" API=""/>
+ <RmState NAME="GL_TextureMinify" API="OpenGL ES" STATE="4" VALUE="6" USAGE="SAMPLER_STATE"/>
+ <RmState NAME="GL_TextureMagnify" API="OpenGL ES" STATE="5" VALUE="1" USAGE="SAMPLER_STATE"/>
+ </RmTextureObject>
+ <RmSampler NAME="s_baseMap" API="" REGISTER="-1"/>
+ <RmSampler NAME="s_bumpMap" API="" REGISTER="-1"/>
+ <RmShaderConstant NAME="u_eyePosition" API="" REGISTER="-1"/>
+ <RmShaderConstant NAME="u_lightPosition" API="" REGISTER="-1"/>
+ <RmShaderConstant NAME="u_matViewInverse" API="" REGISTER="-1"/>
+ <RmShaderConstant NAME="u_matViewProjection" API="" REGISTER="-1"/>
+ <RmShaderConstant NAME="u_specular" API="" REGISTER="-1"/>
+ <RmShaderConstant NAME="u_specularPower" API="" REGISTER="-1"/>
+ <RmShaderConstant NAME="u_ambient" API="" REGISTER="-1"/>
+ <RmShaderConstant NAME="u_diffuse" API="" REGISTER="-1"/>
+ </RmGLESPass>
+ </RmOpenGLESEffect>
+ </RmEffectWorkspace>
+</RENDER_MONKEY>