diff options
Diffstat (limited to 'third_party/gles2_book/Chapter_13')
34 files changed, 10030 insertions, 0 deletions
diff --git a/third_party/gles2_book/Chapter_13/EnvironmentMapping/EnvironmentMapping.rfx b/third_party/gles2_book/Chapter_13/EnvironmentMapping/EnvironmentMapping.rfx new file mode 100644 index 0000000..8c32adb --- /dev/null +++ b/third_party/gles2_book/Chapter_13/EnvironmentMapping/EnvironmentMapping.rfx @@ -0,0 +1,1204 @@ +<?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.Environment Mapping" 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>641</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.Environment Mapping" 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="6" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="433" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="400" 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="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 NAME="Effect Workspace.Environment Mapping.Stream Mapping" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="258" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="128" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="851" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="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.Environment Mapping" 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[ +Teapot]]></RmTextDataBlock></RmStringVariable> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="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="3" 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="491" 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.Environment Mapping" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="54" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="70" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1283" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="434" 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> + <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[ +27/12/2007 11:33:28]]></RmTextDataBlock></RmStringVariable> + <RmStringVariable NAME="VERSION" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +RenderMonkey Version 1.80 (build 125)]]></RmTextDataBlock></RmStringVariable> + <RmStringVariable NAME="XML_VERSION" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +RenderMonkey 1.71]]></RmTextDataBlock></RmStringVariable> + <RmStringVariable NAME="BASE_WORKSPACE_PATH" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +D:\svn\redbook\Code\Chapter_12\EnvironmentMapping\]]></RmTextDataBlock></RmStringVariable> + </RmRegistryBranch> + </RmRegistryBranch> + </RmRegistryBranch> + <RmOpenGLESEffect NAME="Environment Mapping" API="OpenGL ES" ACTIVE_CAMERA="Camera"> + <RmCamera NAME="Camera" API="" CAMERA_POSITION_X="-13.744995" CAMERA_POSITION_Y="23.367828" CAMERA_POSITION_Z="-220.341003" LOOK_AT_VECTOR_X="4.617599" LOOK_AT_VECTOR_Y="-4.282429" LOOK_AT_VECTOR_Z="0.204170" UP_VECTOR_X="-0.257297" UP_VECTOR_Y="0.955950" UP_VECTOR_Z="0.141275" FOV="45.000000" NEAR_CLIP_PLANE="70.930000" FAR_CLIP_PLANE="1883.088135"/> + <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.965568" VALUE_1="-0.543160" VALUE_2="0.095556" VALUE_3="6.730651" VALUE_4="-0.621170" VALUE_5="2.307867" VALUE_6="0.341067" VALUE_7="12.683241" VALUE_8="0.085555" VALUE_9="-0.128829" VALUE_10="1.027569" VALUE_11="156.895691" VALUE_12="0.082333" VALUE_13="-0.123976" VALUE_14="0.988864" VALUE_15="221.915924"/> + <RmMatrixVariable NAME="u_matViewInverse" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="ViewInverse" VALUE_0="-0.962819" VALUE_1="-0.257297" VALUE_2="-0.082333" VALUE_3="-13.744995" VALUE_4="-0.266063" VALUE_5="0.955950" VALUE_6="0.123978" VALUE_7="23.367828" VALUE_8="0.046807" VALUE_9="0.141272" VALUE_10="-0.988863" VALUE_11="-220.341003" VALUE_12="0.000000" VALUE_13="0.000000" VALUE_14="0.000000" VALUE_15="1.000000"/> + <RmFloatVariable NAME="u_specularPower" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE="25.000000" MIN="1.000000" MAX="100.000000" CLAMP="TRUE"/> + <RmVectorVariable NAME="u_viewPosition" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="ViewPosition" VALUE_0="-13.744995" VALUE_1="23.367828" VALUE_2="-220.341003" VALUE_3="1.000000" MIN="-10.000000" MAX="10.000000" CLAMP="FALSE" NORMALIZE="FALSE"/> + <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> + <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="base" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" FILE_NAME="Fieldstone.tga" ORIGIN="0"/> + <Rm2DTextureVariable NAME="bump" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" FILE_NAME="FieldstoneBumpDOT3.tga" ORIGIN="0"/> + <RmCubemapVariable NAME="cubemap" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" FILE_NAME="Snow.dds" 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="SkyDome" API="" FILE_NAME=".\Sphere.3ds" ORIENTATION="0"/> + <RmModelData NAME="Teapot" API="" FILE_NAME=".\Teapot.3ds" ORIENTATION="0"/> + <RmGLESPass NAME="Skybox" API="OpenGL ES" PASS_INDEX="0" ENABLED="TRUE"> + <RmCameraReference NAME="Camera" API="" USE_ACTIVE_CAMERA="FALSE"/> + <RmModelReference NAME="SkyDome" API=""/> + <RmRenderStateBlock NAME="Render State" API="OpenGL ES"> + <RmState NAME="GL_CullMode" API="OpenGL ES" STATE="8" VALUE="1" USAGE="RENDER_STATE"/> + <RmState NAME="GL_WriteMaskDepth" API="OpenGL ES" STATE="54" VALUE="0" USAGE="RENDER_STATE"/> + </RmRenderStateBlock> + <RmGLESShader NAME="Fragment Program" API="OpenGL ES" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[ +precision mediump float; + +uniform samplerCube s_cubeMap; + +varying vec3 v_texcoord; + + +void main(void) +{ + gl_FragColor = textureCube( s_cubeMap, v_texcoord ); +}]]></RmShaderCode></RmGLESShader> + <RmGLESShader NAME="Vertex Program" API="OpenGL ES" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[ +uniform vec4 u_viewPosition; +uniform mat4 u_matViewProjection; +attribute vec4 a_vertex; +varying vec3 v_texcoord; +void main(void) +{ + vec3 position = a_vertex.xyz; + + position += u_viewPosition.xyz; + + gl_Position = u_matViewProjection * vec4( position, 1.0 ); + + v_texcoord = a_vertex.xyz; +}]]></RmShaderCode></RmGLESShader> + <RmStreamMapReference NAME="Stream Mapping" API=""/> + <RmTextureObject NAME="s_cubeMap" API="OpenGL ES" STATE_INDEX="0" VERTEX_TEXTURE="FALSE"> + <RmTextureReference NAME="cubemap" API=""/> + </RmTextureObject> + <RmSampler NAME="s_cubeMap" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_viewPosition" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_matViewProjection" API="" REGISTER="-1"/> + </RmGLESPass> + <RmGLESPass NAME="Teapot" API="OpenGL ES" PASS_INDEX="1" ENABLED="TRUE"> + <RmCameraReference NAME="Camera" API="" USE_ACTIVE_CAMERA="FALSE"/> + <RmModelReference NAME="Teapot" API=""/> + <RmRenderStateBlock NAME="Render State" API="OpenGL ES"> + <RmState NAME="GL_CullMode" API="OpenGL ES" STATE="8" VALUE="3" USAGE="RENDER_STATE"/> + <RmState NAME="GL_WriteMaskDepth" API="OpenGL ES" STATE="54" VALUE="1" USAGE="RENDER_STATE"/> + </RmRenderStateBlock> + <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_lightDirection; +varying vec3 v_normal; +varying vec3 v_binormal; +varying vec3 v_tangent; + +attribute vec4 a_vertex; +attribute vec2 a_texcoord0; +attribute vec3 a_normal; +attribute vec3 a_binormal; +attribute vec3 a_tangent; + +void main( void ) +{ + // 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; + + // Pass the world-space light vector to the fragment shader + v_lightDirection = lightDirectionWorld; + + // Transform output position + gl_Position = u_matViewProjection * a_vertex; + + // Pass through other attributes + v_texcoord = a_texcoord0.xy; + v_normal = a_normal; + v_binormal = a_binormal; + v_tangent = a_tangent; + +}]]></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; +uniform samplerCube s_envMap; + + +varying vec2 v_texcoord; +varying vec3 v_lightDirection; +varying vec3 v_normal; +varying vec3 v_binormal; +varying vec3 v_tangent; + +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] + normal = normal * 2.0 - 1.0; + + // Construct a matrix to transform from tangent to world space + mat3 tangentToWorldMat = mat3( v_tangent, + v_binormal, + v_normal ); + + // Transform normal to world space and normalize + normal = normalize( tangentToWorldMat * normal ); + + // Normalize the light direction + vec3 lightDirection = normalize( v_lightDirection ); + + // Compute N.L + float nDotL = dot( normal, lightDirection ); + + // Compute reflection vector + vec3 reflection = ( 2.0 * normal * nDotL ) - lightDirection; + + // Use the reflection vector to fetch from the environment map + vec4 envColor = textureCube( s_envMap, reflection ); + + // Output final color + gl_FragColor = 0.25 * baseColor + envColor; +}]]></RmShaderCode></RmGLESShader> + <RmStreamMapReference NAME="Stream Mapping" API=""/> + <RmTextureObject NAME="s_envMap" API="OpenGL ES" STATE_INDEX="2" VERTEX_TEXTURE="FALSE"> + <RmTextureReference NAME="cubemap" API=""/> + </RmTextureObject> + <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"/> + <RmSampler NAME="s_envMap" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_lightPosition" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_matViewInverse" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_matViewProjection" API="" REGISTER="-1"/> + </RmGLESPass> + </RmOpenGLESEffect> + </RmEffectWorkspace> +</RENDER_MONKEY> diff --git a/third_party/gles2_book/Chapter_13/EnvironmentMapping/Fieldstone.tga b/third_party/gles2_book/Chapter_13/EnvironmentMapping/Fieldstone.tga Binary files differnew file mode 100644 index 0000000..8acafae --- /dev/null +++ b/third_party/gles2_book/Chapter_13/EnvironmentMapping/Fieldstone.tga diff --git a/third_party/gles2_book/Chapter_13/EnvironmentMapping/FieldstoneBumpDOT3.tga b/third_party/gles2_book/Chapter_13/EnvironmentMapping/FieldstoneBumpDOT3.tga Binary files differnew file mode 100644 index 0000000..6290f52 --- /dev/null +++ b/third_party/gles2_book/Chapter_13/EnvironmentMapping/FieldstoneBumpDOT3.tga diff --git a/third_party/gles2_book/Chapter_13/EnvironmentMapping/Snow.dds b/third_party/gles2_book/Chapter_13/EnvironmentMapping/Snow.dds Binary files differnew file mode 100644 index 0000000..62799c2 --- /dev/null +++ b/third_party/gles2_book/Chapter_13/EnvironmentMapping/Snow.dds diff --git a/third_party/gles2_book/Chapter_13/EnvironmentMapping/Sphere.3ds b/third_party/gles2_book/Chapter_13/EnvironmentMapping/Sphere.3ds Binary files differnew file mode 100644 index 0000000..108b93d --- /dev/null +++ b/third_party/gles2_book/Chapter_13/EnvironmentMapping/Sphere.3ds diff --git a/third_party/gles2_book/Chapter_13/EnvironmentMapping/Teapot.3ds b/third_party/gles2_book/Chapter_13/EnvironmentMapping/Teapot.3ds Binary files differnew file mode 100644 index 0000000..78be5fb --- /dev/null +++ b/third_party/gles2_book/Chapter_13/EnvironmentMapping/Teapot.3ds diff --git a/third_party/gles2_book/Chapter_13/Noise3D/Noise3D.rfx b/third_party/gles2_book/Chapter_13/Noise3D/Noise3D.rfx new file mode 100644 index 0000000..b6663d1 --- /dev/null +++ b/third_party/gles2_book/Chapter_13/Noise3D/Noise3D.rfx @@ -0,0 +1,1171 @@ +<?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" 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>12</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>12</LastHolder></Pane-1><Pane-2><Type>0</Type><DockingCX>254</DockingCX><DockingCY>374</DockingCY><Title>u_fogColor</Title><ID>1100</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>6</DockingHolder><FloatingHolder>17</FloatingHolder><LastHolder>17</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><Panes>4</Panes></Pane-3><Pane-4><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-4><Pane-5><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-5><Pane-6><Type>1</Type><DockingCX>254</DockingCX><DockingCY>374</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-6><Pane-7><Type>2</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><Horiz>0</Horiz><Pane-1>8</Pane-1><Pane-2>13</Pane-2><Panes>2</Panes></Pane-7><Pane-8><Type>2</Type><DockingCX>0</DockingCX><DockingCY>641</DockingCY><Horiz>1</Horiz><Pane-1>9</Pane-1><Pane-2>11</Pane-2><Pane-3>12</Pane-3><Panes>3</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>Workspace</Title><ID>1000</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>9</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>9</LastHolder></Pane-10><Pane-11><Type>4</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY></Pane-11><Pane-12><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-12><Pane-13><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>14</Selected><Panes>1</Panes><Pane-1>14</Pane-1></Pane-13><Pane-14><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Output</Title><ID>1002</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>13</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>13</LastHolder></Pane-14><Pane-15><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>16</TopContaner><WindowRectTopPos>32</WindowRectTopPos><WindowRectBottomPos>406</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>254</WindowRectRightPos></Pane-15><Pane-16><Type>2</Type><DockingCX>254</DockingCX><DockingCY>374</DockingCY><Horiz>1</Horiz><Pane-1>17</Pane-1><Panes>1</Panes></Pane-16><Pane-17><Type>1</Type><DockingCX>254</DockingCX><DockingCY>374</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-17><Pane-18><Type>0</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Title>u_fogMaxDist</Title><ID>1101</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>5</DockingHolder><FloatingHolder>21</FloatingHolder><LastHolder>21</LastHolder></Pane-18><Pane-19><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>20</TopContaner><WindowRectTopPos>32</WindowRectTopPos><WindowRectBottomPos>160</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>566</WindowRectRightPos></Pane-19><Pane-20><Type>2</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Horiz>1</Horiz><Pane-1>21</Pane-1><Panes>1</Panes></Pane-20><Pane-21><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-21><Pane-22><Type>0</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Title>u_fogMinDist</Title><ID>1102</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>4</DockingHolder><FloatingHolder>25</FloatingHolder><LastHolder>25</LastHolder></Pane-22><Pane-23><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>24</TopContaner><WindowRectTopPos>32</WindowRectTopPos><WindowRectBottomPos>160</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>566</WindowRectRightPos></Pane-23><Pane-24><Type>2</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Horiz>1</Horiz><Pane-1>25</Pane-1><Panes>1</Panes></Pane-24><Pane-25><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-25><Summary><TopContainer>3</TopContainer><Client>11</Client><Panes>25</Panes></Summary></Application_Layout></DockingPaneLayouts> +]]></RmTextDataBlock> + <RmRegistryBranch NAME="RmColorEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Textured.u_fogColor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1100" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmBooleanVariable NAME="FloatingPoint" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="FALSE"/> + <RmIntegerVariable NAME="ColorType" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmBooleanVariable NAME="LargeSize" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="TRUE"/> + </RmRegistryBranch> + </RmRegistryBranch> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmScalarEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Textured.u_fogMaxDist" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1101" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="Effect Workspace.Textured.u_fogMinDist" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1102" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + </RmRegistryBranch> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmRenderStateBlockEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Textured" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="340" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="143" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1283" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="434" 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="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmPreviewDx9Window" API="" XML_VERSION="RenderMonkey 1.71"/> + <RmRegistryBranch NAME="RmPreviewGLESWindow" API="" XML_VERSION="RenderMonkey 1.71"/> + <RmRegistryBranch NAME="RmPreviewGLWindow" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EffectPlacementRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Textured" 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="528" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="512" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + </RmRegistryBranch> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmPreviewGLPreview" API="" XML_VERSION="RenderMonkey 1.71"/> + <RmRegistryBranch NAME="RmLightEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="NoteEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmRenderableTextureEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + <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" 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[ +Terrain]]></RmTextDataBlock></RmStringVariable> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-19" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="650" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="650" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="382" MIN="-10" MAX="10" CLAMP="FALSE"/> + </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.Textured" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="81" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="105" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1283" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="434" 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="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.Textured.Stream Mapping" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="258" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="128" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="851" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="270" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + </RmRegistryBranch> + </RmRegistryBranch> + <RmRegistryBranch NAME="WORKSPACE" API="" XML_VERSION="RenderMonkey 1.71"> + <RmStringVariable NAME="LAST_SAVE" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +20/1/2008 12:42:24]]></RmTextDataBlock></RmStringVariable> + <RmStringVariable NAME="VERSION" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +RenderMonkey Version 1.80 (build 125)]]></RmTextDataBlock></RmStringVariable> + <RmStringVariable NAME="XML_VERSION" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +RenderMonkey 1.71]]></RmTextDataBlock></RmStringVariable> + <RmStringVariable NAME="BASE_WORKSPACE_PATH" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +D:\svn\redbook\Code\Chapter_13\Noise3D\]]></RmTextDataBlock></RmStringVariable> + </RmRegistryBranch> + </RmRegistryBranch> + </RmRegistryBranch> + <RmOpenGLESEffect NAME="Textured" API="OpenGL ES" ACTIVE_CAMERA="Camera"> + <RmCamera NAME="Camera" API="" CAMERA_POSITION_X="-80.307373" CAMERA_POSITION_Y="12.115058" CAMERA_POSITION_Z="-182.767441" LOOK_AT_VECTOR_X="0.000000" LOOK_AT_VECTOR_Y="0.000000" LOOK_AT_VECTOR_Z="0.000000" UP_VECTOR_X="-0.012923" UP_VECTOR_Y="0.997336" UP_VECTOR_Z="0.071790" FOV="45.000000" NEAR_CLIP_PLANE="1.000000" FAR_CLIP_PLANE="1000.000000"/> + <RmFloatVariable NAME="u_fogMinDist" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-200.000000" MIN="-1.000000" MAX="0.000000" CLAMP="FALSE"/> + <RmFloatVariable NAME="u_fogMaxDist" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="500.000000" MIN="-1.000000" MAX="1.000000" CLAMP="FALSE"/> + <RmVectorVariable NAME="u_eyePos" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="ViewPosition" VALUE_0="-80.307373" VALUE_1="12.115058" VALUE_2="-182.767441" VALUE_3="1.000000" MIN="-10.000000" MAX="10.000000" CLAMP="FALSE" NORMALIZE="FALSE"/> + <RmMatrixVariable NAME="u_matView" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="View" VALUE_0="-0.915752" VALUE_1="-0.040636" VALUE_2="0.399684" VALUE_3="-0.000002" VALUE_4="-0.012923" VALUE_5="0.997336" VALUE_6="0.071790" VALUE_7="0.000279" VALUE_8="-0.401537" VALUE_9="0.060575" VALUE_10="-0.913837" VALUE_11="-199.999985" VALUE_12="0.000000" VALUE_13="0.000000" VALUE_14="0.000000" VALUE_15="1.000000"/> + <RmMatrixVariable NAME="u_matViewProjection" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="ViewProjection" VALUE_0="-2.005162" VALUE_1="-0.088978" VALUE_2="0.875163" VALUE_3="-0.000005" VALUE_4="-0.031199" VALUE_5="2.407782" VALUE_6="0.173316" VALUE_7="0.000675" VALUE_8="0.401939" VALUE_9="-0.060636" VALUE_10="0.914752" VALUE_11="199.199188" VALUE_12="0.401537" VALUE_13="-0.060575" VALUE_14="0.913837" VALUE_15="199.999985"/> + <RmFloatVariable NAME="u_time" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="Time0_X" VALUE="100.126518" MIN="-1.000000" MAX="1.000000" CLAMP="FALSE"/> + <RmColorVariable NAME="u_fogColor" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE_0="1.000000" VALUE_1="1.000000" VALUE_2="1.000000" VALUE_3="0.000000"/> + <Rm2DTextureVariable NAME="base" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" FILE_NAME="Terrain.tga" ORIGIN="0"/> + <Rm3DTextureVariable NAME="NoiseVolume" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" FILE_NAME="NoiseVolume.dds" ORIGIN="0"/> + <RmStreamMap NAME="Stream Mapping" API=""> + <RmStream NAME="Stream" API="" STRIDE="20"> + <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_texCoord"/> + </RmStream> + </RmStreamMap> + <RmModelData NAME="Model" API="" FILE_NAME=".\Terrain.3ds" ORIENTATION="0"/> + <RmModelData NAME="SkyDome" API="" FILE_NAME=".\SkyDome.3ds" ORIENTATION="0"/> + <RmGLESPass NAME="Sky" API="OpenGL ES" PASS_INDEX="0" ENABLED="TRUE"> + <RmCameraReference NAME="Camera" API="" USE_ACTIVE_CAMERA="FALSE"/> + <RmModelReference NAME="SkyDome" API=""/> + <RmRenderStateBlock NAME="Render State" API="OpenGL ES"> + <RmState NAME="GL_FrontFace" API="OpenGL ES" STATE="7" VALUE="2" USAGE="RENDER_STATE"/> + </RmRenderStateBlock> + <RmGLESShader NAME="Vertex Program" API="OpenGL ES" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[ +uniform mat4 u_matViewProjection; +attribute vec4 a_vertex; +void main(void) +{ + gl_Position = u_matViewProjection * a_vertex; +}]]></RmShaderCode></RmGLESShader> + <RmGLESShader NAME="Fragment Program" API="OpenGL ES" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[ +#ifdef GL_FRAGMENT_PRECISION_HIGH + // Default precision + precision highp float; +#else + precision mediump float; +#endif + +uniform vec4 u_fogColor; + +void main(void) +{ + gl_FragColor = u_fogColor; +}]]></RmShaderCode></RmGLESShader> + <RmStreamMapReference NAME="Stream Mapping" API=""/> + <RmShaderConstant NAME="u_fogColor" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_matViewProjection" API="" REGISTER="-1"/> + </RmGLESPass> + <RmGLESPass NAME="Terrain" API="OpenGL ES" PASS_INDEX="1" ENABLED="TRUE"> + <RmCameraReference NAME="Camera" API="" USE_ACTIVE_CAMERA="FALSE"/> + <RmModelReference NAME="Model" API=""/> + <RmRenderStateBlock NAME="Render State" API="OpenGL ES"> + <RmState NAME="GL_FrontFace" API="OpenGL ES" STATE="7" VALUE="1" USAGE="RENDER_STATE"/> + </RmRenderStateBlock> + <RmGLESShader NAME="Vertex Program" API="OpenGL ES" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[ +uniform mat4 u_matViewProjection; +uniform mat4 u_matView; +uniform vec4 u_eyePos; + +attribute vec4 a_vertex; +attribute vec2 a_texCoord; + +varying vec2 v_texCoord; +varying float v_eyeDist; + +void main( void ) +{ + // Transform vertex to view-space + vec4 vViewPos = u_matView * a_vertex; + + // Compute the distance to eye + v_eyeDist = sqrt( (vViewPos.x - u_eyePos.x) * + (vViewPos.x - u_eyePos.x) + + (vViewPos.y - u_eyePos.y) * + (vViewPos.y - u_eyePos.y) + + (vViewPos.z - u_eyePos.z) * + (vViewPos.z - u_eyePos.z) ); + + gl_Position = u_matViewProjection * a_vertex; + v_texCoord = a_texCoord.xy; +}]]></RmShaderCode></RmGLESShader> + <RmGLESShader NAME="Fragment Program" API="OpenGL ES" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[ +#extension GL_OES_texture_3D : enable +precision mediump float; + +uniform vec4 u_fogColor; +uniform float u_fogMaxDist; +uniform float u_fogMinDist; +uniform float u_time; +uniform sampler2D baseMap; +uniform sampler3D noiseVolume; + +varying vec2 v_texCoord; +varying float v_eyeDist; + +float computeLinearFogFactor() +{ + float factor; + + // Compute linear fog equation + factor = (u_fogMaxDist - v_eyeDist) / + (u_fogMaxDist - u_fogMinDist ); + + return factor; +} + +void main( void ) +{ + float fogFactor = computeLinearFogFactor(); + vec4 baseColor = texture2D( baseMap, v_texCoord ); + + // Distort fog factor by noise + vec3 noiseCoord; + noiseCoord.xy = v_texCoord.xy - ( u_time * 0.1 ); + noiseCoord.z = u_time * 0.1; + + fogFactor += texture3D( noiseVolume, noiseCoord ).r; + fogFactor = clamp ( fogFactor, 0.0, 1.0 ); + + // Compute final color as a lerp with fog factor + gl_FragColor = baseColor * fogFactor + + u_fogColor * (1.0 - fogFactor); +}]]></RmShaderCode></RmGLESShader> + <RmStreamMapReference NAME="Stream Mapping" API=""/> + <RmTextureObject NAME="baseMap" API="OpenGL ES" STATE_INDEX="0" VERTEX_TEXTURE="FALSE"> + <RmTextureReference NAME="base" API=""/> + <RmState NAME="GL_TextureMinify" API="OpenGL ES" STATE="4" VALUE="6" USAGE="SAMPLER_STATE"/> + <RmState NAME="GL_TextureMagnify" API="OpenGL ES" STATE="5" VALUE="1" USAGE="SAMPLER_STATE"/> + </RmTextureObject> + <RmTextureObject NAME="noiseVolume" API="OpenGL ES" STATE_INDEX="1" VERTEX_TEXTURE="FALSE"> + <RmTextureReference NAME="NoiseVolume" API=""/> + </RmTextureObject> + <RmSampler NAME="baseMap" API="" REGISTER="-1"/> + <RmSampler NAME="noiseVolume" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_fogMaxDist" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_fogMinDist" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_matView" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_matViewProjection" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_time" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_eyePos" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_fogColor" API="" REGISTER="-1"/> + </RmGLESPass> + </RmOpenGLESEffect> + </RmEffectWorkspace> +</RENDER_MONKEY> diff --git a/third_party/gles2_book/Chapter_13/Noise3D/NoiseVolume.dds b/third_party/gles2_book/Chapter_13/Noise3D/NoiseVolume.dds Binary files differnew file mode 100644 index 0000000..bd8147d --- /dev/null +++ b/third_party/gles2_book/Chapter_13/Noise3D/NoiseVolume.dds diff --git a/third_party/gles2_book/Chapter_13/Noise3D/SkyDome.3ds b/third_party/gles2_book/Chapter_13/Noise3D/SkyDome.3ds Binary files differnew file mode 100644 index 0000000..5994396 --- /dev/null +++ b/third_party/gles2_book/Chapter_13/Noise3D/SkyDome.3ds diff --git a/third_party/gles2_book/Chapter_13/Noise3D/Terrain.3ds b/third_party/gles2_book/Chapter_13/Noise3D/Terrain.3ds Binary files differnew file mode 100644 index 0000000..a46d787 --- /dev/null +++ b/third_party/gles2_book/Chapter_13/Noise3D/Terrain.3ds diff --git a/third_party/gles2_book/Chapter_13/Noise3D/Terrain.tga b/third_party/gles2_book/Chapter_13/Noise3D/Terrain.tga Binary files differnew file mode 100644 index 0000000..47d5117 --- /dev/null +++ b/third_party/gles2_book/Chapter_13/Noise3D/Terrain.tga diff --git a/third_party/gles2_book/Chapter_13/Noise3D/generatenoise.c b/third_party/gles2_book/Chapter_13/Noise3D/generatenoise.c new file mode 100644 index 0000000..a4c969b --- /dev/null +++ b/third_party/gles2_book/Chapter_13/Noise3D/generatenoise.c @@ -0,0 +1,147 @@ +#include <stdlib.h> +#include <math.h> + +// permTable describes a random permutatin of 8-bit values from 0 to 255. +static unsigned char permTable[256] = { + 0xE1, 0x9B, 0xD2, 0x6C, 0xAF, 0xC7, 0xDD, 0x90, 0xCB, 0x74, 0x46, 0xD5, 0x45, 0x9E, 0x21, 0xFC, + 0x05, 0x52, 0xAD, 0x85, 0xDE, 0x8B, 0xAE, 0x1B, 0x09, 0x47, 0x5A, 0xF6, 0x4B, 0x82, 0x5B, 0xBF, + 0xA9, 0x8A, 0x02, 0x97, 0xC2, 0xEB, 0x51, 0x07, 0x19, 0x71, 0xE4, 0x9F, 0xCD, 0xFD, 0x86, 0x8E, + 0xF8, 0x41, 0xE0, 0xD9, 0x16, 0x79, 0xE5, 0x3F, 0x59, 0x67, 0x60, 0x68, 0x9C, 0x11, 0xC9, 0x81, + 0x24, 0x08, 0xA5, 0x6E, 0xED, 0x75, 0xE7, 0x38, 0x84, 0xD3, 0x98, 0x14, 0xB5, 0x6F, 0xEF, 0xDA, + 0xAA, 0xA3, 0x33, 0xAC, 0x9D, 0x2F, 0x50, 0xD4, 0xB0, 0xFA, 0x57, 0x31, 0x63, 0xF2, 0x88, 0xBD, + 0xA2, 0x73, 0x2C, 0x2B, 0x7C, 0x5E, 0x96, 0x10, 0x8D, 0xF7, 0x20, 0x0A, 0xC6, 0xDF, 0xFF, 0x48, + 0x35, 0x83, 0x54, 0x39, 0xDC, 0xC5, 0x3A, 0x32, 0xD0, 0x0B, 0xF1, 0x1C, 0x03, 0xC0, 0x3E, 0xCA, + 0x12, 0xD7, 0x99, 0x18, 0x4C, 0x29, 0x0F, 0xB3, 0x27, 0x2E, 0x37, 0x06, 0x80, 0xA7, 0x17, 0xBC, + 0x6A, 0x22, 0xBB, 0x8C, 0xA4, 0x49, 0x70, 0xB6, 0xF4, 0xC3, 0xE3, 0x0D, 0x23, 0x4D, 0xC4, 0xB9, + 0x1A, 0xC8, 0xE2, 0x77, 0x1F, 0x7B, 0xA8, 0x7D, 0xF9, 0x44, 0xB7, 0xE6, 0xB1, 0x87, 0xA0, 0xB4, + 0x0C, 0x01, 0xF3, 0x94, 0x66, 0xA6, 0x26, 0xEE, 0xFB, 0x25, 0xF0, 0x7E, 0x40, 0x4A, 0xA1, 0x28, + 0xB8, 0x95, 0xAB, 0xB2, 0x65, 0x42, 0x1D, 0x3B, 0x92, 0x3D, 0xFE, 0x6B, 0x2A, 0x56, 0x9A, 0x04, + 0xEC, 0xE8, 0x78, 0x15, 0xE9, 0xD1, 0x2D, 0x62, 0xC1, 0x72, 0x4E, 0x13, 0xCE, 0x0E, 0x76, 0x7F, + 0x30, 0x4F, 0x93, 0x55, 0x1E, 0xCF, 0xDB, 0x36, 0x58, 0xEA, 0xBE, 0x7A, 0x5F, 0x43, 0x8F, 0x6D, + 0x89, 0xD6, 0x91, 0x5D, 0x5C, 0x64, 0xF5, 0x00, 0xD8, 0xBA, 0x3C, 0x53, 0x69, 0x61, 0xCC, 0x34, + }; + +#define NOISE_TABLE_MASK 255 + +// lattice gradients 3D noise +static float gradientTable[256*3]; + +#define FLOOR(x) ((int)(x) - ((x) < 0 && (x) != (int)(x))) +#define smoothstep(t) ( t * t * (3.0f - 2.0f * t) ) +#define lerp(t, a, b) ( a + t * (b - a) ) + +void +initNoiseTable() +{ + long rnd; + int i; + double a; + float x, y, z, r, theta; + float gradients[256*3]; + unsigned int *p, *psrc; + + srandom(0); + + // build gradient table for 3D noise + for (i=0; i<256; i++) + { + /* + * calculate 1 - 2 * random number + */ + rnd = random(); + a = (random() & 0x7FFFFFFF) / (double) 0x7FFFFFFF; + z = (float)(1.0 - 2.0 * a); + + r = (float)sqrt(1.0 - z * z); // r is radius of circle + + rnd = random(); + a = (float)((random() & 0x7FFFFFFF) / (double) 0x7FFFFFFF); + theta = (float)(2.0 * M_PI * a); + x = (float)(r * (float)cos(a)); + y = (float)(r * (float)sin(a)); + + gradients[i*3] = x; + gradients[i*3+1] = y; + gradients[i*3+2] = z; + } + + // use the index in the permutation table to load the + // gradient values from gradients to gradientTable + p = (unsigned int *)gradientTable; + psrc = (unsigned int *)gradients; + for (i=0; i<256; i++) + { + int indx = permTable[i]; + p[i*3] = psrc[indx*3]; + p[i*3+1] = psrc[indx*3+1]; + p[i*3+2] = psrc[indx*3+2]; + } +} +// +// generate the value of gradient noise for a given lattice point +// +// (ix, iy, iz) specifies the 3D lattice position +// (fx, fy, fz) specifies the fractional part +// +static float +glattice3D(int ix, int iy, int iz, float fx, float fy, float fz) +{ + float *g; + int indx, y, z; + + z = permTable[iz & NOISE_TABLE_MASK]; + y = permTable[(iy + z) & NOISE_TABLE_MASK]; + indx = (ix + y) & NOISE_TABLE_MASK; + g = &gradientTable[indx*3]; + + return (g[0]*fx + g[1]*fy + g[2]*fz); +} + +// +// generate the 3D noise value +// f describes the input (x, y, z) position for which the noise value needs to be computed +// noise3D returns the scalar noise value +// +float +noise3D(float *f) +{ + int ix, iy, iz; + float fx0, fx1, fy0, fy1, fz0, fz1; + float wx, wy, wz; + float vx0, vx1, vy0, vy1, vz0, vz1; + + ix = FLOOR(f[0]); + fx0 = f[0] - ix; + fx1 = fx0 - 1; + wx = smoothstep(fx0); + + iy = FLOOR(f[1]); + fy0 = f[1] - iy; + fy1 = fy0 - 1; + wy = smoothstep(fy0); + + iz = FLOOR(f[2]); + fz0 = f[2] - iz; + fz1 = fz0 - 1; + wz = smoothstep(fz0); + + vx0 = glattice3D(ix, iy, iz, fx0, fy0, fz0); + vx1 = glattice3D(ix+1, iy, iz, fx1, fy0, fz0); + vy0 = lerp(wx, vx0, vx1); + vx0 = glattice3D(ix, iy+1, iz, fx0, fy1, fz0); + vx1 = glattice3D(ix+1, iy+1, iz, fx1, fy1, fz0); + vy1 = lerp(wx, vx0, vx1); + vz0 = lerp(wy, vy0, vy1); + + vx0 = glattice3D(ix, iy, iz+1, fx0, fy0, fz1); + vx1 = glattice3D(ix+1, iy, iz+1, fx1, fy0, fz1); + vy0 = lerp(wx, vx0, vx1); + vx0 = glattice3D(ix, iy+1, iz+1, fx0, fy1, fz1); + vx1 = glattice3D(ix+1, iy+1, iz+1, fx1, fy1, fz1); + vy1 = lerp(wx, vx0, vx1); + vz1 = lerp(wy, vy0, vy1); + + return lerp(wz, vz0, vz1);; +} + + diff --git a/third_party/gles2_book/Chapter_13/ParticleSystem/ParticleSystem.c b/third_party/gles2_book/Chapter_13/ParticleSystem/ParticleSystem.c new file mode 100644 index 0000000..c6be9cf --- /dev/null +++ b/third_party/gles2_book/Chapter_13/ParticleSystem/ParticleSystem.c @@ -0,0 +1,294 @@ +// +// Book: OpenGL(R) ES 2.0 Programming Guide +// Authors: Aaftab Munshi, Dan Ginsburg, Dave Shreiner +// ISBN-10: 0321502795 +// ISBN-13: 9780321502797 +// Publisher: Addison-Wesley Professional +// URLs: http://safari.informit.com/9780321563835 +// http://www.opengles-book.com +// + +// ParticleSystem.c +// +// This is an example that demonstrates rendering a particle system +// using a vertex shader and point sprites. +// +#include <stdlib.h> +#include <math.h> +#include "esUtil.h" + +#define NUM_PARTICLES 1000 +#define PARTICLE_SIZE 7 + +typedef struct +{ + // Handle to a program object + GLuint programObject; + + // Attribute locations + GLint lifetimeLoc; + GLint startPositionLoc; + GLint endPositionLoc; + + // Uniform location + GLint timeLoc; + GLint colorLoc; + GLint centerPositionLoc; + GLint samplerLoc; + + // Texture handle + GLuint textureId; + + // Particle vertex data + float particleData[ NUM_PARTICLES * PARTICLE_SIZE ]; + + // Current time + float time; + +} UserData; + +/// +// Load texture from disk +// +GLuint LoadTexture ( char *fileName ) +{ + int width, + height; + char *buffer = esLoadTGA ( fileName, &width, &height ); + GLuint texId; + + if ( buffer == NULL ) + { + esLogMessage ( "Error loading (%s) image.\n", fileName ); + return 0; + } + + glGenTextures ( 1, &texId ); + glBindTexture ( GL_TEXTURE_2D, texId ); + + glTexImage2D ( GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, buffer ); + glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); + glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR ); + glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE ); + glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE ); + + free ( buffer ); + + return texId; +} + + +/// +// Initialize the shader and program object +// +int Init ( ESContext *esContext ) +{ + UserData *userData = esContext->userData; + int i; + + GLbyte vShaderStr[] = + "uniform float u_time; \n" + "uniform vec3 u_centerPosition; \n" + "attribute float a_lifetime; \n" + "attribute vec3 a_startPosition; \n" + "attribute vec3 a_endPosition; \n" + "varying float v_lifetime; \n" + "void main() \n" + "{ \n" + " if ( u_time <= a_lifetime ) \n" + " { \n" + " gl_Position.xyz = a_startPosition + \n" + " (u_time * a_endPosition); \n" + " gl_Position.xyz += u_centerPosition; \n" + " gl_Position.w = 1.0; \n" + " } \n" + " else \n" + " gl_Position = vec4( -1000, -1000, 0, 0 ); \n" + " v_lifetime = 1.0 - ( u_time / a_lifetime ); \n" + " v_lifetime = clamp ( v_lifetime, 0.0, 1.0 ); \n" + " gl_PointSize = ( v_lifetime * v_lifetime ) * 40.0; \n" + "}"; + + GLbyte fShaderStr[] = + "precision mediump float; \n" + "uniform vec4 u_color; \n" + "varying float v_lifetime; \n" + "uniform sampler2D s_texture; \n" + "void main() \n" + "{ \n" + " vec4 texColor; \n" + " texColor = texture2D( s_texture, gl_PointCoord ); \n" + " gl_FragColor = vec4( u_color ) * texColor; \n" + " gl_FragColor.a *= v_lifetime; \n" + "} \n"; + + // Load the shaders and get a linked program object + userData->programObject = esLoadProgram ( vShaderStr, fShaderStr ); + + // Get the attribute locations + userData->lifetimeLoc = glGetAttribLocation ( userData->programObject, "a_lifetime" ); + userData->startPositionLoc = glGetAttribLocation ( userData->programObject, "a_startPosition" ); + userData->endPositionLoc = glGetAttribLocation ( userData->programObject, "a_endPosition" ); + + // Get the uniform locations + userData->timeLoc = glGetUniformLocation ( userData->programObject, "u_time" ); + userData->centerPositionLoc = glGetUniformLocation ( userData->programObject, "u_centerPosition" ); + userData->colorLoc = glGetUniformLocation ( userData->programObject, "u_color" ); + userData->samplerLoc = glGetUniformLocation ( userData->programObject, "s_texture" ); + + glClearColor ( 0.0f, 0.0f, 0.0f, 0.0f ); + + // Fill in particle data array + srand ( 0 ); + for ( i = 0; i < NUM_PARTICLES; i++ ) + { + float *particleData = &userData->particleData[i * PARTICLE_SIZE]; + + // Lifetime of particle + (*particleData++) = ( (float)(rand() % 10000) / 10000.0f ); + + // End position of particle + (*particleData++) = ( (float)(rand() % 10000) / 5000.0f ) - 1.0f; + (*particleData++) = ( (float)(rand() % 10000) / 5000.0f ) - 1.0f; + (*particleData++) = ( (float)(rand() % 10000) / 5000.0f ) - 1.0f; + + // Start position of particle + (*particleData++) = ( (float)(rand() % 10000) / 40000.0f ) - 0.125f; + (*particleData++) = ( (float)(rand() % 10000) / 40000.0f ) - 0.125f; + (*particleData++) = ( (float)(rand() % 10000) / 40000.0f ) - 0.125f; + + } + + // Initialize time to cause reset on first update + userData->time = 1.0f; + + userData->textureId = LoadTexture ( "smoke.tga" ); + if ( userData->textureId <= 0 ) + { + return FALSE; + } + + return TRUE; +} + +/// +// Update time-based variables +// +void Update ( ESContext *esContext, float deltaTime ) +{ + UserData *userData = esContext->userData; + + userData->time += deltaTime; + + if ( userData->time >= 1.0f ) + { + float centerPos[3]; + float color[4]; + + userData->time = 0.0f; + + // Pick a new start location and color + centerPos[0] = ( (float)(rand() % 10000) / 10000.0f ) - 0.5f; + centerPos[1] = ( (float)(rand() % 10000) / 10000.0f ) - 0.5f; + centerPos[2] = ( (float)(rand() % 10000) / 10000.0f ) - 0.5f; + + glUniform3fv ( userData->centerPositionLoc, 1, ¢erPos[0] ); + + // Random color + color[0] = ( (float)(rand() % 10000) / 20000.0f ) + 0.5f; + color[1] = ( (float)(rand() % 10000) / 20000.0f ) + 0.5f; + color[2] = ( (float)(rand() % 10000) / 20000.0f ) + 0.5f; + color[3] = 0.5; + + glUniform4fv ( userData->colorLoc, 1, &color[0] ); + } + + // Load uniform time variable + glUniform1f ( userData->timeLoc, userData->time ); +} + +/// +// Draw a triangle using the shader pair created in Init() +// +void Draw ( ESContext *esContext ) +{ + UserData *userData = esContext->userData; + + // Set the viewport + glViewport ( 0, 0, esContext->width, esContext->height ); + + // Clear the color buffer + glClear ( GL_COLOR_BUFFER_BIT ); + + // Use the program object + glUseProgram ( userData->programObject ); + + // Load the vertex attributes + glVertexAttribPointer ( userData->lifetimeLoc, 1, GL_FLOAT, + GL_FALSE, PARTICLE_SIZE * sizeof(GLfloat), + userData->particleData ); + + glVertexAttribPointer ( userData->endPositionLoc, 3, GL_FLOAT, + GL_FALSE, PARTICLE_SIZE * sizeof(GLfloat), + &userData->particleData[1] ); + + glVertexAttribPointer ( userData->startPositionLoc, 3, GL_FLOAT, + GL_FALSE, PARTICLE_SIZE * sizeof(GLfloat), + &userData->particleData[4] ); + + + glEnableVertexAttribArray ( userData->lifetimeLoc ); + glEnableVertexAttribArray ( userData->endPositionLoc ); + glEnableVertexAttribArray ( userData->startPositionLoc ); + // Blend particles + glEnable ( GL_BLEND ); + glBlendFunc ( GL_SRC_ALPHA, GL_ONE ); + + // Bind the texture + glActiveTexture ( GL_TEXTURE0 ); + glBindTexture ( GL_TEXTURE_2D, userData->textureId ); + glEnable ( GL_TEXTURE_2D ); + + // Set the sampler texture unit to 0 + glUniform1i ( userData->samplerLoc, 0 ); + + glDrawArrays( GL_POINTS, 0, NUM_PARTICLES ); + + eglSwapBuffers ( esContext->eglDisplay, esContext->eglSurface ); +} + +/// +// Cleanup +// +void ShutDown ( ESContext *esContext ) +{ + UserData *userData = esContext->userData; + + // Delete texture object + glDeleteTextures ( 1, &userData->textureId ); + + // Delete program object + glDeleteProgram ( userData->programObject ); +} + + +int main ( int argc, char *argv[] ) +{ + ESContext esContext; + UserData userData; + + esInitContext ( &esContext ); + esContext.userData = &userData; + + esCreateWindow ( &esContext, "ParticleSystem", 640, 480, ES_WINDOW_RGB ); + + if ( !Init ( &esContext ) ) + return 0; + + esRegisterDrawFunc ( &esContext, Draw ); + esRegisterUpdateFunc ( &esContext, Update ); + + esMainLoop ( &esContext ); + + ShutDown ( &esContext ); +} diff --git a/third_party/gles2_book/Chapter_13/ParticleSystem/smoke.tga b/third_party/gles2_book/Chapter_13/ParticleSystem/smoke.tga Binary files differnew file mode 100644 index 0000000..06a0705 --- /dev/null +++ b/third_party/gles2_book/Chapter_13/ParticleSystem/smoke.tga diff --git a/third_party/gles2_book/Chapter_13/PerFragmentLighting/Fieldstone.tga b/third_party/gles2_book/Chapter_13/PerFragmentLighting/Fieldstone.tga Binary files differnew file mode 100644 index 0000000..8acafae --- /dev/null +++ b/third_party/gles2_book/Chapter_13/PerFragmentLighting/Fieldstone.tga diff --git a/third_party/gles2_book/Chapter_13/PerFragmentLighting/FieldstoneBumpDOT3.tga b/third_party/gles2_book/Chapter_13/PerFragmentLighting/FieldstoneBumpDOT3.tga Binary files differnew file mode 100644 index 0000000..6290f52 --- /dev/null +++ b/third_party/gles2_book/Chapter_13/PerFragmentLighting/FieldstoneBumpDOT3.tga 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> diff --git a/third_party/gles2_book/Chapter_13/PerFragmentLighting/Torus.3ds b/third_party/gles2_book/Chapter_13/PerFragmentLighting/Torus.3ds Binary files differnew file mode 100644 index 0000000..cceac9aa --- /dev/null +++ b/third_party/gles2_book/Chapter_13/PerFragmentLighting/Torus.3ds diff --git a/third_party/gles2_book/Chapter_13/PostProcess/Car.3ds b/third_party/gles2_book/Chapter_13/PostProcess/Car.3ds Binary files differnew file mode 100644 index 0000000..fb261dc --- /dev/null +++ b/third_party/gles2_book/Chapter_13/PostProcess/Car.3ds diff --git a/third_party/gles2_book/Chapter_13/PostProcess/Cube.x b/third_party/gles2_book/Chapter_13/PostProcess/Cube.x new file mode 100644 index 0000000..35c0f4c --- /dev/null +++ b/third_party/gles2_book/Chapter_13/PostProcess/Cube.x @@ -0,0 +1,215 @@ +xof 0303txt 0032 +template XSkinMeshHeader { + <3cf169ce-ff7c-44ab-93c0-f78f62d172e2> + WORD nMaxSkinWeightsPerVertex; + WORD nMaxSkinWeightsPerFace; + WORD nBones; +} + +template VertexDuplicationIndices { + <b8d65549-d7c9-4995-89cf-53a9a8b031e3> + DWORD nIndices; + DWORD nOriginalVertices; + array DWORD indices[nIndices]; +} + +template SkinWeights { + <6f0d123b-bad2-4167-a0d0-80224f25fabb> + STRING transformNodeName; + DWORD nWeights; + array DWORD vertexIndices[nWeights]; + array FLOAT weights[nWeights]; + Matrix4x4 matrixOffset; +} + + +Frame SCENE_ROOT { + + + FrameTransformMatrix { + 1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000;; + } + + Frame groundPlane_transform { + + + FrameTransformMatrix { + 10.000000,0.000000,0.000000,0.000000,0.000000,0.000000,10.000000,0.000000,0.000000,-1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,1.000000;; + } + } + + Frame persp { + + + FrameTransformMatrix { + -0.912120,-0.000000,0.409923,0.000000,0.165019,0.915393,0.367184,0.000000,-0.375241,0.402561,-0.834949,0.000000,-110.715416,118.776169,-246.352966,1.000000;; + } + } + + Frame top { + + + FrameTransformMatrix { + 1.000000,0.000000,0.000000,0.000000,0.000000,0.000000,-1.000000,0.000000,0.000000,1.000000,0.000000,0.000000,-552.763062,10020.154297,128.411041,1.000000;; + } + } + + Frame front { + + + FrameTransformMatrix { + 1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,64.176056,1999.952515,10134.481445,1.000000;; + } + } + + Frame side { + + + FrameTransformMatrix { + 0.000000,0.000000,-1.000000,0.000000,0.000000,1.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,10124.230469,1585.576538,76.173088,1.000000;; + } + } + + Frame pCube1 { + + + FrameTransformMatrix { + 1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000;; + } + + Mesh pCubeShape1 { + 24; + -50.000000;-50.000000;50.000000;, + 50.000000;-50.000000;50.000000;, + -50.000000;50.000000;50.000000;, + 50.000000;50.000000;50.000000;, + -50.000000;50.000000;-50.000000;, + 50.000000;50.000000;-50.000000;, + -50.000000;-50.000000;-50.000000;, + 50.000000;-50.000000;-50.000000;, + -50.000000;50.000000;50.000000;, + 50.000000;50.000000;50.000000;, + -50.000000;50.000000;-50.000000;, + 50.000000;50.000000;-50.000000;, + -50.000000;-50.000000;-50.000000;, + 50.000000;-50.000000;-50.000000;, + 50.000000;-50.000000;50.000000;, + -50.000000;-50.000000;50.000000;, + 50.000000;-50.000000;50.000000;, + 50.000000;-50.000000;-50.000000;, + 50.000000;50.000000;-50.000000;, + 50.000000;50.000000;50.000000;, + -50.000000;-50.000000;-50.000000;, + -50.000000;-50.000000;50.000000;, + -50.000000;50.000000;50.000000;, + -50.000000;50.000000;-50.000000;; + 6; + 4;0,1,3,2;, + 4;8,9,5,4;, + 4;10,11,7,6;, + 4;12,13,14,15;, + 4;16,17,18,19;, + 4;20,21,22,23;; + + MeshNormals { + 6; + -1.000000;0.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;0.000000;-1.000000;, + 0.000000;0.000000;1.000000;, + 0.000000;1.000000;0.000000;, + 1.000000;0.000000;0.000000;; + 6; + 4;3,3,3,3;, + 4;4,4,4,4;, + 4;2,2,2,2;, + 4;1,1,1,1;, + 4;5,5,5,5;, + 4;0,0,0,0;; + } + + MeshTextureCoords { + 24; + 0.000000;0.000000;, + 1.000000;0.000000;, + 0.000000;-1.000000;, + 1.000000;-1.000000;, + 0.000000;-2.000000;, + 1.000000;-2.000000;, + 0.000000;-3.000000;, + 1.000000;-3.000000;, + 0.000000;-1.000000;, + 1.000000;-1.000000;, + 0.000000;-2.000000;, + 1.000000;-2.000000;, + 0.000000;-3.000000;, + 1.000000;-3.000000;, + 1.000000;-4.000000;, + 0.000000;-4.000000;, + 1.000000;0.000000;, + 2.000000;0.000000;, + 2.000000;-1.000000;, + 1.000000;-1.000000;, + -1.000000;0.000000;, + 0.000000;0.000000;, + 0.000000;-1.000000;, + -1.000000;-1.000000;; + } + + MeshMaterialList { + 1; + 6; + 0, + 0, + 0, + 0, + 0, + 0; + + Material Arm_left { + 0.800000;0.800000;0.800000;1.000000;; + 0.500000; + 0.500000;0.500000;0.500000;; + 0.000000;0.000000;0.000000;; + + TextureFilename { + "../Tex/EX_1_c0_arm_left.png"; + } + } + } + + VertexDuplicationIndices { + 24; + 8; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 2, + 3, + 4, + 5, + 6, + 7, + 1, + 0, + 1, + 7, + 5, + 3, + 6, + 0, + 2, + 4; + } + } + } +} + +AnimationSet { + +}
\ No newline at end of file diff --git a/third_party/gles2_book/Chapter_13/PostProcess/Fieldstone.tga b/third_party/gles2_book/Chapter_13/PostProcess/Fieldstone.tga Binary files differnew file mode 100644 index 0000000..8acafae --- /dev/null +++ b/third_party/gles2_book/Chapter_13/PostProcess/Fieldstone.tga diff --git a/third_party/gles2_book/Chapter_13/PostProcess/PostProcess.rfx b/third_party/gles2_book/Chapter_13/PostProcess/PostProcess.rfx new file mode 100644 index 0000000..d8e7047 --- /dev/null +++ b/third_party/gles2_book/Chapter_13/PostProcess/PostProcess.rfx @@ -0,0 +1,1395 @@ +<?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.PostProcess Effects.Simple Blur" 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>13</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>13</LastHolder></Pane-1><Pane-2><Type>0</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Title>u_blurStep</Title><ID>1100</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>7</DockingHolder><FloatingHolder>18</FloatingHolder><LastHolder>18</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><Panes>5</Panes></Pane-3><Pane-4><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-4><Pane-5><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-5><Pane-6><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-6><Pane-7><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-7><Pane-8><Type>2</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><Horiz>0</Horiz><Pane-1>9</Pane-1><Pane-2>14</Pane-2><Panes>2</Panes></Pane-8><Pane-9><Type>2</Type><DockingCX>0</DockingCX><DockingCY>791</DockingCY><Horiz>1</Horiz><Pane-1>10</Pane-1><Pane-2>12</Pane-2><Pane-3>13</Pane-3><Panes>3</Panes></Pane-9><Pane-10><Type>1</Type><DockingCX>336</DockingCX><DockingCY>250</DockingCY><Selected>11</Selected><Panes>1</Panes><Pane-1>11</Pane-1></Pane-10><Pane-11><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Workspace</Title><ID>1000</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>10</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>10</LastHolder></Pane-11><Pane-12><Type>4</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY></Pane-12><Pane-13><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-13><Pane-14><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>15</Selected><Panes>1</Panes><Pane-1>15</Pane-1></Pane-14><Pane-15><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Output</Title><ID>1002</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>14</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>14</LastHolder></Pane-15><Pane-16><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>17</TopContaner><WindowRectTopPos>32</WindowRectTopPos><WindowRectBottomPos>160</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>566</WindowRectRightPos></Pane-16><Pane-17><Type>2</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Horiz>1</Horiz><Pane-1>18</Pane-1><Panes>1</Panes></Pane-17><Pane-18><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-18><Pane-19><Type>0</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Title>u_blurStep</Title><ID>1101</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>6</DockingHolder><FloatingHolder>22</FloatingHolder><LastHolder>22</LastHolder></Pane-19><Pane-20><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>21</TopContaner><WindowRectTopPos>32</WindowRectTopPos><WindowRectBottomPos>160</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>566</WindowRectRightPos></Pane-20><Pane-21><Type>2</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Horiz>1</Horiz><Pane-1>22</Pane-1><Panes>1</Panes></Pane-21><Pane-22><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-22><Pane-23><Type>0</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Title>u_blurStep</Title><ID>1102</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>5</DockingHolder><FloatingHolder>26</FloatingHolder><LastHolder>26</LastHolder></Pane-23><Pane-24><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>25</TopContaner><WindowRectTopPos>32</WindowRectTopPos><WindowRectBottomPos>160</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>566</WindowRectRightPos></Pane-24><Pane-25><Type>2</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Horiz>1</Horiz><Pane-1>26</Pane-1><Panes>1</Panes></Pane-25><Pane-26><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-26><Pane-27><Type>0</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Title>u_blurStep</Title><ID>1103</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>4</DockingHolder><FloatingHolder>30</FloatingHolder><LastHolder>30</LastHolder></Pane-27><Pane-28><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>29</TopContaner><WindowRectTopPos>32</WindowRectTopPos><WindowRectBottomPos>160</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>566</WindowRectRightPos></Pane-28><Pane-29><Type>2</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Horiz>1</Horiz><Pane-1>30</Pane-1><Panes>1</Panes></Pane-29><Pane-30><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-30><Summary><TopContainer>3</TopContainer><Client>12</Client><Panes>30</Panes></Summary></Application_Layout></DockingPaneLayouts> +]]></RmTextDataBlock> + <RmRegistryBranch NAME="RmPreviewDx9Window" API="" XML_VERSION="RenderMonkey 1.71"/> + <RmRegistryBranch NAME="RmPreviewGLESWindow" API="" XML_VERSION="RenderMonkey 1.71"/> + <RmRegistryBranch NAME="RmPreviewGLWindow" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EffectPlacementRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.PostProcess Effects.Simple Blur" 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="350" 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="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 NAME="Effect Workspace.PostProcess Effects.Bloom" 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="471" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="479" 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="RmPreviewGLPreview" API="" XML_VERSION="RenderMonkey 1.71"/> + <RmRegistryBranch NAME="RmLightEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="NoteEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmRenderableTextureEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.PostProcess Effects.Bloom.renderTexture" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="256" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="102" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="278" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="442" 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.PostProcess Effects.Bloom.renderTexture1" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="344" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="128" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="278" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="442" 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.PostProcess Effects.Simple Blur.renderTexture" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="344" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="128" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="278" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="442" 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.PostProcess Effects.Bloom.Draw Object Outline to Texture.renderTexture" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="344" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="128" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="316" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="296" 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="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.PostProcess Effects.Bloom" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="408" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="244" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1149" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="514" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="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.PostProcess Effects.Bloom" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="202" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="275" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1063" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="514" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="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="RmTextureGenerator" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmShaderEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.PostProcess Effects.Simple Blur" 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[ +Pass 0]]></RmTextDataBlock></RmStringVariable> + <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="650" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="650" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="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"/> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="Effect Workspace.PostProcess Effects.Bloom" 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[ +Draw to Screen]]></RmTextDataBlock></RmStringVariable> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="33" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="650" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="650" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="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"/> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="72" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmStreamEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Textured.Stream Mapping" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="258" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="128" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="851" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="270" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmScalarEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.PostProcess Effects.Bloom.Blur Pass 1.u_blurStep" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1101" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="Effect Workspace.PostProcess Effects.Bloom.Blur Pass 2.u_blurStep" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1102" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="Effect Workspace.PostProcess Effects.Bloom.Draw to Screen.u_blurStep" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1103" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + </RmRegistryBranch> + </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[ +18/1/2008 11:15:10]]></RmTextDataBlock></RmStringVariable> + <RmStringVariable NAME="VERSION" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +RenderMonkey Version 1.80 (build 125)]]></RmTextDataBlock></RmStringVariable> + <RmStringVariable NAME="XML_VERSION" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +RenderMonkey 1.71]]></RmTextDataBlock></RmStringVariable> + <RmStringVariable NAME="BASE_WORKSPACE_PATH" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +D:\svn\redbook\Code\Chapter_13\PostProcess\]]></RmTextDataBlock></RmStringVariable> + </RmRegistryBranch> + </RmRegistryBranch> + </RmRegistryBranch> + <RmEffectGroup NAME="PostProcess Effects" API=""> + <RmOpenGLESEffect NAME="Simple Blur" API="OpenGL ES" ACTIVE_CAMERA="Camera"> + <RmCamera NAME="Camera" API="" CAMERA_POSITION_X="83.595619" CAMERA_POSITION_Y="229.281082" CAMERA_POSITION_Z="39.789570" LOOK_AT_VECTOR_X="0.000000" LOOK_AT_VECTOR_Y="0.000000" LOOK_AT_VECTOR_Z="0.000000" UP_VECTOR_X="-0.506225" UP_VECTOR_Y="0.035030" UP_VECTOR_Z="0.861690" FOV="45.000000" NEAR_CLIP_PLANE="1.000000" FAR_CLIP_PLANE="1000.000000"/> + <RmFloatVariable NAME="u_blurStep" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="SinTime0_X" VALUE="0.974171" MIN="0.000000" MAX="0.010000" CLAMP="TRUE"/> + <RmMatrixVariable NAME="u_matViewProjection" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="ViewProjection" VALUE_0="2.185649" VALUE_1="0.000000" VALUE_2="0.000000" VALUE_3="0.000000" VALUE_4="0.000000" VALUE_5="2.414213" VALUE_6="0.000000" VALUE_7="0.000000" VALUE_8="0.000000" VALUE_9="0.000000" VALUE_10="-1.001001" VALUE_11="199.199203" VALUE_12="0.000000" VALUE_13="0.000000" VALUE_14="-1.000000" VALUE_15="200.000000"/> + <Rm2DTextureVariable NAME="base" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" FILE_NAME="Fieldstone.tga" ORIGIN="0"/> + <RmRenderableTexture NAME="renderTexture" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" FILE_NAME="" ORIGIN="0" WIDTH="512" HEIGHT="512" FORMAT="21" USE_VIEWPORT_DIMENSIONS="FALSE" GENERATE_MIPMAPS="TRUE" WIDTH_RATIO="1.000000" HEIGHT_RATIO="1.000000"/> + <RmStreamMap NAME="Stream Mapping" API=""> + <RmStream NAME="Stream" API="" STRIDE="20"> + <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"/> + </RmStream> + </RmStreamMap> + <RmModelData NAME="Model" API="" FILE_NAME=".\Cube.x" ORIENTATION="0"/> + <RmModelData NAME="ScreenAlignedQuad" API="" FILE_NAME=".\ScreenAlignedQuad.3ds" ORIENTATION="0"/> + <RmGLESPass NAME="Pass 0" API="OpenGL ES" PASS_INDEX="0" ENABLED="TRUE"> + <RmCameraReference NAME="Camera" API="" USE_ACTIVE_CAMERA="FALSE"/> + <RmModelReference NAME="Model" API=""/> + <RmGLESShader NAME="Fragment Program" API="OpenGL ES" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[ +precision mediump float; + +uniform sampler2D baseMap; +varying vec2 v_texCoord; + +void main( void ) +{ + gl_FragColor = texture2D( baseMap, v_texCoord ); +}]]></RmShaderCode></RmGLESShader> + <RmGLESShader NAME="Vertex Program" API="OpenGL ES" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[ +uniform mat4 u_matViewProjection; +attribute vec4 a_vertex; +attribute vec2 a_texCoord0; +varying vec2 v_texCoord; + +void main( void ) +{ + gl_Position = u_matViewProjection * a_vertex; + v_texCoord = a_texCoord0.xy; +}]]></RmShaderCode></RmGLESShader> + <RmRenderTarget NAME="renderTexture" API="" INDEX="0" RENDER_TO_SCREEN="FALSE" COLOR_CLEAR="TRUE" DEPTH_CLEAR="TRUE" CLEAR_COLOR_VALUE="-16777216" DEPTH_CLEAR_VALUE="1.000000"/> + <RmStreamMapReference NAME="Stream Mapping" API=""/> + <RmTextureObject NAME="baseMap" API="OpenGL ES" STATE_INDEX="0" VERTEX_TEXTURE="FALSE"> + <RmTextureReference NAME="base" API=""/> + <RmState NAME="GL_TextureMinify" API="OpenGL ES" STATE="4" VALUE="6" USAGE="SAMPLER_STATE"/> + <RmState NAME="GL_TextureMagnify" API="OpenGL ES" STATE="5" VALUE="1" USAGE="SAMPLER_STATE"/> + </RmTextureObject> + <RmSampler NAME="baseMap" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_matViewProjection" API="" REGISTER="-1"/> + </RmGLESPass> + <RmGLESPass NAME="Pass 1" API="OpenGL ES" PASS_INDEX="1" ENABLED="TRUE"> + <RmModelReference NAME="ScreenAlignedQuad" API=""/> + <RmGLESShader NAME="Vertex Program" API="OpenGL ES" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[ +attribute vec4 a_vertex; +varying vec2 v_texCoord; + +void main(void) +{ + vec2 P = sign( a_vertex.xy ); + gl_Position = vec4( P, 0.0, 1.0 ); + + v_texCoord = P * 0.5 + 0.5; +}]]></RmShaderCode></RmGLESShader> + <RmGLESShader NAME="Fragment Program" API="OpenGL ES" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[ +precision mediump float; +uniform sampler2D renderTexture; +varying vec2 v_texCoord; +uniform float u_blurStep; + +void main(void) +{ + vec4 sample0, + sample1, + sample2, + sample3; + + float step = u_blurStep / 100.0; + + sample0 = texture2D ( renderTexture, + vec2 ( v_texCoord.x - step, v_texCoord.y - step ) ); + sample1 = texture2D ( renderTexture, + vec2 ( v_texCoord.x + step, v_texCoord.y + step ) ); + sample2 = texture2D ( renderTexture, + vec2 ( v_texCoord.x + step, v_texCoord.y - step ) ); + sample3 = texture2D ( renderTexture, + vec2 ( v_texCoord.x - step, v_texCoord.y + step) ); + + gl_FragColor = (sample0 + sample1 + sample2 + sample3) / 4.0; +}]]></RmShaderCode></RmGLESShader> + <RmStreamMapReference NAME="Stream Mapping" API=""/> + <RmTextureObject NAME="renderTexture" API="OpenGL ES" STATE_INDEX="0" VERTEX_TEXTURE="FALSE"> + <RmTextureReference NAME="renderTexture" API=""/> + </RmTextureObject> + <RmSampler NAME="renderTexture" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_blurStep" API="" REGISTER="-1"/> + </RmGLESPass> + </RmOpenGLESEffect> + <RmOpenGLESEffect NAME="Bloom" API="OpenGL ES" ACTIVE_CAMERA="Camera"> + <RmCamera NAME="Camera" API="" CAMERA_POSITION_X="33.139557" CAMERA_POSITION_Y="-92.293312" CAMERA_POSITION_Z="55.385082" LOOK_AT_VECTOR_X="-9.544210" LOOK_AT_VECTOR_Y="-3.399710" LOOK_AT_VECTOR_Z="0.434872" UP_VECTOR_X="-0.471409" UP_VECTOR_Y="0.288774" UP_VECTOR_Z="0.833297" FOV="45.000000" NEAR_CLIP_PLANE="60.290936" FAR_CLIP_PLANE="1169.461426"/> + <RmMatrixVariable NAME="u_matViewProjection" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="ViewProjection" VALUE_0="2.287980" VALUE_1="0.000000" VALUE_2="0.000000" VALUE_3="0.000000" VALUE_4="0.000000" VALUE_5="2.414213" VALUE_6="0.000000" VALUE_7="0.000000" VALUE_8="0.000000" VALUE_9="0.000000" VALUE_10="-1.001001" VALUE_11="199.199203" VALUE_12="0.000000" VALUE_13="0.000000" VALUE_14="-1.000000" VALUE_15="200.000000"/> + <Rm2DTextureVariable NAME="base" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" FILE_NAME="Fieldstone.tga" ORIGIN="0"/> + <RmRenderableTexture NAME="renderTexture" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" FILE_NAME="" ORIGIN="0" WIDTH="128" HEIGHT="128" FORMAT="21" USE_VIEWPORT_DIMENSIONS="FALSE" GENERATE_MIPMAPS="TRUE" WIDTH_RATIO="1.000000" HEIGHT_RATIO="1.000000"/> + <RmRenderableTexture NAME="renderTexture1" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" FILE_NAME="" ORIGIN="0" WIDTH="128" HEIGHT="128" FORMAT="21" USE_VIEWPORT_DIMENSIONS="FALSE" GENERATE_MIPMAPS="TRUE" WIDTH_RATIO="1.000000" HEIGHT_RATIO="1.000000"/> + <RmStreamMap NAME="Stream Mapping" API=""> + <RmStream NAME="Stream" API="" STRIDE="20"> + <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"/> + </RmStream> + </RmStreamMap> + <RmModelData NAME="ScreenAlignedQuad" API="" FILE_NAME=".\ScreenAlignedQuad.3ds" ORIENTATION="0"/> + <RmModelData NAME="Model" API="" FILE_NAME=".\Car.3ds" ORIENTATION="0"/> + <RmGLESPass NAME="Draw Object Outline to Texture" API="OpenGL ES" PASS_INDEX="0" ENABLED="TRUE"> + <RmCameraReference NAME="Camera" API="" USE_ACTIVE_CAMERA="FALSE"/> + <RmModelReference NAME="Model" API=""/> + <RmGLESShader NAME="Fragment Program" API="OpenGL ES" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[ +precision mediump float; + +uniform sampler2D baseMap; +varying vec2 v_texCoord; + +void main( void ) +{ + gl_FragColor = vec4( 0.0 ); +}]]></RmShaderCode></RmGLESShader> + <RmGLESShader NAME="Vertex Program" API="OpenGL ES" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[ +uniform mat4 u_matViewProjection; +attribute vec4 a_vertex; +attribute vec2 a_texCoord0; +varying vec2 v_texCoord; + +void main( void ) +{ + gl_Position = u_matViewProjection * a_vertex; + v_texCoord = a_texCoord0.xy; +}]]></RmShaderCode></RmGLESShader> + <RmRenderTarget NAME="renderTexture" API="" INDEX="0" RENDER_TO_SCREEN="FALSE" COLOR_CLEAR="TRUE" DEPTH_CLEAR="TRUE" CLEAR_COLOR_VALUE="786431" DEPTH_CLEAR_VALUE="1.000000"/> + <RmStreamMapReference NAME="Stream Mapping" API=""/> + <RmTextureObject NAME="baseMap" API="OpenGL ES" STATE_INDEX="0" VERTEX_TEXTURE="FALSE"> + <RmTextureReference NAME="base" API=""/> + <RmState NAME="GL_TextureMinify" API="OpenGL ES" STATE="4" VALUE="6" USAGE="SAMPLER_STATE"/> + <RmState NAME="GL_TextureMagnify" API="OpenGL ES" STATE="5" VALUE="1" USAGE="SAMPLER_STATE"/> + </RmTextureObject> + <RmShaderConstant NAME="u_matViewProjection" API="" REGISTER="-1"/> + </RmGLESPass> + <RmGLESPass NAME="Blur Pass 1" API="OpenGL ES" PASS_INDEX="1" ENABLED="TRUE"> + <RmModelReference NAME="ScreenAlignedQuad" API=""/> + <RmGLESShader NAME="Vertex Program" API="OpenGL ES" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[ +attribute vec4 a_vertex; +varying vec2 v_texCoord; + +void main(void) +{ + vec2 P = sign( a_vertex.xy ); + gl_Position = vec4( P, 0.0, 1.0 ); + + v_texCoord = P * 0.5 + 0.5; +}]]></RmShaderCode></RmGLESShader> + <RmGLESShader NAME="Fragment Program" API="OpenGL ES" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[ +precision mediump float; +uniform sampler2D renderTexture; +varying vec2 v_texCoord; +uniform float u_blurStep; + +void main(void) +{ + vec4 sample0, + sample1, + sample2, + sample3; + + float step = u_blurStep / 100.0; + + sample0 = texture2D ( renderTexture, + vec2 ( v_texCoord.x - step, v_texCoord.y - step ) ); + sample1 = texture2D ( renderTexture, + vec2 ( v_texCoord.x + step, v_texCoord.y + step ) ); + sample2 = texture2D ( renderTexture, + vec2 ( v_texCoord.x + step, v_texCoord.y - step ) ); + sample3 = texture2D ( renderTexture, + vec2 ( v_texCoord.x - step, v_texCoord.y + step) ); + + gl_FragColor = (sample0 + sample1 + sample2 + sample3) / 4.0; +}]]></RmShaderCode></RmGLESShader> + <RmRenderTarget NAME="renderTexture1" API="" INDEX="0" RENDER_TO_SCREEN="FALSE" COLOR_CLEAR="TRUE" DEPTH_CLEAR="TRUE" CLEAR_COLOR_VALUE="-16777216" DEPTH_CLEAR_VALUE="1.000000"/> + <RmStreamMapReference NAME="Stream Mapping" API=""/> + <RmFloatVariable NAME="u_blurStep" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE="1.000000" MIN="0.000000" MAX="0.000000" CLAMP="FALSE"/> + <RmTextureObject NAME="renderTexture" API="OpenGL ES" STATE_INDEX="0" VERTEX_TEXTURE="FALSE"> + <RmTextureReference NAME="renderTexture" API=""/> + </RmTextureObject> + <RmSampler NAME="renderTexture" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_blurStep" API="" REGISTER="-1"/> + </RmGLESPass> + <RmGLESPass NAME="Blur Pass 2" API="OpenGL ES" PASS_INDEX="2" ENABLED="TRUE"> + <RmModelReference NAME="ScreenAlignedQuad" API=""/> + <RmGLESShader NAME="Vertex Program" API="OpenGL ES" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[ +attribute vec4 a_vertex; +varying vec2 v_texCoord; + +void main(void) +{ + vec2 P = sign( a_vertex.xy ); + gl_Position = vec4( P, 0.0, 1.0 ); + + v_texCoord = P * 0.5 + 0.5; +}]]></RmShaderCode></RmGLESShader> + <RmGLESShader NAME="Fragment Program" API="OpenGL ES" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[ +precision mediump float; +uniform sampler2D renderTexture1; +varying vec2 v_texCoord; +uniform float u_blurStep; + +void main(void) +{ + vec4 sample0, + sample1, + sample2, + sample3; + + float step = u_blurStep / 100.0; + + sample0 = texture2D ( renderTexture1, + vec2 ( v_texCoord.x - step, v_texCoord.y - step ) ); + sample1 = texture2D ( renderTexture1, + vec2 ( v_texCoord.x + step, v_texCoord.y + step ) ); + sample2 = texture2D ( renderTexture1, + vec2 ( v_texCoord.x + step, v_texCoord.y - step ) ); + sample3 = texture2D ( renderTexture1, + vec2 ( v_texCoord.x - step, v_texCoord.y + step) ); + + gl_FragColor = (sample0 + sample1 + sample2 + sample3) / 4.0; +}]]></RmShaderCode></RmGLESShader> + <RmRenderTarget NAME="renderTexture" API="" INDEX="0" RENDER_TO_SCREEN="FALSE" COLOR_CLEAR="TRUE" DEPTH_CLEAR="TRUE" CLEAR_COLOR_VALUE="-16777216" DEPTH_CLEAR_VALUE="1.000000"/> + <RmStreamMapReference NAME="Stream Mapping" API=""/> + <RmFloatVariable NAME="u_blurStep" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE="2.000000" MIN="0.000000" MAX="0.000000" CLAMP="FALSE"/> + <RmTextureObject NAME="renderTexture1" API="OpenGL ES" STATE_INDEX="0" VERTEX_TEXTURE="FALSE"> + <RmTextureReference NAME="renderTexture1" API=""/> + </RmTextureObject> + <RmSampler NAME="renderTexture1" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_blurStep" API="" REGISTER="-1"/> + </RmGLESPass> + <RmGLESPass NAME="Draw Object to Screen" API="OpenGL ES" PASS_INDEX="3" ENABLED="TRUE"> + <RmCameraReference NAME="Camera" API="" USE_ACTIVE_CAMERA="FALSE"/> + <RmModelReference NAME="Model" API=""/> + <RmGLESShader NAME="Fragment Program" API="OpenGL ES" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[ +precision mediump float; + +uniform sampler2D baseMap; +varying vec2 v_texCoord; + +void main( void ) +{ + gl_FragColor = texture2D( baseMap, v_texCoord ); +}]]></RmShaderCode></RmGLESShader> + <RmGLESShader NAME="Vertex Program" API="OpenGL ES" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[ +uniform mat4 u_matViewProjection; +attribute vec4 a_vertex; +attribute vec2 a_texCoord0; +varying vec2 v_texCoord; + +void main( void ) +{ + gl_Position = u_matViewProjection * a_vertex; + v_texCoord = a_texCoord0.xy; +}]]></RmShaderCode></RmGLESShader> + <RmStreamMapReference NAME="Stream Mapping" API=""/> + <RmTextureObject NAME="baseMap" API="OpenGL ES" STATE_INDEX="0" VERTEX_TEXTURE="FALSE"> + <RmTextureReference NAME="base" API=""/> + <RmState NAME="GL_TextureMinify" API="OpenGL ES" STATE="4" VALUE="6" USAGE="SAMPLER_STATE"/> + <RmState NAME="GL_TextureMagnify" API="OpenGL ES" STATE="5" VALUE="1" USAGE="SAMPLER_STATE"/> + </RmTextureObject> + <RmSampler NAME="baseMap" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_matViewProjection" API="" REGISTER="-1"/> + </RmGLESPass> + <RmGLESPass NAME="Draw to Screen" API="OpenGL ES" PASS_INDEX="4" ENABLED="TRUE"> + <RmModelReference NAME="ScreenAlignedQuad" API=""/> + <RmRenderStateBlock NAME="Render State" API="OpenGL ES"> + <RmState NAME="GL_BlendSourceRGB" API="OpenGL ES" STATE="48" VALUE="2" USAGE="RENDER_STATE"/> + <RmState NAME="GL_BlendDestRGB" API="OpenGL ES" STATE="49" VALUE="2" USAGE="RENDER_STATE"/> + <RmState NAME="GL_BlendEnable" API="OpenGL ES" STATE="46" VALUE="1" USAGE="RENDER_STATE"/> + </RmRenderStateBlock> + <RmGLESShader NAME="Fragment Program" API="OpenGL ES" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[ +precision mediump float; +uniform sampler2D renderTexture; +varying vec2 v_texCoord; + +void main(void) +{ + gl_FragColor = texture2D( renderTexture, v_texCoord ); +}]]></RmShaderCode></RmGLESShader> + <RmGLESShader NAME="Vertex Program" API="OpenGL ES" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[ +attribute vec4 a_vertex; +varying vec2 v_texCoord; + +void main(void) +{ + vec2 P = sign( a_vertex.xy ); + gl_Position = vec4( P, 0.0, 1.0 ); + + v_texCoord = P * 0.5 + 0.5; +}]]></RmShaderCode></RmGLESShader> + <RmStreamMapReference NAME="Stream Mapping" API=""/> + <RmTextureObject NAME="renderTexture" API="OpenGL ES" STATE_INDEX="0" VERTEX_TEXTURE="FALSE"> + <RmTextureReference NAME="renderTexture" API=""/> + </RmTextureObject> + <RmSampler NAME="renderTexture" API="" REGISTER="-1"/> + </RmGLESPass> + </RmOpenGLESEffect> + </RmEffectGroup> + </RmEffectWorkspace> +</RENDER_MONKEY> diff --git a/third_party/gles2_book/Chapter_13/PostProcess/ScreenAlignedQuad.3ds b/third_party/gles2_book/Chapter_13/PostProcess/ScreenAlignedQuad.3ds Binary files differnew file mode 100644 index 0000000..619124b --- /dev/null +++ b/third_party/gles2_book/Chapter_13/PostProcess/ScreenAlignedQuad.3ds diff --git a/third_party/gles2_book/Chapter_13/ProceduralTextures/Checker.rfx b/third_party/gles2_book/Chapter_13/ProceduralTextures/Checker.rfx new file mode 100644 index 0000000..3da57a8 --- /dev/null +++ b/third_party/gles2_book/Chapter_13/ProceduralTextures/Checker.rfx @@ -0,0 +1,1081 @@ +<?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.Position" 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>7</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>7</LastHolder></Pane-1><Pane-2><Type>2</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><Horiz>0</Horiz><Pane-1>3</Pane-1><Pane-2>8</Pane-2><Panes>2</Panes></Pane-2><Pane-3><Type>2</Type><DockingCX>0</DockingCX><DockingCY>808</DockingCY><Horiz>1</Horiz><Pane-1>4</Pane-1><Pane-2>6</Pane-2><Pane-3>7</Pane-3><Panes>3</Panes></Pane-3><Pane-4><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>5</Selected><Panes>1</Panes><Pane-1>5</Pane-1></Pane-4><Pane-5><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Workspace</Title><ID>1000</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>4</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>4</LastHolder></Pane-5><Pane-6><Type>4</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY></Pane-6><Pane-7><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-7><Pane-8><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>9</Selected><Panes>1</Panes><Pane-1>9</Pane-1></Pane-8><Pane-9><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Output</Title><ID>1002</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>8</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>8</LastHolder></Pane-9><Summary><TopContainer>2</TopContainer><Client>6</Client><Panes>9</Panes></Summary></Application_Layout></DockingPaneLayouts> +]]></RmTextDataBlock> + <RmRegistryBranch NAME="RmRenderStateBlockEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Position" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="54" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="70" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1283" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="434" 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="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmStreamEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Position.Stream Mapping" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="459" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="323" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="851" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="270" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmPreviewGLWindow" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EffectPlacementRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Position" 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="350" 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="RmColorEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Position.u_color1" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1100" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmBooleanVariable NAME="FloatingPoint" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="FALSE"/> + <RmIntegerVariable NAME="ColorType" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmBooleanVariable NAME="LargeSize" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="TRUE"/> + </RmRegistryBranch> + </RmRegistryBranch> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmDynamicVariableEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Position.u_frequency" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1101" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmBooleanVariable NAME="ShowSetup" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="TRUE"/> + </RmRegistryBranch> + </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.Position" 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="0" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="967" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="718" 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="0" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + </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[ +20/1/2008 22:54:49]]></RmTextDataBlock></RmStringVariable> + <RmStringVariable NAME="VERSION" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +RenderMonkey Version 1.71 (build 59)]]></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:\book\ogles\Code\Chapter_13\ProceduralTextures\]]></RmTextDataBlock></RmStringVariable> + </RmRegistryBranch> + </RmRegistryBranch> + </RmRegistryBranch> + <RmOpenGLESEffect NAME="Position" API="OpenGL ES" ACTIVE_CAMERA="Camera"> + <RmCamera NAME="Camera" API="" CAMERA_POSITION_X="1.482474" CAMERA_POSITION_Y="-1.227030" CAMERA_POSITION_Z="-2.968942" LOOK_AT_VECTOR_X="0.001000" LOOK_AT_VECTOR_Y="0.001000" LOOK_AT_VECTOR_Z="0.001000" UP_VECTOR_X="-0.087063" UP_VECTOR_Y="0.904525" UP_VECTOR_Z="-0.417437" FOV="45.000000" NEAR_CLIP_PLANE="1.207107" FAR_CLIP_PLANE="23.414213"/> + <RmDynamicVariable NAME="u_frequency" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VARIABLE_TYPE="INTEGER" ROWS="1" COLUMNS="1" FIXED_SIZE="TRUE" MIN="-100" MAX="100" CLAMP="FALSE" NORMALIZE="FALSE"> + <RmDynamicVariableValueContainer> + <RmDynamicVariableValue ROW_INDEX="0" COLUMN_INDEX="0" VALUE="6"/> + </RmDynamicVariableValueContainer> + </RmDynamicVariable> + <RmMatrixVariable NAME="u_mvpMatrix" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="ViewProjection" VALUE_0="-2.014508" VALUE_1="-0.552268" VALUE_2="-0.776526" VALUE_3="0.003343" VALUE_4="-0.210189" VALUE_5="2.183717" VALUE_6="-1.007783" VALUE_7="-0.000962" VALUE_8="-0.441388" VALUE_9="0.365878" VALUE_10="0.884861" VALUE_11="2.457668" VALUE_12="-0.418633" VALUE_13="0.347015" VALUE_14="0.839242" VALUE_15="3.538071"/> + <RmColorVariable NAME="u_color1" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE_0="0.000000" VALUE_1="0.000000" VALUE_2="0.000000" VALUE_3="1.000000"/> + <RmColorVariable NAME="u_color0" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE_0="1.000000" VALUE_1="1.000000" VALUE_2="1.000000" VALUE_3="1.000000"/> + <RmStreamMap NAME="Stream Mapping" API=""> + <RmStream NAME="Stream" API="" STRIDE="20"> + <RmStreamChannel NAME="Position_0" API="" DATA_SIZE="12" DATA_TYPE="2" REGISTER="0" USAGE="0" USAGE_INDEX="0" ATTRIBUTE_NAME="a_position"/> + <RmStreamChannel NAME="TexCoord_0" API="" DATA_SIZE="8" DATA_TYPE="1" REGISTER="0" USAGE="5" USAGE_INDEX="0" ATTRIBUTE_NAME="a_st"/> + </RmStream> + </RmStreamMap> + <RmModelData NAME="Model" API="" FILE_NAME=".\ScreenAlignedQuad.3ds" ORIENTATION="0"/> + <RmGLESPass NAME="Pass 0" API="OpenGL ES" PASS_INDEX="0" ENABLED="TRUE"> + <RmCameraReference NAME="Camera" API="" USE_ACTIVE_CAMERA="FALSE"/> + <RmModelReference NAME="Model" API=""/> + <RmRenderStateBlock NAME="Render State" API="OpenGL ES"> + <RmState NAME="GL_CullMode" API="OpenGL ES" STATE="8" VALUE="1" USAGE="RENDER_STATE"/> + </RmRenderStateBlock> + <RmGLESShader NAME="Vertex Program" API="OpenGL ES" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[ + +uniform mat4 u_mvpMatrix; + +attribute vec4 a_position; +attribute vec2 a_st; + +varying vec2 v_st; + +void +main() +{ + v_st = a_st; + gl_Position = u_mvpMatrix * a_position; +} +]]></RmShaderCode></RmGLESShader> + <RmGLESShader NAME="Fragment Program" API="OpenGL ES" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[ +#extension GL_OES_standard_derivatives:enable + +precision highp float; + +uniform int u_frequency; +uniform vec4 u_color0; +uniform vec4 u_color1; + +varying vec2 v_st; + +void +main() +{ + float s, t, delta; + + s = mod(floor(v_st.x * float(u_frequency * 2)), 2.0); + t = mod(floor(v_st.y * float(u_frequency * 2)), 2.0); + delta = abs(s - t); + + gl_FragColor = mix(u_color1, u_color0, delta); +} +]]></RmShaderCode></RmGLESShader> + <RmStreamMapReference NAME="Stream Mapping" API=""/> + <RmShaderConstant NAME="u_color0" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_color1" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_frequency" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_mvpMatrix" API="" REGISTER="-1"/> + </RmGLESPass> + </RmOpenGLESEffect> + </RmEffectWorkspace> +</RENDER_MONKEY> diff --git a/third_party/gles2_book/Chapter_13/ProceduralTextures/CheckerAA.rfx b/third_party/gles2_book/Chapter_13/ProceduralTextures/CheckerAA.rfx new file mode 100644 index 0000000..6f73d7e --- /dev/null +++ b/third_party/gles2_book/Chapter_13/ProceduralTextures/CheckerAA.rfx @@ -0,0 +1,1109 @@ +<?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.Position" 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>7</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>7</LastHolder></Pane-1><Pane-2><Type>2</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><Horiz>0</Horiz><Pane-1>3</Pane-1><Pane-2>8</Pane-2><Panes>2</Panes></Pane-2><Pane-3><Type>2</Type><DockingCX>0</DockingCX><DockingCY>808</DockingCY><Horiz>1</Horiz><Pane-1>4</Pane-1><Pane-2>6</Pane-2><Pane-3>7</Pane-3><Panes>3</Panes></Pane-3><Pane-4><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>5</Selected><Panes>1</Panes><Pane-1>5</Pane-1></Pane-4><Pane-5><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Workspace</Title><ID>1000</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>4</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>4</LastHolder></Pane-5><Pane-6><Type>4</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY></Pane-6><Pane-7><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-7><Pane-8><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>9</Selected><Panes>1</Panes><Pane-1>9</Pane-1></Pane-8><Pane-9><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Output</Title><ID>1002</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>8</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>8</LastHolder></Pane-9><Summary><TopContainer>2</TopContainer><Client>6</Client><Panes>9</Panes></Summary></Application_Layout></DockingPaneLayouts> +]]></RmTextDataBlock> + <RmRegistryBranch NAME="RmRenderStateBlockEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Position" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="54" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="70" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1283" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="434" 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="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmStreamEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Position.Stream Mapping" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="459" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="323" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="851" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="270" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmPreviewGLWindow" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EffectPlacementRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Position" 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="350" 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="RmColorEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Position.u_color1" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1100" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmBooleanVariable NAME="FloatingPoint" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="FALSE"/> + <RmIntegerVariable NAME="ColorType" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmBooleanVariable NAME="LargeSize" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="TRUE"/> + </RmRegistryBranch> + </RmRegistryBranch> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmDynamicVariableEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Position.u_frequency" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1101" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmBooleanVariable NAME="ShowSetup" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="TRUE"/> + </RmRegistryBranch> + </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.Position" 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="0" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1084" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="724" 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="0" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + </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/1/2008 19:13:57]]></RmTextDataBlock></RmStringVariable> + <RmStringVariable NAME="VERSION" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +RenderMonkey Version 1.71 (build 59)]]></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:\book\ogles\Code\Chapter_13\ProceduralTextures\]]></RmTextDataBlock></RmStringVariable> + </RmRegistryBranch> + </RmRegistryBranch> + </RmRegistryBranch> + <RmOpenGLESEffect NAME="Position" API="OpenGL ES" ACTIVE_CAMERA="Camera"> + <RmCamera NAME="Camera" API="" CAMERA_POSITION_X="0.934720" CAMERA_POSITION_Y="1.103003" CAMERA_POSITION_Z="-3.229657" LOOK_AT_VECTOR_X="0.001000" LOOK_AT_VECTOR_Y="0.001000" LOOK_AT_VECTOR_Z="0.001000" UP_VECTOR_X="-0.962550" UP_VECTOR_Y="0.146132" UP_VECTOR_Z="-0.228347" FOV="45.000000" NEAR_CLIP_PLANE="1.207107" FAR_CLIP_PLANE="23.414213"/> + <RmDynamicVariable NAME="u_frequency" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VARIABLE_TYPE="INTEGER" ROWS="1" COLUMNS="1" FIXED_SIZE="TRUE" MIN="-100" MAX="100" CLAMP="FALSE" NORMALIZE="FALSE"> + <RmDynamicVariableValueContainer> + <RmDynamicVariableValue ROW_INDEX="0" COLUMN_INDEX="0" VALUE="6"/> + </RmDynamicVariableValueContainer> + </RmDynamicVariable> + <RmMatrixVariable NAME="u_mvpMatrix" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="ViewProjection" VALUE_0="-0.138832" VALUE_1="-2.092510" VALUE_2="-0.753897" VALUE_3="0.002985" VALUE_4="-2.323802" VALUE_5="0.352794" VALUE_6="-0.551279" VALUE_7="0.002531" VALUE_8="-0.278191" VALUE_9="-0.328329" VALUE_10="0.962537" VALUE_11="2.458123" VALUE_12="-0.263849" VALUE_13="-0.311402" VALUE_14="0.912914" VALUE_15="3.538502"/> + <RmMatrixVariable NAME="u_mvMatrix" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="View" VALUE_0="-0.062298" VALUE_1="-0.938975" VALUE_2="-0.338297" VALUE_3="0.001340" VALUE_4="-0.962550" VALUE_5="0.146132" VALUE_6="-0.228347" VALUE_7="0.001048" VALUE_8="0.263849" VALUE_9="0.311402" VALUE_10="-0.912914" VALUE_11="-3.538502" VALUE_12="0.000000" VALUE_13="0.000000" VALUE_14="0.000000" VALUE_15="1.000000"/> + <RmColorVariable NAME="u_color0" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE_0="1.000000" VALUE_1="1.000000" VALUE_2="1.000000" VALUE_3="1.000000"/> + <RmColorVariable NAME="u_color1" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE_0="0.000000" VALUE_1="0.000000" VALUE_2="0.000000" VALUE_3="1.000000"/> + <RmStreamMap NAME="Stream Mapping" API=""> + <RmStream NAME="Stream" API="" STRIDE="20"> + <RmStreamChannel NAME="Position_0" API="" DATA_SIZE="12" DATA_TYPE="2" REGISTER="0" USAGE="0" USAGE_INDEX="0" ATTRIBUTE_NAME="a_position"/> + <RmStreamChannel NAME="TexCoord_0" API="" DATA_SIZE="8" DATA_TYPE="1" REGISTER="0" USAGE="5" USAGE_INDEX="0" ATTRIBUTE_NAME="a_st"/> + </RmStream> + </RmStreamMap> + <RmModelData NAME="Model" API="" FILE_NAME=".\ScreenAlignedQuad.3ds" ORIENTATION="0"/> + <RmGLESPass NAME="Pass 0" API="OpenGL ES" PASS_INDEX="0" ENABLED="TRUE"> + <RmCameraReference NAME="Camera" API="" USE_ACTIVE_CAMERA="FALSE"/> + <RmModelReference NAME="Model" API=""/> + <RmRenderStateBlock NAME="Render State" API="OpenGL ES"> + <RmState NAME="GL_CullMode" API="OpenGL ES" STATE="8" VALUE="1" USAGE="RENDER_STATE"/> + </RmRenderStateBlock> + <RmGLESShader NAME="Vertex Program" API="OpenGL ES" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[ + +uniform mat4 u_mvpMatrix; + +attribute vec4 a_position; +attribute vec2 a_st; + +varying vec2 v_st; + +void +main() +{ + v_st = a_st; + gl_Position = u_mvpMatrix * a_position; +} +]]></RmShaderCode></RmGLESShader> + <RmGLESShader NAME="Fragment Program" API="OpenGL ES" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[ +#extension GL_OES_standard_derivatives:enable + +precision highp float; + +uniform int u_frequency; +uniform vec4 u_color0; +uniform vec4 u_color1; + +varying vec2 v_st; + +void +main() +{ + vec4 color; + vec2 st_width; + vec2 fuzz; + vec2 pmod; + float fuzz_max; + + // determine the filter width + st_width = fwidth(v_st); + + // calculate the fuzziness taking normal into account + fuzz = st_width * float(u_frequency) * 2.0; + + fuzz_max = max(fuzz.s, fuzz.t); + + // calculate position in the checkerboard pattern + pmod = fract(v_st * float(u_frequency)); + + // if the filter width is small enough, compute the pattern color + if (fuzz_max <= 0.5) + { + vec2 p = smoothstep(vec2(0.5), fuzz + vec2(0.5), pmod) + (1.0 - smoothstep(vec2(0.0), fuzz, pmod)); + + color = mix(u_color0, u_color1, p.x * p.y + (1.0 - p.x) * (1.0 - p.y)); + + // gradually fade in the average color when we get close to the limit + color = mix(color, (u_color0 + u_color1)/2.0, smoothstep(0.125, 0.5, fuzz_max)); + } + else + { + // otherwise, use only the average color + color = (u_color0 + u_color1)/2.0; + } + + gl_FragColor = color; +} +]]></RmShaderCode></RmGLESShader> + <RmStreamMapReference NAME="Stream Mapping" API=""/> + <RmShaderConstant NAME="u_color0" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_color1" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_frequency" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_mvpMatrix" API="" REGISTER="-1"/> + </RmGLESPass> + </RmOpenGLESEffect> + </RmEffectWorkspace> +</RENDER_MONKEY> diff --git a/third_party/gles2_book/Chapter_13/ProceduralTextures/ProceduralTextures.rfx b/third_party/gles2_book/Chapter_13/ProceduralTextures/ProceduralTextures.rfx new file mode 100644 index 0000000..f60300f --- /dev/null +++ b/third_party/gles2_book/Chapter_13/ProceduralTextures/ProceduralTextures.rfx @@ -0,0 +1,1109 @@ +<?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.Position" 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>7</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>7</LastHolder></Pane-1><Pane-2><Type>2</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><Horiz>0</Horiz><Pane-1>3</Pane-1><Pane-2>8</Pane-2><Panes>2</Panes></Pane-2><Pane-3><Type>2</Type><DockingCX>0</DockingCX><DockingCY>808</DockingCY><Horiz>1</Horiz><Pane-1>4</Pane-1><Pane-2>6</Pane-2><Pane-3>7</Pane-3><Panes>3</Panes></Pane-3><Pane-4><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>5</Selected><Panes>1</Panes><Pane-1>5</Pane-1></Pane-4><Pane-5><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Workspace</Title><ID>1000</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>4</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>4</LastHolder></Pane-5><Pane-6><Type>4</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY></Pane-6><Pane-7><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-7><Pane-8><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>9</Selected><Panes>1</Panes><Pane-1>9</Pane-1></Pane-8><Pane-9><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Output</Title><ID>1002</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>8</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>8</LastHolder></Pane-9><Summary><TopContainer>2</TopContainer><Client>6</Client><Panes>9</Panes></Summary></Application_Layout></DockingPaneLayouts> +]]></RmTextDataBlock> + <RmRegistryBranch NAME="RmRenderStateBlockEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Position" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="54" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="70" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1283" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="434" 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="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmStreamEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Position.Stream Mapping" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="459" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="323" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="851" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="270" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmPreviewGLWindow" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EffectPlacementRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Position" 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="350" 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="RmColorEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Position.u_color1" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1100" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmBooleanVariable NAME="FloatingPoint" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="FALSE"/> + <RmIntegerVariable NAME="ColorType" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmBooleanVariable NAME="LargeSize" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="TRUE"/> + </RmRegistryBranch> + </RmRegistryBranch> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmDynamicVariableEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Position.u_frequency" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1101" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmBooleanVariable NAME="ShowSetup" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="TRUE"/> + </RmRegistryBranch> + </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.Position" 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="0" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="967" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="718" 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="0" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + </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[ +20/1/2008 22:52:27]]></RmTextDataBlock></RmStringVariable> + <RmStringVariable NAME="VERSION" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +RenderMonkey Version 1.71 (build 59)]]></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:\book\ogles\Code\Chapter_13\ProceduralTextures\]]></RmTextDataBlock></RmStringVariable> + </RmRegistryBranch> + </RmRegistryBranch> + </RmRegistryBranch> + <RmOpenGLESEffect NAME="Position" API="OpenGL ES" ACTIVE_CAMERA="Camera"> + <RmCamera NAME="Camera" API="" CAMERA_POSITION_X="1.482474" CAMERA_POSITION_Y="-1.227030" CAMERA_POSITION_Z="-2.968942" LOOK_AT_VECTOR_X="0.001000" LOOK_AT_VECTOR_Y="0.001000" LOOK_AT_VECTOR_Z="0.001000" UP_VECTOR_X="-0.087063" UP_VECTOR_Y="0.904525" UP_VECTOR_Z="-0.417437" FOV="45.000000" NEAR_CLIP_PLANE="1.207107" FAR_CLIP_PLANE="23.414213"/> + <RmDynamicVariable NAME="u_frequency" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VARIABLE_TYPE="INTEGER" ROWS="1" COLUMNS="1" FIXED_SIZE="TRUE" MIN="-100" MAX="100" CLAMP="FALSE" NORMALIZE="FALSE"> + <RmDynamicVariableValueContainer> + <RmDynamicVariableValue ROW_INDEX="0" COLUMN_INDEX="0" VALUE="6"/> + </RmDynamicVariableValueContainer> + </RmDynamicVariable> + <RmMatrixVariable NAME="u_mvpMatrix" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="ViewProjection" VALUE_0="-2.014508" VALUE_1="-0.552268" VALUE_2="-0.776526" VALUE_3="0.003343" VALUE_4="-0.210189" VALUE_5="2.183717" VALUE_6="-1.007783" VALUE_7="-0.000962" VALUE_8="-0.441388" VALUE_9="0.365878" VALUE_10="0.884861" VALUE_11="2.457668" VALUE_12="-0.418633" VALUE_13="0.347015" VALUE_14="0.839242" VALUE_15="3.538071"/> + <RmColorVariable NAME="u_color1" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE_0="0.000000" VALUE_1="0.000000" VALUE_2="0.000000" VALUE_3="1.000000"/> + <RmColorVariable NAME="u_color0" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE_0="1.000000" VALUE_1="1.000000" VALUE_2="1.000000" VALUE_3="1.000000"/> + <RmStreamMap NAME="Stream Mapping" API=""> + <RmStream NAME="Stream" API="" STRIDE="20"> + <RmStreamChannel NAME="Position_0" API="" DATA_SIZE="12" DATA_TYPE="2" REGISTER="0" USAGE="0" USAGE_INDEX="0" ATTRIBUTE_NAME="a_position"/> + <RmStreamChannel NAME="TexCoord_0" API="" DATA_SIZE="8" DATA_TYPE="1" REGISTER="0" USAGE="5" USAGE_INDEX="0" ATTRIBUTE_NAME="a_st"/> + </RmStream> + </RmStreamMap> + <RmModelData NAME="Model" API="" FILE_NAME=".\ScreenAlignedQuad.3ds" ORIENTATION="0"/> + <RmGLESPass NAME="Pass 0" API="OpenGL ES" PASS_INDEX="0" ENABLED="TRUE"> + <RmCameraReference NAME="Camera" API="" USE_ACTIVE_CAMERA="FALSE"/> + <RmModelReference NAME="Model" API=""/> + <RmRenderStateBlock NAME="Render State" API="OpenGL ES"> + <RmState NAME="GL_CullMode" API="OpenGL ES" STATE="8" VALUE="1" USAGE="RENDER_STATE"/> + </RmRenderStateBlock> + <RmGLESShader NAME="Vertex Program" API="OpenGL ES" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[ + +uniform mat4 u_mvpMatrix; + +attribute vec4 a_position; +attribute vec2 a_st; + +varying vec2 v_st; + +void +main() +{ + v_st = a_st; + gl_Position = u_mvpMatrix * a_position; +} +]]></RmShaderCode></RmGLESShader> + <RmGLESShader NAME="Fragment Program" API="OpenGL ES" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[ +#extension GL_OES_standard_derivatives:enable + +precision highp float; + +uniform int u_frequency; +uniform vec4 u_color0; +uniform vec4 u_color1; + +varying vec2 v_st; + +void +main() +{ +#if 1 + float s, t, delta; + + s = mod(floor(v_st.x * float(u_frequency * 2)), 2.0); + t = mod(floor(v_st.y * float(u_frequency * 2)), 2.0); + delta = abs(s - t); + + gl_FragColor = mix(u_color1, u_color0, delta); +#else + vec4 color; + vec2 st_width; + vec2 fuzz; + vec2 pmod; + float fuzz_max; + + st_width = fwidth(v_st); + fuzz = st_width * float(u_frequency) * 2.0; + fuzz_max = max(fuzz.s, fuzz.t); + pmod = fract(v_st * float(u_frequency)); + + if (fuzz_max <= 0.5) + { + vec2 p = smoothstep(vec2(0.5), fuzz + vec2(0.5), pmod) + (1.0 - smoothstep(vec2(0.0), fuzz, pmod)); + + color = mix(u_color0, u_color1, p.x * p.y + (1.0 - p.x) * (1.0 - p.y)); + + color = mix(color, (u_color0 + u_color1)/2.0, smoothstep(0.125, 0.5, fuzz_max)); + } + else + { + color = (u_color0 + u_color1)/2.0; + } + + gl_FragColor = color; +#endif +} +]]></RmShaderCode></RmGLESShader> + <RmStreamMapReference NAME="Stream Mapping" API=""/> + <RmShaderConstant NAME="u_color0" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_color1" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_frequency" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_mvpMatrix" API="" REGISTER="-1"/> + </RmGLESPass> + </RmOpenGLESEffect> + </RmEffectWorkspace> +</RENDER_MONKEY> diff --git a/third_party/gles2_book/Chapter_13/ProceduralTextures/ScreenAlignedQuad.3ds b/third_party/gles2_book/Chapter_13/ProceduralTextures/ScreenAlignedQuad.3ds Binary files differnew file mode 100644 index 0000000..619124b --- /dev/null +++ b/third_party/gles2_book/Chapter_13/ProceduralTextures/ScreenAlignedQuad.3ds diff --git a/third_party/gles2_book/Chapter_13/ProceduralTextures/checker.fs b/third_party/gles2_book/Chapter_13/ProceduralTextures/checker.fs new file mode 100644 index 0000000..305eb46 --- /dev/null +++ b/third_party/gles2_book/Chapter_13/ProceduralTextures/checker.fs @@ -0,0 +1,21 @@ +#ifdef GL_ES +precision highp float; +#endif + +uniform int frequency; +uniform vec4 color0; +uniform vec4 color1; + +varying vec2 v_st; + +void +main() +{ + float s, t, delta; + + s = mod(floor(v_st.x * float(frequency * 2)), 2.0); + t = mod(floor(v_st.y * float(frequency * 2)), 2.0); + delta = abs(s - t); + + gl_FragColor = mix(color1, color0, delta); +} diff --git a/third_party/gles2_book/Chapter_13/ProceduralTextures/checker.tiff b/third_party/gles2_book/Chapter_13/ProceduralTextures/checker.tiff Binary files differnew file mode 100644 index 0000000..767b030 --- /dev/null +++ b/third_party/gles2_book/Chapter_13/ProceduralTextures/checker.tiff diff --git a/third_party/gles2_book/Chapter_13/ProceduralTextures/checker.vs b/third_party/gles2_book/Chapter_13/ProceduralTextures/checker.vs new file mode 100644 index 0000000..88375ba --- /dev/null +++ b/third_party/gles2_book/Chapter_13/ProceduralTextures/checker.vs @@ -0,0 +1,14 @@ + +uniform mat4 mvp_matrix; + +attribute vec4 a_position; +attribute vec2 a_st; + +varying vec2 v_st; + +void +main() +{ + v_st = a_st; + gl_Position = mvp_matrix * a_position; +} diff --git a/third_party/gles2_book/Chapter_13/ProjectiveSpotlight/Corona.tga b/third_party/gles2_book/Chapter_13/ProjectiveSpotlight/Corona.tga Binary files differnew file mode 100644 index 0000000..19dba88 --- /dev/null +++ b/third_party/gles2_book/Chapter_13/ProjectiveSpotlight/Corona.tga diff --git a/third_party/gles2_book/Chapter_13/ProjectiveSpotlight/ProjectiveSpotlight.rfx b/third_party/gles2_book/Chapter_13/ProjectiveSpotlight/ProjectiveSpotlight.rfx new file mode 100644 index 0000000..12f85f6 --- /dev/null +++ b/third_party/gles2_book/Chapter_13/ProjectiveSpotlight/ProjectiveSpotlight.rfx @@ -0,0 +1,1133 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<!DOCTYPE RENDER_MONKEY [ + <!ELEMENT RENDER_MONKEY + ( + RmEffectWorkspace | + RmRegistryBranch | + RmClipboardNode + )?> + + <!ELEMENT RmEffectWorkspace + ( + RmRegistryBranch?, + RmPlugInData?, + RmStringVariable*, + ( + ( RmDirectXEffect, RmOpenGLEffect?, RmOpenGLESEffect? ) | + ( RmOpenGLEffect, RmDirectXEffect?, RmOpenGLESEffect? ) | + ( RmOpenGLESEffect, RmDirectXEffect?, RmOpenGLEffect? ) + )?, + ( + RmBooleanVariable | + RmIntegerVariable | + RmFloatVariable | + RmVectorVariable | + RmMatrixVariable | + RmDynamicVariable | + RmColorVariable | + Rm2DTextureVariable | + RmCubemapVariable | + Rm3DTextureVariable | + RmLightVariable | + RmMaterialVariable | + RmRenderableTexture | + RmStreamMap | + RmModelData | + RmEffectGroup + )* + )> + + <!ELEMENT RmEffectGroup + ( + RmPlugInData?, + ( + RmStringVariable | + RmDirectXEffect | + RmOpenGLEffect | + RmOpenGLESEffect | + RmBooleanVariable | + RmIntegerVariable | + RmFloatVariable | + RmVectorVariable | + RmMatrixVariable | + RmDynamicVariable | + RmColorVariable | + Rm2DTextureVariable | + RmCubemapVariable | + Rm3DTextureVariable | + RmLightVariable | + RmMaterialVariable | + RmRenderableTexture | + RmStreamMap | + RmModelData + )* + )> + + <!ELEMENT RmDirectXEffect + ( + RmPlugInData?, + ( + RmStringVariable | + RmCamera | + RmBooleanVariable | + RmIntegerVariable | + RmFloatVariable | + RmVectorVariable | + RmMatrixVariable | + RmDynamicVariable | + RmColorVariable | + Rm2DTextureVariable | + RmCubemapVariable | + Rm3DTextureVariable | + RmLightVariable | + RmMaterialVariable | + RmRenderableTexture | + RmStreamMap | + RmModelData | + RmPass + )* + )> + + <!ELEMENT RmOpenGLEffect + ( + RmPlugInData?, + ( + RmStringVariable | + RmCamera | + RmBooleanVariable | + RmIntegerVariable | + RmFloatVariable | + RmVectorVariable | + RmMatrixVariable | + RmDynamicVariable | + RmColorVariable | + Rm2DTextureVariable | + RmCubemapVariable | + Rm3DTextureVariable | + RmLightVariable | + RmMaterialVariable | + RmRenderableTexture | + RmStreamMap | + RmModelData | + RmGLPass + )* + )> + + <!ELEMENT RmOpenGLESEffect + ( + RmPlugInData?, + ( + RmStringVariable | + RmCamera | + RmBooleanVariable | + RmIntegerVariable | + RmFloatVariable | + RmVectorVariable | + RmMatrixVariable | + RmDynamicVariable | + RmColorVariable | + Rm2DTextureVariable | + RmCubemapVariable | + Rm3DTextureVariable | + RmLightVariable | + RmMaterialVariable | + RmRenderableTexture | + RmStreamMap | + RmModelData | + RmGLESPass + )* + )> + + <!ELEMENT RmPass + ( + RmPlugInData?, + RmStringVariable*, + RmCameraReference?, + RmModelReference?, + RmRenderStateBlock?, + ( + ( + ( RmHLSLShader | RmShader ), + ( RmShader | RmHLSLShader )? + ) + )?, + RmRenderTarget*, + RmStreamMapReference?, + ( + RmBooleanVariable | + RmIntegerVariable | + RmFloatVariable | + RmVectorVariable | + RmMatrixVariable | + RmDynamicVariable | + RmColorVariable | + Rm2DTextureVariable | + RmCubemapVariable | + Rm3DTextureVariable | + RmLightVariable | + RmMaterialVariable | + RmTextureObject | + RmLightObject | + RmMaterialObject + )* + )> + + <!ELEMENT RmGLPass + ( + RmPlugInData?, + RmStringVariable*, + RmCameraReference?, + RmModelReference?, + RmRenderStateBlock?, + ( + ( RmGLShader, RmGLShader? ) + )?, + RmRenderTarget?, + RmStreamMapReference?, + ( + RmBooleanVariable | + RmIntegerVariable | + RmFloatVariable | + RmVectorVariable | + RmMatrixVariable | + RmDynamicVariable | + RmColorVariable | + Rm2DTextureVariable | + RmCubemapVariable | + Rm3DTextureVariable | + RmLightVariable | + RmMaterialVariable | + RmTextureObject | + RmLightObject | + RmMaterialObject | + RmShaderConstant | + RmSampler + )* + )> + + <!ELEMENT RmGLESPass + ( + RmPlugInData?, + RmStringVariable*, + RmCameraReference?, + RmModelReference?, + RmRenderStateBlock?, + ( + ( RmGLESShader, RmGLESShader? ) + )?, + RmRenderTarget?, + RmStreamMapReference?, + ( + RmBooleanVariable | + RmIntegerVariable | + RmFloatVariable | + RmVectorVariable | + RmMatrixVariable | + RmDynamicVariable | + RmColorVariable | + Rm2DTextureVariable | + RmCubemapVariable | + Rm3DTextureVariable | + RmLightVariable | + RmMaterialVariable | + RmTextureObject | + RmLightObject | + RmMaterialObject | + RmShaderConstant | + RmSampler + )* + )> + + <!ELEMENT RmShader + ( + RmShaderCode, + RmPlugInData?, + ( + RmStringVariable | + RmShaderConstant + )* + )> + + <!ELEMENT RmHLSLShader + ( + RmShaderCode, + RmPlugInData?, + ( + RmStringVariable | + RmShaderConstant | + RmSampler + )* + )> + + <!ELEMENT RmGLShader + ( + RmShaderCode, + RmPlugInData?, + ( + RmStringVariable + )* + )> + + <!ELEMENT RmGLESShader + ( + RmShaderCode, + RmPlugInData?, + ( + RmStringVariable + )* + )> + + <!ELEMENT RmTextureObject + ( + RmPlugInData?, + RmStringVariable*, + RmTextureReference?, + RmState* + )> + + <!ELEMENT RmLightObject + ( + RmPlugInData?, + RmStringVariable*, + RmLightReference? + )> + + <!ELEMENT RmMaterialObject + ( + RmPlugInData?, + RmStringVariable*, + RmMaterialReference? + )> + + <!ELEMENT RmRenderStateBlock + ( + RmPlugInData?, + ( + RmStringVariable | + RmState + )* + )> + + <!ELEMENT RmStreamMap + ( + RmPlugInData?, + ( + RmStringVariable | + RmStream + )* + )> + + <!ELEMENT RmStream ( RmPlugInData?, RmStreamChannel* )> + + <!ELEMENT RmModelData ( RmPlugInData?, RmStringVariable* )> + <!ELEMENT RmTextureReference ( RmPlugInData?, RmStringVariable* )> + <!ELEMENT RmLightReference ( RmPlugInData?, RmStringVariable* )> + <!ELEMENT RmMaterialReference ( RmPlugInData?, RmStringVariable* )> + <!ELEMENT RmCameraReference ( RmPlugInData?, RmStringVariable* )> + <!ELEMENT RmModelReference ( RmPlugInData?, RmStringVariable* )> + <!ELEMENT RmStreamMapReference ( RmPlugInData?, RmStringVariable* )> + <!ELEMENT RmRenderableTexture ( RmPlugInData?, RmStringVariable* )> + <!ELEMENT RmRenderTarget ( RmPlugInData?, RmStringVariable* )> + <!ELEMENT RmBooleanVariable ( RmPlugInData?, RmStringVariable? )> + <!ELEMENT RmFloatVariable ( RmPlugInData?, RmStringVariable? )> + <!ELEMENT RmVectorVariable ( RmPlugInData?, RmStringVariable? )> + <!ELEMENT RmMatrixVariable ( RmPlugInData?, RmStringVariable? )> + <!ELEMENT RmColorVariable ( RmPlugInData?, RmStringVariable? )> + <!ELEMENT RmIntegerVariable ( RmPlugInData?, RmStringVariable? )> + <!ELEMENT Rm2DTextureVariable ( RmPlugInData?, RmStringVariable? )> + <!ELEMENT RmCubemapVariable ( RmPlugInData?, RmStringVariable? )> + <!ELEMENT Rm3DTextureVariable ( RmPlugInData?, RmStringVariable? )> + <!ELEMENT RmLightVariable ( RmPlugInData?, RmStringVariable? )> + <!ELEMENT RmMaterialVariable ( RmPlugInData?, RmStringVariable? )> + <!ELEMENT RmCamera ( RmPlugInData?, RmStringVariable* )> + + <!ELEMENT RmStringVariable ( RmTextDataBlock, RmPlugInData? )> + + <!ELEMENT RmDynamicVariable + ( + RmDynamicVariableValueContainer, + RmPlugInData?, + RmStringVariable? + )> + + <!ELEMENT RmDynamicVariableValueContainer + ( + RmPlugInData?, + RmDynamicVariableValue* + )> + + <!ELEMENT RmTextDataBlock ( #PCDATA ) > + + <!ELEMENT RmRegistryBranch + ( + RmTextDataBlock?, + ( + RmRegistryBranch | + RmStringVariable | + RmIntegerVariable | + RmBooleanVariable | + RmFloatVariable + )* + )> + + <!ELEMENT RmPlugInData + ( + RmTextDataBlock?, + ( + RmStringVariable | + RmIntegerVariable | + RmBooleanVariable | + RmFloatVariable | + RmVectorVariable + )* + )> + + <!ELEMENT RmClipboardNode + ( + RmTextDataBlock?, + ( + RmEffectWorkspace | + RmEffectGroup | + RmDirectXEffect | + RmOpenGLEffect | + RmOpenGLESEffect | + RmPass | + RmGLPass | + RmGLESPass | + RmShader | + RmHLSLShader | + RmGLShader | + RmGLESShader | + RmShaderConstant | + RmSampler | + RmTextureObject | + RmLightObject | + RmMaterialObject | + RmRenderStateBlock | + RmState | + RmStreamMap | + RmStream | + RmStreamChannel | + RmModelData | + RmTextureReference | + RmLightReference | + RmMaterialReference | + RmModelReference | + RmStreamMapReference | + RmRenderableTexture | + RmRenderTarget | + RmBooleanVariable | + RmFloatVariable | + RmVectorVariable | + RmMatrixVariable | + RmDynamicVariable | + RmDynamicVariableValue | + RmColorVariable | + RmIntegerVariable | + RmStringVariable | + Rm2DTextureVariable | + RmCubemapVariable | + Rm3DTextureVariable | + RmLightVariable | + RmMaterialVariable | + RmRegistryBranch | + RmPlugInData | + RmCamera | + RmCameraReference + )* + )> + + <!ELEMENT RmStreamChannel ( RmPlugInData? ) > + <!ELEMENT RmShaderConstant ( RmPlugInData? ) > + <!ELEMENT RmSampler ( RmPlugInData? ) > + <!ELEMENT RmState ( RmPlugInData? ) > + <!ELEMENT RmDynamicVariableValue ( RmPlugInData? ) > + + <!ELEMENT RmShaderCode ( #PCDATA ) > + + <!ATTLIST RmEffectWorkspace + NAME CDATA #REQUIRED + API CDATA #REQUIRED + ACTIVE_EFFECT CDATA #REQUIRED + VALIDATION_STRING CDATA #REQUIRED + XML_VERSION CDATA #REQUIRED + > + + <!ATTLIST RmEffectGroup + NAME CDATA #REQUIRED + API CDATA #REQUIRED + > + + <!ATTLIST RmDirectXEffect + NAME CDATA #REQUIRED + API CDATA #REQUIRED + ACTIVE_CAMERA CDATA #REQUIRED + > + + <!ATTLIST RmOpenGLEffect + NAME CDATA #REQUIRED + API CDATA #REQUIRED + ACTIVE_CAMERA CDATA #REQUIRED + > + + <!ATTLIST RmOpenGLESEffect + NAME CDATA #REQUIRED + API CDATA #REQUIRED + ACTIVE_CAMERA CDATA #REQUIRED + > + + <!ATTLIST RmPass + NAME CDATA #REQUIRED + API CDATA #REQUIRED + PASS_INDEX CDATA #REQUIRED + ENABLED ( TRUE | FALSE ) #REQUIRED + > + + <!ATTLIST RmGLPass + NAME CDATA #REQUIRED + API CDATA #REQUIRED + PASS_INDEX CDATA #REQUIRED + ENABLED ( TRUE | FALSE ) #REQUIRED + > + + <!ATTLIST RmGLESPass + NAME CDATA #REQUIRED + API CDATA #REQUIRED + PASS_INDEX CDATA #REQUIRED + ENABLED ( TRUE | FALSE ) #REQUIRED + > + + <!ATTLIST RmShader + NAME CDATA #REQUIRED + API CDATA #REQUIRED + PIXEL_SHADER CDATA #REQUIRED + > + + <!ATTLIST RmHLSLShader + NAME CDATA #REQUIRED + API CDATA #REQUIRED + PIXEL_SHADER ( TRUE | FALSE ) #REQUIRED + TARGET CDATA #REQUIRED + ENTRY_POINT CDATA #REQUIRED + COMPILER_FLAGS CDATA #REQUIRED + > + + <!ATTLIST RmGLShader + NAME CDATA #REQUIRED + API CDATA #REQUIRED + PIXEL_SHADER ( TRUE | FALSE ) #REQUIRED + > + + <!ATTLIST RmGLESShader + NAME CDATA #REQUIRED + API CDATA #REQUIRED + PIXEL_SHADER ( TRUE | FALSE ) #REQUIRED + > + + <!ATTLIST RmShaderConstant + NAME CDATA #REQUIRED + API CDATA #REQUIRED + REGISTER CDATA #REQUIRED + > + + <!ATTLIST RmSampler + NAME CDATA #REQUIRED + API CDATA #REQUIRED + REGISTER CDATA #REQUIRED + > + + <!ATTLIST RmTextureObject + NAME CDATA #REQUIRED + API CDATA #REQUIRED + STATE_INDEX CDATA #REQUIRED + VERTEX_TEXTURE ( TRUE | FALSE ) #REQUIRED + > + + <!ATTLIST RmLightObject + NAME CDATA #REQUIRED + API CDATA #REQUIRED + INDEX CDATA #REQUIRED + > + + <!ATTLIST RmMaterialObject + NAME CDATA #REQUIRED + API CDATA #REQUIRED + INDEX CDATA #REQUIRED + > + + <!ATTLIST RmRenderStateBlock + NAME CDATA #REQUIRED + API CDATA #REQUIRED + > + + <!ATTLIST RmState + NAME CDATA #REQUIRED + API CDATA #REQUIRED + STATE CDATA #REQUIRED + VALUE CDATA #REQUIRED + USAGE CDATA #REQUIRED + > + + <!ATTLIST RmStreamMap + NAME CDATA #REQUIRED + API CDATA #REQUIRED + > + + <!ATTLIST RmStream + NAME CDATA #REQUIRED + API CDATA #REQUIRED + STRIDE CDATA #REQUIRED + > + + <!ATTLIST RmStreamChannel + NAME CDATA #REQUIRED + API CDATA #REQUIRED + DATA_SIZE CDATA #REQUIRED + DATA_TYPE CDATA #REQUIRED + REGISTER CDATA #REQUIRED + USAGE CDATA #REQUIRED + USAGE_INDEX CDATA #REQUIRED + ATTRIBUTE_NAME CDATA #REQUIRED + > + + <!ATTLIST RmModelData + NAME CDATA #REQUIRED + API CDATA #REQUIRED + FILE_NAME CDATA #REQUIRED + ORIENTATION CDATA #REQUIRED + > + + <!ATTLIST RmTextureReference + NAME CDATA #REQUIRED + API CDATA #REQUIRED + > + + <!ATTLIST RmLightReference + NAME CDATA #REQUIRED + API CDATA #REQUIRED + > + + <!ATTLIST RmMaterialReference + NAME CDATA #REQUIRED + API CDATA #REQUIRED + > + + <!ATTLIST RmModelReference + NAME CDATA #REQUIRED + API CDATA #REQUIRED + > + + <!ATTLIST RmStreamMapReference + NAME CDATA #REQUIRED + API CDATA #REQUIRED + > + + <!ATTLIST RmRenderableTexture + NAME CDATA #REQUIRED + API CDATA #REQUIRED + ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED + VARIABLE_SEMANTIC CDATA #REQUIRED + FILE_NAME CDATA #REQUIRED + ORIGIN CDATA #REQUIRED + WIDTH CDATA #REQUIRED + HEIGHT CDATA #REQUIRED + FORMAT CDATA #REQUIRED + USE_VIEWPORT_DIMENSIONS ( TRUE | FALSE ) #REQUIRED + GENERATE_MIPMAPS ( TRUE | FALSE ) #REQUIRED + WIDTH_RATIO CDATA #REQUIRED + HEIGHT_RATIO CDATA #REQUIRED + > + + <!ATTLIST RmRenderTarget + NAME CDATA #REQUIRED + API CDATA #REQUIRED + INDEX CDATA #REQUIRED + RENDER_TO_SCREEN ( TRUE | FALSE ) #REQUIRED + COLOR_CLEAR ( TRUE | FALSE ) #REQUIRED + DEPTH_CLEAR ( TRUE | FALSE ) #REQUIRED + CLEAR_COLOR_VALUE CDATA #REQUIRED + DEPTH_CLEAR_VALUE CDATA #REQUIRED + > + + <!ATTLIST RmBooleanVariable + NAME CDATA #REQUIRED + API CDATA #REQUIRED + ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED + VARIABLE_SEMANTIC CDATA #REQUIRED + VALUE CDATA #REQUIRED + > + + <!ATTLIST RmFloatVariable + NAME CDATA #REQUIRED + API CDATA #REQUIRED + ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED + VARIABLE_SEMANTIC CDATA #REQUIRED + VALUE CDATA #REQUIRED + MIN CDATA #REQUIRED + MAX CDATA #REQUIRED + CLAMP ( TRUE | FALSE ) #REQUIRED + > + + <!ATTLIST RmVectorVariable + NAME CDATA #REQUIRED + API CDATA #REQUIRED + ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED + VARIABLE_SEMANTIC CDATA #REQUIRED + VALUE_0 CDATA #REQUIRED + VALUE_1 CDATA #REQUIRED + VALUE_2 CDATA #REQUIRED + VALUE_3 CDATA #REQUIRED + MIN CDATA #REQUIRED + MAX CDATA #REQUIRED + CLAMP ( TRUE | FALSE ) #REQUIRED + NORMALIZE ( TRUE | FALSE ) #REQUIRED + > + + <!ATTLIST RmMatrixVariable + NAME CDATA #REQUIRED + API CDATA #REQUIRED + ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED + VARIABLE_SEMANTIC CDATA #REQUIRED + VALUE_0 CDATA #REQUIRED + VALUE_1 CDATA #REQUIRED + VALUE_2 CDATA #REQUIRED + VALUE_3 CDATA #REQUIRED + VALUE_4 CDATA #REQUIRED + VALUE_5 CDATA #REQUIRED + VALUE_6 CDATA #REQUIRED + VALUE_7 CDATA #REQUIRED + VALUE_8 CDATA #REQUIRED + VALUE_9 CDATA #REQUIRED + VALUE_10 CDATA #REQUIRED + VALUE_11 CDATA #REQUIRED + VALUE_12 CDATA #REQUIRED + VALUE_13 CDATA #REQUIRED + VALUE_14 CDATA #REQUIRED + VALUE_15 CDATA #REQUIRED + > + + <!ATTLIST RmDynamicVariable + NAME CDATA #REQUIRED + API CDATA #REQUIRED + ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED + VARIABLE_SEMANTIC CDATA #REQUIRED + VARIABLE_TYPE ( FLOAT | INTEGER | BOOLEAN ) #REQUIRED + ROWS CDATA #REQUIRED + COLUMNS CDATA #REQUIRED + FIXED_SIZE ( TRUE | FALSE ) #REQUIRED + MIN CDATA #REQUIRED + MAX CDATA #REQUIRED + CLAMP ( TRUE | FALSE ) #REQUIRED + NORMALIZE ( TRUE | FALSE ) #REQUIRED + > + + <!ATTLIST RmDynamicVariableValue + ROW_INDEX CDATA #REQUIRED + COLUMN_INDEX CDATA #REQUIRED + VALUE CDATA #REQUIRED + > + + <!ATTLIST RmColorVariable + NAME CDATA #REQUIRED + API CDATA #REQUIRED + ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED + VARIABLE_SEMANTIC CDATA #REQUIRED + VALUE_0 CDATA #REQUIRED + VALUE_1 CDATA #REQUIRED + VALUE_2 CDATA #REQUIRED + VALUE_3 CDATA #REQUIRED + > + + <!ATTLIST RmIntegerVariable + NAME CDATA #REQUIRED + API CDATA #REQUIRED + ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED + VARIABLE_SEMANTIC CDATA #REQUIRED + VALUE CDATA #REQUIRED + MIN CDATA #REQUIRED + MAX CDATA #REQUIRED + CLAMP ( TRUE | FALSE ) #REQUIRED + > + + <!ATTLIST RmStringVariable + NAME CDATA #REQUIRED + API CDATA #REQUIRED + ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED + VARIABLE_SEMANTIC CDATA #REQUIRED + > + + <!ATTLIST Rm2DTextureVariable + NAME CDATA #REQUIRED + API CDATA #REQUIRED + ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED + VARIABLE_SEMANTIC CDATA #REQUIRED + FILE_NAME CDATA #REQUIRED + ORIGIN CDATA #REQUIRED + > + + <!ATTLIST RmCubemapVariable + NAME CDATA #REQUIRED + API CDATA #REQUIRED + ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED + VARIABLE_SEMANTIC CDATA #REQUIRED + FILE_NAME CDATA #REQUIRED + ORIGIN CDATA #REQUIRED + > + + <!ATTLIST Rm3DTextureVariable + NAME CDATA #REQUIRED + API CDATA #REQUIRED + ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED + VARIABLE_SEMANTIC CDATA #REQUIRED + FILE_NAME CDATA #REQUIRED + ORIGIN CDATA #REQUIRED + > + + <!ATTLIST RmLightVariable + NAME CDATA #REQUIRED + API CDATA #REQUIRED + ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED + VARIABLE_SEMANTIC CDATA #REQUIRED + LIGHT_ENABLED ( TRUE | FALSE ) #REQUIRED + LIGHT_TYPE ( POSITIONAL | DIRECTIONAL | SPOTLIGHT ) #REQUIRED + AMBIENT_0 CDATA #REQUIRED + AMBIENT_1 CDATA #REQUIRED + AMBIENT_2 CDATA #REQUIRED + AMBIENT_3 CDATA #REQUIRED + DIFFUSE_0 CDATA #REQUIRED + DIFFUSE_1 CDATA #REQUIRED + DIFFUSE_2 CDATA #REQUIRED + DIFFUSE_3 CDATA #REQUIRED + SPECULAR_0 CDATA #REQUIRED + SPECULAR_1 CDATA #REQUIRED + SPECULAR_2 CDATA #REQUIRED + SPECULAR_3 CDATA #REQUIRED + POSITION_0 CDATA #REQUIRED + POSITION_1 CDATA #REQUIRED + POSITION_2 CDATA #REQUIRED + DIRECTION_0 CDATA #REQUIRED + DIRECTION_1 CDATA #REQUIRED + DIRECTION_2 CDATA #REQUIRED + ATTENUATION_0 CDATA #REQUIRED + ATTENUATION_1 CDATA #REQUIRED + ATTENUATION_2 CDATA #REQUIRED + SPOTLIGHT_THETA CDATA #REQUIRED + SPOTLIGHT_PHI CDATA #REQUIRED + RANGE CDATA #REQUIRED + FALLOFF CDATA #REQUIRED + > + + <!ATTLIST RmMaterialVariable + NAME CDATA #REQUIRED + API CDATA #REQUIRED + ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED + VARIABLE_SEMANTIC CDATA #REQUIRED + AMBIENT_0 CDATA #REQUIRED + AMBIENT_1 CDATA #REQUIRED + AMBIENT_2 CDATA #REQUIRED + AMBIENT_3 CDATA #REQUIRED + DIFFUSE_0 CDATA #REQUIRED + DIFFUSE_1 CDATA #REQUIRED + DIFFUSE_2 CDATA #REQUIRED + DIFFUSE_3 CDATA #REQUIRED + SPECULAR_0 CDATA #REQUIRED + SPECULAR_1 CDATA #REQUIRED + SPECULAR_2 CDATA #REQUIRED + SPECULAR_3 CDATA #REQUIRED + EMISSIVE_0 CDATA #REQUIRED + EMISSIVE_1 CDATA #REQUIRED + EMISSIVE_2 CDATA #REQUIRED + EMISSIVE_3 CDATA #REQUIRED + SPECULAR_POWER CDATA #REQUIRED + > + + <!ATTLIST RmRegistryBranch + NAME CDATA #REQUIRED + API CDATA #REQUIRED + XML_VERSION CDATA #REQUIRED + > + + <!ATTLIST RmPlugInData + NAME CDATA #REQUIRED + API CDATA #REQUIRED + PLUGIN_GUID CDATA #REQUIRED + > + + <!ATTLIST RmClipboardNode + NAME CDATA #REQUIRED + API CDATA #REQUIRED + XML_VERSION CDATA #REQUIRED + > + + <!ATTLIST RmCamera + NAME CDATA #REQUIRED + API CDATA #REQUIRED + CAMERA_POSITION_X CDATA #REQUIRED + CAMERA_POSITION_Y CDATA #REQUIRED + CAMERA_POSITION_Z CDATA #REQUIRED + LOOK_AT_VECTOR_X CDATA #REQUIRED + LOOK_AT_VECTOR_Y CDATA #REQUIRED + LOOK_AT_VECTOR_Z CDATA #REQUIRED + UP_VECTOR_X CDATA #REQUIRED + UP_VECTOR_Y CDATA #REQUIRED + UP_VECTOR_Z CDATA #REQUIRED + FOV CDATA #REQUIRED + NEAR_CLIP_PLANE CDATA #REQUIRED + FAR_CLIP_PLANE CDATA #REQUIRED + > + + <!ATTLIST RmCameraReference + NAME CDATA #REQUIRED + API CDATA #REQUIRED + USE_ACTIVE_CAMERA ( TRUE | FALSE ) #REQUIRED + > + + <!ATTLIST RmShaderCode + TYPE ( TEXT ) #REQUIRED + > + + <!ATTLIST RmTextDataBlock + TYPE ( TEXT ) #REQUIRED + > + +]> +<RENDER_MONKEY> + <RmEffectWorkspace NAME="Effect Workspace" API="" ACTIVE_EFFECT="Effect Workspace.ProjectiveSpotlight" VALIDATION_STRING="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="RM_REGISTRY" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="RM_LOCAL" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="RM_PLUGIN" API="" XML_VERSION="RenderMonkey 1.71"><RmTextDataBlock TYPE="TEXT"><![CDATA[ +<DockingPaneLayouts><Application_Layout><Pane-1><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Artist Editor</Title><ID>1001</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>14</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>14</LastHolder></Pane-1><Pane-2><Type>0</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Title>u_blurStep</Title><ID>1100</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>8</DockingHolder><FloatingHolder>19</FloatingHolder><LastHolder>19</LastHolder></Pane-2><Pane-3><Type>2</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><Horiz>1</Horiz><Pane-1>4</Pane-1><Pane-2>5</Pane-2><Pane-3>6</Pane-3><Pane-4>7</Pane-4><Pane-5>8</Pane-5><Pane-6>9</Pane-6><Panes>6</Panes></Pane-3><Pane-4><Type>1</Type><DockingCX>434</DockingCX><DockingCY>212</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-4><Pane-5><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-5><Pane-6><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-6><Pane-7><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-7><Pane-8><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-8><Pane-9><Type>2</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><Horiz>0</Horiz><Pane-1>10</Pane-1><Pane-2>15</Pane-2><Panes>2</Panes></Pane-9><Pane-10><Type>2</Type><DockingCX>0</DockingCX><DockingCY>641</DockingCY><Horiz>1</Horiz><Pane-1>11</Pane-1><Pane-2>13</Pane-2><Pane-3>14</Pane-3><Panes>3</Panes></Pane-10><Pane-11><Type>1</Type><DockingCX>336</DockingCX><DockingCY>250</DockingCY><Selected>12</Selected><Panes>1</Panes><Pane-1>12</Pane-1></Pane-11><Pane-12><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Workspace</Title><ID>1000</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>11</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>11</LastHolder></Pane-12><Pane-13><Type>4</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY></Pane-13><Pane-14><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-14><Pane-15><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>16</Selected><Panes>1</Panes><Pane-1>16</Pane-1></Pane-15><Pane-16><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Output</Title><ID>1002</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>15</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>15</LastHolder></Pane-16><Pane-17><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>18</TopContaner><WindowRectTopPos>32</WindowRectTopPos><WindowRectBottomPos>160</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>566</WindowRectRightPos></Pane-17><Pane-18><Type>2</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Horiz>1</Horiz><Pane-1>19</Pane-1><Panes>1</Panes></Pane-18><Pane-19><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-19><Pane-20><Type>0</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Title>u_blurStep</Title><ID>1101</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>7</DockingHolder><FloatingHolder>23</FloatingHolder><LastHolder>23</LastHolder></Pane-20><Pane-21><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>22</TopContaner><WindowRectTopPos>32</WindowRectTopPos><WindowRectBottomPos>160</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>566</WindowRectRightPos></Pane-21><Pane-22><Type>2</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Horiz>1</Horiz><Pane-1>23</Pane-1><Panes>1</Panes></Pane-22><Pane-23><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-23><Pane-24><Type>0</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Title>u_blurStep</Title><ID>1102</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>6</DockingHolder><FloatingHolder>27</FloatingHolder><LastHolder>27</LastHolder></Pane-24><Pane-25><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>26</TopContaner><WindowRectTopPos>32</WindowRectTopPos><WindowRectBottomPos>160</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>566</WindowRectRightPos></Pane-25><Pane-26><Type>2</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Horiz>1</Horiz><Pane-1>27</Pane-1><Panes>1</Panes></Pane-26><Pane-27><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-27><Pane-28><Type>0</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Title>u_blurStep</Title><ID>1103</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>5</DockingHolder><FloatingHolder>31</FloatingHolder><LastHolder>31</LastHolder></Pane-28><Pane-29><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>30</TopContaner><WindowRectTopPos>32</WindowRectTopPos><WindowRectBottomPos>160</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>566</WindowRectRightPos></Pane-29><Pane-30><Type>2</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Horiz>1</Horiz><Pane-1>31</Pane-1><Panes>1</Panes></Pane-30><Pane-31><Type>1</Type><DockingCX>566</DockingCX><DockingCY>128</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-31><Pane-32><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>33</TopContaner><WindowRectTopPos>557</WindowRectTopPos><WindowRectBottomPos>769</WindowRectBottomPos><WindowRectLeftPos>386</WindowRectLeftPos><WindowRectRightPos>820</WindowRectRightPos></Pane-32><Pane-33><Type>2</Type><DockingCX>434</DockingCX><DockingCY>212</DockingCY><Horiz>1</Horiz><Pane-1>34</Pane-1><Panes>1</Panes></Pane-33><Pane-34><Type>1</Type><DockingCX>434</DockingCX><DockingCY>212</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-34><Pane-35><Type>0</Type><DockingCX>434</DockingCX><DockingCY>212</DockingCY><Title>u_lightPos</Title><ID>1104</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>4</DockingHolder><FloatingHolder>34</FloatingHolder><LastHolder>34</LastHolder></Pane-35><Summary><TopContainer>3</TopContainer><Client>13</Client><Panes>35</Panes></Summary></Application_Layout></DockingPaneLayouts> +]]></RmTextDataBlock> + <RmRegistryBranch NAME="RmPreviewDx9Window" API="" XML_VERSION="RenderMonkey 1.71"/> + <RmRegistryBranch NAME="RmPreviewGLESWindow" API="" XML_VERSION="RenderMonkey 1.71"/> + <RmRegistryBranch NAME="RmPreviewGLWindow" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EffectPlacementRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.ProjectiveSpotlight" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="39" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="2" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="483" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="483" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + </RmRegistryBranch> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmPreviewGLPreview" API="" XML_VERSION="RenderMonkey 1.71"/> + <RmRegistryBranch NAME="RmLightEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="NoteEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmRenderableTextureEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmRenderTargetEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmRenderStateBlockEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmTextureObjectEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.ProjectiveSpotlight.Render Object.spotLight" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.ProjectiveSpotlight" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="431" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="36" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1063" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="514" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + </RmRegistryBranch> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmTextureGenerator" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmShaderEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.ProjectiveSpotlight" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Disassembly" API="" XML_VERSION="RenderMonkey 1.71"/> + <RmStringVariable NAME="Editing Shader" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +Fragment Program]]></RmTextDataBlock></RmStringVariable> + <RmStringVariable NAME="Editing Pass" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +Render Object]]></RmTextDataBlock></RmStringVariable> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="650" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="650" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="429" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmStreamEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="Effect Workspace.Textured.Stream Mapping" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="258" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="128" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="851" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="270" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="Effect Workspace.ProjectiveSpotlight.Stream Mapping" API="" XML_VERSION="RenderMonkey 1.71"> + <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="344" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="128" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="851" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="270" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/> + </RmRegistryBranch> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmScalarEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + <RmRegistryBranch NAME="RmDynamicVariableEditor" API="" XML_VERSION="RenderMonkey 1.71"> + <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.71"/> + </RmRegistryBranch> + </RmRegistryBranch> + <RmRegistryBranch NAME="WORKSPACE" API="" XML_VERSION="RenderMonkey 1.71"> + <RmStringVariable NAME="LAST_SAVE" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +19/1/2008 9:30:45]]></RmTextDataBlock></RmStringVariable> + <RmStringVariable NAME="VERSION" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +RenderMonkey Version 1.80 (build 125)]]></RmTextDataBlock></RmStringVariable> + <RmStringVariable NAME="XML_VERSION" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +RenderMonkey 1.71]]></RmTextDataBlock></RmStringVariable> + <RmStringVariable NAME="BASE_WORKSPACE_PATH" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[ +D:\svn\redbook\Code\Chapter_13\ProjectiveSpotlight\]]></RmTextDataBlock></RmStringVariable> + </RmRegistryBranch> + </RmRegistryBranch> + </RmRegistryBranch> + <RmOpenGLESEffect NAME="ProjectiveSpotlight" API="OpenGL ES" ACTIVE_CAMERA="Camera"> + <RmCamera NAME="Camera" API="" CAMERA_POSITION_X="-95.867363" CAMERA_POSITION_Y="52.315987" CAMERA_POSITION_Z="-127.439903" LOOK_AT_VECTOR_X="0.000000" LOOK_AT_VECTOR_Y="0.000000" LOOK_AT_VECTOR_Z="0.000000" UP_VECTOR_X="0.128836" UP_VECTOR_Y="0.947666" UP_VECTOR_Z="0.292114" FOV="45.000000" NEAR_CLIP_PLANE="1.000000" FAR_CLIP_PLANE="1000.000000"/> + <RmMatrixVariable NAME="u_matViewProjection" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="ViewProjection" VALUE_0="-1.824085" VALUE_1="-0.155327" VALUE_2="1.308414" VALUE_3="0.000011" VALUE_4="0.311038" VALUE_5="2.287868" VALUE_6="0.705226" VALUE_7="0.000228" VALUE_8="0.571773" VALUE_9="-0.312024" VALUE_10="0.760079" VALUE_11="167.001587" VALUE_12="0.571202" VALUE_13="-0.311712" VALUE_14="0.759319" VALUE_15="167.834579"/> + <RmMatrixVariable NAME="u_matProjection" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="Projection" VALUE_0="2.250190" VALUE_1="0.000000" VALUE_2="0.000000" VALUE_3="0.000000" VALUE_4="0.000000" VALUE_5="2.414213" VALUE_6="0.000000" VALUE_7="0.000000" VALUE_8="0.000000" VALUE_9="0.000000" VALUE_10="-1.001001" VALUE_11="-1.001001" VALUE_12="0.000000" VALUE_13="0.000000" VALUE_14="-1.000000" VALUE_15="0.000000"/> + <RmFloatVariable NAME="u_time_0_X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="Time0_X" VALUE="41.675537" MIN="-1.000000" MAX="1.000000" CLAMP="FALSE"/> + <Rm2DTextureVariable NAME="Spotlight" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" FILE_NAME="Corona.tga" ORIGIN="0"/> + <Rm2DTextureVariable NAME="base" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" FILE_NAME="Terrain.tga" ORIGIN="0"/> + <RmStreamMap NAME="Stream Mapping" API=""> + <RmStream NAME="Stream" API="" STRIDE="32"> + <RmStreamChannel NAME="Position_0" API="" DATA_SIZE="12" DATA_TYPE="2" REGISTER="0" USAGE="0" USAGE_INDEX="0" ATTRIBUTE_NAME="a_vertex"/> + <RmStreamChannel NAME="TexCoord_0" API="" DATA_SIZE="8" DATA_TYPE="1" REGISTER="0" USAGE="5" USAGE_INDEX="0" ATTRIBUTE_NAME="a_texCoord0"/> + <RmStreamChannel NAME="Normal_0" API="" DATA_SIZE="12" DATA_TYPE="2" REGISTER="0" USAGE="3" USAGE_INDEX="0" ATTRIBUTE_NAME="a_normal"/> + </RmStream> + </RmStreamMap> + <RmModelData NAME="Terrrain" API="" FILE_NAME=".\Terrain.3ds" ORIENTATION="0"/> + <RmGLESPass NAME="Render Object" API="OpenGL ES" PASS_INDEX="0" ENABLED="TRUE"> + <RmCameraReference NAME="Camera" API="" USE_ACTIVE_CAMERA="FALSE"/> + <RmModelReference NAME="Terrrain" API=""/> + <RmGLESShader NAME="Fragment Program" API="OpenGL ES" PIXEL_SHADER="TRUE"><RmShaderCode TYPE="TEXT"><![CDATA[ +precision mediump float; + +uniform sampler2D baseMap; +uniform sampler2D spotLight; +varying vec2 v_texCoord; +varying vec3 v_projTexCoord; +varying vec3 v_normal; +varying vec3 v_lightDir; + + +void main( void ) +{ + // Projective fetch of spotlight + vec4 spotLightColor = texture2DProj( spotLight, v_projTexCoord ); + + // Basemap + vec4 baseColor = texture2D( baseMap, v_texCoord ); + + // Compute N.L + float nDotL = max( 0.0, -dot( v_normal, v_lightDir ) ); + + gl_FragColor = spotLightColor * baseColor * 2.0 * nDotL; + +}]]></RmShaderCode></RmGLESShader> + <RmGLESShader NAME="Vertex Program" API="OpenGL ES" PIXEL_SHADER="FALSE"><RmShaderCode TYPE="TEXT"><![CDATA[ +uniform float u_time_0_X; +uniform mat4 u_matProjection; +uniform mat4 u_matViewProjection; +attribute vec4 a_vertex; +attribute vec2 a_texCoord0; +attribute vec3 a_normal; + +varying vec2 v_texCoord; +varying vec3 v_projTexCoord; +varying vec3 v_normal; +varying vec3 v_lightDir; + +void main( void ) +{ + gl_Position = u_matViewProjection * a_vertex; + v_texCoord = a_texCoord0.xy; + + // Compute a light position based on time + vec3 lightPos; + lightPos.x = cos(u_time_0_X); + lightPos.z = sin(u_time_0_X); + lightPos.xz = 100.0 * normalize(lightPos.xz); + lightPos.y = 100.0; + + // Compute the light coordinate axes + vec3 look = -normalize( lightPos ); + vec3 right = cross( vec3( 0.0, 0.0, 1.0), look ); + vec3 up = cross( look, right ); + + // Create a view matrix for the light + mat4 lightView = mat4( right, dot( right, -lightPos ), + up, dot( up, -lightPos ), + look, dot( look, -lightPos), + 0.0, 0.0, 0.0, 1.0 ); + + // Transform position into light view space + vec4 objPosLight = a_vertex * lightView; + + // Transform position into projective light view space + objPosLight = u_matProjection * objPosLight; + + // Create bias matrix + mat3 biasMatrix = mat3( 0.5, 0.0, 0.5, + 0.0, -0.5, 0.5, + 0.0, 0.0, 1.0 ); + + // Compute projective texture coordinates + v_projTexCoord = objPosLight.xyz * biasMatrix; + + v_lightDir = normalize(a_vertex.xyz - lightPos); + v_normal = a_normal; + +}]]></RmShaderCode></RmGLESShader> + <RmStreamMapReference NAME="Stream Mapping" API=""/> + <RmTextureObject NAME="baseMap" API="OpenGL ES" STATE_INDEX="0" VERTEX_TEXTURE="FALSE"> + <RmTextureReference NAME="base" API=""/> + <RmState NAME="GL_TextureMinify" API="OpenGL ES" STATE="4" VALUE="6" USAGE="SAMPLER_STATE"/> + <RmState NAME="GL_TextureMagnify" API="OpenGL ES" STATE="5" VALUE="1" USAGE="SAMPLER_STATE"/> + </RmTextureObject> + <RmTextureObject NAME="spotLight" API="OpenGL ES" STATE_INDEX="1" VERTEX_TEXTURE="FALSE"> + <RmTextureReference NAME="Spotlight" API=""/> + <RmState NAME="GL_TextureWrapS" API="OpenGL ES" STATE="1" VALUE="2" USAGE="SAMPLER_STATE"/> + <RmState NAME="GL_TextureWrapT" API="OpenGL ES" STATE="2" VALUE="2" USAGE="SAMPLER_STATE"/> + <RmState NAME="GL_TextureWrapR" API="OpenGL ES" STATE="3" VALUE="2" USAGE="SAMPLER_STATE"/> + <RmState NAME="GL_TextureMinify" API="OpenGL ES" STATE="4" VALUE="1" USAGE="SAMPLER_STATE"/> + <RmState NAME="GL_TextureMagnify" API="OpenGL ES" STATE="5" VALUE="1" USAGE="SAMPLER_STATE"/> + </RmTextureObject> + <RmSampler NAME="baseMap" API="" REGISTER="-1"/> + <RmSampler NAME="spotLight" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_time_0_X" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_matProjection" API="" REGISTER="-1"/> + <RmShaderConstant NAME="u_matViewProjection" API="" REGISTER="-1"/> + </RmGLESPass> + </RmOpenGLESEffect> + </RmEffectWorkspace> +</RENDER_MONKEY> diff --git a/third_party/gles2_book/Chapter_13/ProjectiveSpotlight/Terrain.3ds b/third_party/gles2_book/Chapter_13/ProjectiveSpotlight/Terrain.3ds Binary files differnew file mode 100644 index 0000000..a46d787 --- /dev/null +++ b/third_party/gles2_book/Chapter_13/ProjectiveSpotlight/Terrain.3ds diff --git a/third_party/gles2_book/Chapter_13/ProjectiveSpotlight/Terrain.tga b/third_party/gles2_book/Chapter_13/ProjectiveSpotlight/Terrain.tga Binary files differnew file mode 100644 index 0000000..47d5117 --- /dev/null +++ b/third_party/gles2_book/Chapter_13/ProjectiveSpotlight/Terrain.tga |