Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

Ogre::ShadowVolumeExtrudeProgram Class Reference

Static class containing source for vertex programs for extruding shadow volumes. More...

#include <OgreShadowVolumeExtrudeProgram.h>

List of all members.

Public Types

enum  Programs {
  POINT_LIGHT = 0, POINT_LIGHT_DEBUG = 1, DIRECTIONAL_LIGHT = 2, DIRECTIONAL_LIGHT_DEBUG = 3,
  POINT_LIGHT_FINITE = 4, POINT_LIGHT_FINITE_DEBUG = 5, DIRECTIONAL_LIGHT_FINITE = 6, DIRECTIONAL_LIGHT_FINITE_DEBUG = 7
}

Static Public Methods

void initialise (void)
 Initialise the creation of these vertex programs.

const StringgetPointLightExtruderArbvp1 (void)
 Get extruder program source for point lights, compatible with arbvp1.

const StringgetPointLightExtruderVs_1_1 (void)
 Get extruder program source for point lights, compatible with vs_1_1.

const StringgetDirectionalLightExtruderArbvp1 (void)
 Get extruder program source for directional lights, compatible with arbvp1.

const StringgetDirectionalLightExtruderVs_1_1 (void)
 Get extruder program source for directional lights, compatible with vs_1_1.

const StringgetPointLightExtruderArbvp1Debug (void)
 Get extruder program source for debug point lights, compatible with arbvp1.

const StringgetPointLightExtruderVs_1_1Debug (void)
 Get extruder program source for debug point lights, compatible with vs_1_1.

const StringgetDirectionalLightExtruderArbvp1Debug (void)
 Get extruder program source for debug directional lights, compatible with arbvp1.

const StringgetDirectionalLightExtruderVs_1_1Debug (void)
 Get extruder program source for debug directional lights, compatible with vs_1_1.

const StringgetProgramSource (Light::LightTypes lightType, const String syntax, bool finite, bool debug)
 General purpose method to get any of the program sources.

const StringgetProgramName (Light::LightTypes lightType, bool finite, bool debug)
const StringgetPointLightExtruderArbvp1Finite (void)
 Get FINITE extruder program source for point lights, compatible with arbvp1.

const StringgetPointLightExtruderVs_1_1Finite (void)
 Get FINITE extruder program source for point lights, compatible with vs_1_1.

const StringgetDirectionalLightExtruderArbvp1Finite (void)
 Get FINITE extruder program source for directional lights, compatible with arbvp1.

const StringgetDirectionalLightExtruderVs_1_1Finite (void)
 Get FINITE extruder program source for directional lights, compatible with vs_1_1.

const StringgetPointLightExtruderArbvp1FiniteDebug (void)
 Get FINITE extruder program source for debug point lights, compatible with arbvp1.

const StringgetPointLightExtruderVs_1_1FiniteDebug (void)
 Get extruder program source for debug point lights, compatible with vs_1_1.

const StringgetDirectionalLightExtruderArbvp1FiniteDebug (void)
 Get FINITE extruder program source for debug directional lights, compatible with arbvp1.

const StringgetDirectionalLightExtruderVs_1_1FiniteDebug (void)
 Get FINITE extruder program source for debug directional lights, compatible with vs_1_1.


Static Public Attributes

const String programNames [NUM_SHADOW_EXTRUDER_PROGRAMS]

Static Private Attributes

String mPointArbvp1
String mPointVs_1_1
String mDirArbvp1
String mDirVs_1_1
String mPointArbvp1Debug
String mPointVs_1_1Debug
String mDirArbvp1Debug
String mDirVs_1_1Debug
String mPointArbvp1Finite
String mPointVs_1_1Finite
String mDirArbvp1Finite
String mDirVs_1_1Finite
String mPointArbvp1FiniteDebug
String mPointVs_1_1FiniteDebug
String mDirArbvp1FiniteDebug
String mDirVs_1_1FiniteDebug


Detailed Description

Static class containing source for vertex programs for extruding shadow volumes.

Remarks:
This exists so we don't have to be dependent on an external media files. Assembler is used so we don't have to rely on particular plugins. The assembler contents of this file were generated from the following Cg:
        // Point light shadow volume extrude
        void shadowVolumeExtrudePointLight_vp (
            float4 position         : POSITION,
            float  wcoord           : TEXCOORD0,

            out float4 oPosition    : POSITION,

            uniform float4x4 worldViewProjMatrix,
            uniform float4   lightPos // homogenous, object space
            )
        {
            // extrusion in object space
            // vertex unmodified if w==1, extruded if w==0
            float4 newpos = 
                (wcoord.xxxx * lightPos) + 
                float4(position.xyz - lightPos.xyz, 0);

            oPosition = mul(worldViewProjMatrix, newpos);

        }

        // Directional light extrude
        void shadowVolumeExtrudeDirLight_vp (
            float4 position         : POSITION,
            float  wcoord           : TEXCOORD0,

            out float4 oPosition    : POSITION,

            uniform float4x4 worldViewProjMatrix,
            uniform float4   lightPos // homogenous, object space
            )
        {
            // extrusion in object space
            // vertex unmodified if w==1, extruded if w==0
            float4 newpos = 
                (wcoord.xxxx * (position + lightPos)) - lightPos;

            oPosition = mul(worldViewProjMatrix, newpos);

        }
        // Point light shadow volume extrude - FINITE
        void shadowVolumeExtrudePointLightFinite_vp (
            float4 position         : POSITION,
            float  wcoord           : TEXCOORD0,

            out float4 oPosition    : POSITION,

            uniform float4x4 worldViewProjMatrix,
            uniform float4   lightPos, // homogenous, object space
            uniform float    extrusionDistance // how far to extrude
            )
        {
            // extrusion in object space
            // vertex unmodified if w==1, extruded if w==0
            float3 extrusionDir = position.xyz - lightPos.xyz;
            extrusionDir = normalize(extrusionDir);
            
            float4 newpos = float4(position.xyz +  
                ((1 - wcoord.x) * extrusionDistance * extrusionDir), 1);

            oPosition = mul(worldViewProjMatrix, newpos);

        }

        // Directional light extrude - FINITE
        void shadowVolumeExtrudeDirLightFinite_vp (
            float4 position         : POSITION,
            float  wcoord           : TEXCOORD0,

            out float4 oPosition    : POSITION,

            uniform float4x4 worldViewProjMatrix,
            uniform float4   lightPos, // homogenous, object space
            uniform float    extrusionDistance // how far to extrude
            )
        {
            // extrusion in object space
            // vertex unmodified if w==1, extruded if w==0
            // -ve lightPos is direction
            float4 newpos = float4(position.xyz - 
                (wcoord.x * extrusionDistance * lightPos.xyz), 1);

            oPosition = mul(worldViewProjMatrix, newpos);

        }       

Definition at line 126 of file OgreShadowVolumeExtrudeProgram.h.


Member Enumeration Documentation

enum Ogre::ShadowVolumeExtrudeProgram::Programs
 

Enumeration values:
POINT_LIGHT 
POINT_LIGHT_DEBUG 
DIRECTIONAL_LIGHT 
DIRECTIONAL_LIGHT_DEBUG 
POINT_LIGHT_FINITE 
POINT_LIGHT_FINITE_DEBUG 
DIRECTIONAL_LIGHT_FINITE 
DIRECTIONAL_LIGHT_FINITE_DEBUG 

Definition at line 151 of file OgreShadowVolumeExtrudeProgram.h.


Member Function Documentation

const String& Ogre::ShadowVolumeExtrudeProgram::getDirectionalLightExtruderArbvp1 void    [static]
 

Get extruder program source for directional lights, compatible with arbvp1.

Definition at line 180 of file OgreShadowVolumeExtrudeProgram.h.

Referenced by getProgramSource().

const String& Ogre::ShadowVolumeExtrudeProgram::getDirectionalLightExtruderArbvp1Debug void    [static]
 

Get extruder program source for debug directional lights, compatible with arbvp1.

Definition at line 189 of file OgreShadowVolumeExtrudeProgram.h.

Referenced by getProgramSource().

const String& Ogre::ShadowVolumeExtrudeProgram::getDirectionalLightExtruderArbvp1Finite void    [static]
 

Get FINITE extruder program source for directional lights, compatible with arbvp1.

Definition at line 207 of file OgreShadowVolumeExtrudeProgram.h.

Referenced by getProgramSource().

const String& Ogre::ShadowVolumeExtrudeProgram::getDirectionalLightExtruderArbvp1FiniteDebug void    [static]
 

Get FINITE extruder program source for debug directional lights, compatible with arbvp1.

Definition at line 216 of file OgreShadowVolumeExtrudeProgram.h.

Referenced by getProgramSource().

const String& Ogre::ShadowVolumeExtrudeProgram::getDirectionalLightExtruderVs_1_1 void    [static]
 

Get extruder program source for directional lights, compatible with vs_1_1.

Definition at line 182 of file OgreShadowVolumeExtrudeProgram.h.

Referenced by getProgramSource().

const String& Ogre::ShadowVolumeExtrudeProgram::getDirectionalLightExtruderVs_1_1Debug void    [static]
 

Get extruder program source for debug directional lights, compatible with vs_1_1.

Definition at line 191 of file OgreShadowVolumeExtrudeProgram.h.

Referenced by getProgramSource().

const String& Ogre::ShadowVolumeExtrudeProgram::getDirectionalLightExtruderVs_1_1Finite void    [static]
 

Get FINITE extruder program source for directional lights, compatible with vs_1_1.

Definition at line 209 of file OgreShadowVolumeExtrudeProgram.h.

Referenced by getProgramSource().

const String& Ogre::ShadowVolumeExtrudeProgram::getDirectionalLightExtruderVs_1_1FiniteDebug void    [static]
 

Get FINITE extruder program source for debug directional lights, compatible with vs_1_1.

Definition at line 218 of file OgreShadowVolumeExtrudeProgram.h.

Referenced by getProgramSource().

const String& Ogre::ShadowVolumeExtrudeProgram::getPointLightExtruderArbvp1 void    [static]
 

Get extruder program source for point lights, compatible with arbvp1.

Definition at line 176 of file OgreShadowVolumeExtrudeProgram.h.

Referenced by getProgramSource().

const String& Ogre::ShadowVolumeExtrudeProgram::getPointLightExtruderArbvp1Debug void    [static]
 

Get extruder program source for debug point lights, compatible with arbvp1.

Definition at line 185 of file OgreShadowVolumeExtrudeProgram.h.

Referenced by getProgramSource().

const String& Ogre::ShadowVolumeExtrudeProgram::getPointLightExtruderArbvp1Finite void    [static]
 

Get FINITE extruder program source for point lights, compatible with arbvp1.

Definition at line 203 of file OgreShadowVolumeExtrudeProgram.h.

Referenced by getProgramSource().

const String& Ogre::ShadowVolumeExtrudeProgram::getPointLightExtruderArbvp1FiniteDebug void    [static]
 

Get FINITE extruder program source for debug point lights, compatible with arbvp1.

Definition at line 212 of file OgreShadowVolumeExtrudeProgram.h.

Referenced by getProgramSource().

const String& Ogre::ShadowVolumeExtrudeProgram::getPointLightExtruderVs_1_1 void    [static]
 

Get extruder program source for point lights, compatible with vs_1_1.

Definition at line 178 of file OgreShadowVolumeExtrudeProgram.h.

Referenced by getProgramSource().

const String& Ogre::ShadowVolumeExtrudeProgram::getPointLightExtruderVs_1_1Debug void    [static]
 

Get extruder program source for debug point lights, compatible with vs_1_1.

Definition at line 187 of file OgreShadowVolumeExtrudeProgram.h.

Referenced by getProgramSource().

const String& Ogre::ShadowVolumeExtrudeProgram::getPointLightExtruderVs_1_1Finite void    [static]
 

Get FINITE extruder program source for point lights, compatible with vs_1_1.

Definition at line 205 of file OgreShadowVolumeExtrudeProgram.h.

Referenced by getProgramSource().

const String& Ogre::ShadowVolumeExtrudeProgram::getPointLightExtruderVs_1_1FiniteDebug void    [static]
 

Get extruder program source for debug point lights, compatible with vs_1_1.

Definition at line 214 of file OgreShadowVolumeExtrudeProgram.h.

Referenced by getProgramSource().

const String & Ogre::ShadowVolumeExtrudeProgram::getProgramName Light::LightTypes    lightType,
bool    finite,
bool    debug
[static]
 

Definition at line 484 of file OgreShadowVolumeExtrudeProgram.cpp.

References DIRECTIONAL_LIGHT, DIRECTIONAL_LIGHT_DEBUG, DIRECTIONAL_LIGHT_FINITE, DIRECTIONAL_LIGHT_FINITE_DEBUG, POINT_LIGHT, POINT_LIGHT_DEBUG, POINT_LIGHT_FINITE, POINT_LIGHT_FINITE_DEBUG, and programNames.

const String & Ogre::ShadowVolumeExtrudeProgram::getProgramSource Light::LightTypes    lightType,
const String    syntax,
bool    finite,
bool    debug
[static]
 

General purpose method to get any of the program sources.

Definition at line 371 of file OgreShadowVolumeExtrudeProgram.cpp.

References getDirectionalLightExtruderArbvp1(), getDirectionalLightExtruderArbvp1Debug(), getDirectionalLightExtruderArbvp1Finite(), getDirectionalLightExtruderArbvp1FiniteDebug(), getDirectionalLightExtruderVs_1_1(), getDirectionalLightExtruderVs_1_1Debug(), getDirectionalLightExtruderVs_1_1Finite(), getDirectionalLightExtruderVs_1_1FiniteDebug(), getPointLightExtruderArbvp1(), getPointLightExtruderArbvp1Debug(), getPointLightExtruderArbvp1Finite(), getPointLightExtruderArbvp1FiniteDebug(), getPointLightExtruderVs_1_1(), getPointLightExtruderVs_1_1Debug(), getPointLightExtruderVs_1_1Finite(), and getPointLightExtruderVs_1_1FiniteDebug().

void Ogre::ShadowVolumeExtrudeProgram::initialise void    [static]
 

Initialise the creation of these vertex programs.

Definition at line 314 of file OgreShadowVolumeExtrudeProgram.cpp.

References Except, Ogre::GPT_VERTEX_PROGRAM, Ogre::GpuProgram::load(), NUM_SHADOW_EXTRUDER_PROGRAMS, and programNames.


Member Data Documentation

String Ogre::ShadowVolumeExtrudeProgram::mDirArbvp1 [static, private]
 

Initial value:

 
        "!!ARBvp1.0\n"
        "TEMP R0;\n"
        "ATTRIB v24 = vertex.texcoord[0];\n"
        "ATTRIB v16 = vertex.position;\n"
        "PARAM c0[4] = { program.local[0..3] };\n"
        "PARAM c4 = program.local[4];\n"
        "ADD R0, v16, c4;\n"
        "MAD R0, v24.x, R0, -c4;\n"
        "DP4 result.position.x, c0[0], R0;\n"
        "DP4 result.position.y, c0[1], R0;\n"
        "DP4 result.position.z, c0[2], R0;\n"
        "DP4 result.position.w, c0[3], R0;\n"
        "END\n"

Definition at line 66 of file OgreShadowVolumeExtrudeProgram.cpp.

String Ogre::ShadowVolumeExtrudeProgram::mDirArbvp1Debug [static, private]
 

Initial value:

 
        "!!ARBvp1.0\n"
        "PARAM c5 = { 1, 1, 1, 1};\n"
        "TEMP R0;\n"
        "ATTRIB v24 = vertex.texcoord[0];\n"
        "ATTRIB v16 = vertex.position;\n"
        "PARAM c0[4] = { program.local[0..3] };\n"
        "PARAM c4 = program.local[4];\n"
        "ADD R0, v16, c4;\n"
        "MAD R0, v24.x, R0, -c4;\n"
        "DP4 result.position.x, c0[0], R0;\n"
        "DP4 result.position.y, c0[1], R0;\n"
        "DP4 result.position.z, c0[2], R0;\n"
        "DP4 result.position.w, c0[3], R0;\n"
        "MOV result.color.front.primary, c5.x;"
        "END\n"

Definition at line 127 of file OgreShadowVolumeExtrudeProgram.cpp.

String Ogre::ShadowVolumeExtrudeProgram::mDirArbvp1Finite [static, private]
 

Initial value:

 
        "!!ARBvp1.0\n"
        "PARAM c6 = { 1, 0, 0, 0 };\n"
        "TEMP R0;\n"
        "ATTRIB v24 = vertex.texcoord[0];\n"
        "ATTRIB v16 = vertex.position;\n"
        "PARAM c0[4] = { program.local[0..3] };\n"
        "PARAM c4 = program.local[4];\n"
        "PARAM c5 = program.local[5];\n"
        "ADD R0.x, c6.x, -v24.x;\n"
        "MUL R0.x, R0.x, c5.x;\n"
        "MAD R0.xyz, -R0.x, c4.xyzx, v16.xyzx;\n"
        "DPH result.position.x, R0.xyzz, c0[0];\n"
        "DPH result.position.y, R0.xyzz, c0[1];\n"
        "DPH result.position.z, R0.xyzz, c0[2];\n"
        "DPH result.position.w, R0.xyzz, c0[3];\n"
        "END\n"

Definition at line 196 of file OgreShadowVolumeExtrudeProgram.cpp.

String Ogre::ShadowVolumeExtrudeProgram::mDirArbvp1FiniteDebug [static, private]
 

Initial value:

 
        "!!ARBvp1.0\n"
        "PARAM c6 = { 1, 0, 0, 0 };\n"
        "TEMP R0;\n"
        "ATTRIB v24 = vertex.texcoord[0];\n"
        "ATTRIB v16 = vertex.position;\n"
        "PARAM c0[4] = { program.local[0..3] };\n"
        "PARAM c4 = program.local[4];\n"
        "PARAM c5 = program.local[5];\n"
        "MOV result.color.front.primary, c6.x;\n"
        "ADD R0.x, c6.x, -v24.x;\n"
        "MUL R0.x, R0.x, c5.x;\n"
        "MAD R0.xyz, -R0.x, c4.xyzx, v16.xyzx;\n"
        "DPH result.position.x, R0.xyzz, c0[0];\n"
        "DPH result.position.y, R0.xyzz, c0[1];\n"
        "DPH result.position.z, R0.xyzz, c0[2];\n"
        "DPH result.position.w, R0.xyzz, c0[3];\n"
        "END\n"

Definition at line 266 of file OgreShadowVolumeExtrudeProgram.cpp.

String Ogre::ShadowVolumeExtrudeProgram::mDirVs_1_1 [static, private]
 

Initial value:

 
        "vs_1_1\n"
        "dcl_texcoord0 v7\n"
        "dcl_position v0\n"
        "add r0, v0, c4\n"
        "mad r0, v7.x, r0, -c4\n"
        "dp4 oPos.x, c0, r0\n"
        "dp4 oPos.y, c1, r0\n"
        "dp4 oPos.z, c2, r0\n"
        "dp4 oPos.w, c3, r0\n"

Definition at line 81 of file OgreShadowVolumeExtrudeProgram.cpp.

String Ogre::ShadowVolumeExtrudeProgram::mDirVs_1_1Debug [static, private]
 

Initial value:

 
        "vs_1_1\n"
        "def c5, 1, 1, 1, 1\n"
        "dcl_texcoord0 v7\n"
        "dcl_position v0\n"
        "add r0, v0, c4\n"
        "mad r0, v7.x, r0, -c4\n"
        "dp4 oPos.x, c0, r0\n"
        "dp4 oPos.y, c1, r0\n"
        "dp4 oPos.z, c2, r0\n"
        "dp4 oPos.w, c3, r0\n"
        "mov oD0, c5.x\n"

Definition at line 144 of file OgreShadowVolumeExtrudeProgram.cpp.

String Ogre::ShadowVolumeExtrudeProgram::mDirVs_1_1Finite [static, private]
 

Initial value:

 
        "vs_1_1\n"
        "def c6, 1, 0, 0, 0\n"
        "dcl_texcoord0 v7\n"
        "dcl_position v0\n"
        "add r0.x, c6.x, -v7.x\n"
        "mul r0.x, r0.x, c5.x\n"
        "mad r0.xyz, -r0.x, c4.xyz, v0.xyz\n"
        "mov r0.w, c6.x\n"
        "dp4 oPos.x, c0, r0\n"
        "dp4 oPos.y, c1, r0\n"
        "dp4 oPos.z, c2, r0\n"
        "dp4 oPos.w, c3, r0\n"

Definition at line 213 of file OgreShadowVolumeExtrudeProgram.cpp.

String Ogre::ShadowVolumeExtrudeProgram::mDirVs_1_1FiniteDebug [static, private]
 

Initial value:

 
        "vs_1_1\n"
        "def c6, 1, 0, 0, 0\n"
        "dcl_texcoord0 v7\n"
        "dcl_position v0\n"
        "mov oD0, c6.x\n"
        "add r0.x, c6.x, -v7.x\n"
        "mul r0.x, r0.x, c5.x\n"
        "mad r0.xyz, -r0.x, c4.xyz, v0.xyz\n"
        "mov r0.w, c6.x\n"
        "dp4 oPos.x, c0, r0\n"
        "dp4 oPos.y, c1, r0\n"
        "dp4 oPos.z, c2, r0\n"
        "dp4 oPos.w, c3, r0\n"

Definition at line 284 of file OgreShadowVolumeExtrudeProgram.cpp.

String Ogre::ShadowVolumeExtrudeProgram::mPointArbvp1 [static, private]
 

Initial value:

 
        "!!ARBvp1.0\n"
        "PARAM c5 = { 0, 0, 0, 0 };\n"
        "TEMP R0;\n"
        "ATTRIB v24 = vertex.texcoord[0];\n"
        "ATTRIB v16 = vertex.position;\n"
        "PARAM c0[4] = { program.local[0..3] };\n"
        "PARAM c4 = program.local[4];\n"
        "ADD R0.xyz, v16.xyzx, -c4.xyzx;\n"
        "MOV R0.w, c5.x;\n"
        "MAD R0, v24.x, c4, R0;\n"
        "DP4 result.position.x, c0[0], R0;\n"
        "DP4 result.position.y, c0[1], R0;\n"
        "DP4 result.position.z, c0[2], R0;\n"
        "DP4 result.position.w, c0[3], R0;\n"
        "END\n"

Definition at line 36 of file OgreShadowVolumeExtrudeProgram.cpp.

String Ogre::ShadowVolumeExtrudeProgram::mPointArbvp1Debug [static, private]
 

Initial value:

 
        "!!ARBvp1.0\n"
        "PARAM c5 = { 0, 0, 0, 0 };\n"
        "PARAM c6 = { 1, 1, 1, 1 };\n"
        "TEMP R0;\n"
        "ATTRIB v24 = vertex.texcoord[0];\n"
        "ATTRIB v16 = vertex.position;\n"
        "PARAM c0[4] = { program.local[0..3] };\n"
        "PARAM c4 = program.local[4];\n"
        "ADD R0.xyz, v16.xyzx, -c4.xyzx;\n"
        "MOV R0.w, c5.x;\n"
        "MAD R0, v24.x, c4, R0;\n"
        "DP4 result.position.x, c0[0], R0;\n"
        "DP4 result.position.y, c0[1], R0;\n"
        "DP4 result.position.z, c0[2], R0;\n"
        "DP4 result.position.w, c0[3], R0;\n"
        "MOV result.color.front.primary, c6.x;\n"
        "END\n"

Definition at line 93 of file OgreShadowVolumeExtrudeProgram.cpp.

String Ogre::ShadowVolumeExtrudeProgram::mPointArbvp1Finite [static, private]
 

Initial value:

 
        "!!ARBvp1.0\n" 
        "PARAM c6 = { 1, 0, 0, 0 };\n"
        "TEMP R0;\n"
        "ATTRIB v24 = vertex.texcoord[0];\n"
        "ATTRIB v16 = vertex.position;\n"
        "PARAM c0[4] = { program.local[0..3] };\n"
        "PARAM c5 = program.local[5];\n"
        "PARAM c4 = program.local[4];\n"
        "ADD R0.x, c6.x, -v24.x;\n"
        "MUL R0.w, R0.x, c5.x;\n"
        "ADD R0.xyz, v16.xyzx, -c4.xyzx;\n"
        "MAD R0.xyz, R0.w, R0.xyzx, v16.xyzx;\n"
        "DPH result.position.x, R0.xyzz, c0[0];\n"
        "DPH result.position.y, R0.xyzz, c0[1];\n"
        "DPH result.position.z, R0.xyzz, c0[2];\n"
        "DPH result.position.w, R0.xyzz, c0[3];\n"
        "END\n"

Definition at line 160 of file OgreShadowVolumeExtrudeProgram.cpp.

String Ogre::ShadowVolumeExtrudeProgram::mPointArbvp1FiniteDebug [static, private]
 

Initial value:

 
        "!!ARBvp1.0\n"
        "PARAM c6 = { 1, 0, 0, 0 };\n"
        "TEMP R0, R1;\n"
        "ATTRIB v24 = vertex.texcoord[0];\n"
        "ATTRIB v16 = vertex.position;\n"
        "PARAM c0[4] = { program.local[0..3] };\n"
        "PARAM c5 = program.local[5];\n"
        "PARAM c4 = program.local[4];\n"
        "MOV result.color.front.primary, c6.x;\n"
        "ADD R0.x, c6.x, -v24.x;\n"
        "MUL R1.x, R0.x, c5.x;\n"
        "ADD R0.yzw, v16.xxyz, -c4.xxyz;\n"
        "DP3 R0.x, R0.yzwy, R0.yzwy;\n"
        "RSQ R0.x, R0.x;\n"
        "MUL R0.xyz, R0.x, R0.yzwy;\n"
        "MAD R0.xyz, R1.x, R0.xyzx, v16.xyzx;\n"
        "DPH result.position.x, R0.xyzz, c0[0];\n"
        "DPH result.position.y, R0.xyzz, c0[1];\n"
        "DPH result.position.z, R0.xyzz, c0[2];\n"
        "DPH result.position.w, R0.xyzz, c0[3];\n"
        "END\n"

Definition at line 226 of file OgreShadowVolumeExtrudeProgram.cpp.

String Ogre::ShadowVolumeExtrudeProgram::mPointVs_1_1 [static, private]
 

Initial value:

 
        "vs_1_1\n"
        "def c5, 0, 0, 0, 0\n"
        "dcl_texcoord0 v7\n"
        "dcl_position v0\n"
        "add r0.xyz, v0.xyz, -c4.xyz\n"
        "mov r0.w, c5.x\n"
        "mad r0, v7.x, c4, r0\n"
        "dp4 oPos.x, c0, r0\n"
        "dp4 oPos.y, c1, r0\n"
        "dp4 oPos.z, c2, r0\n"
        "dp4 oPos.w, c3, r0\n"

Definition at line 53 of file OgreShadowVolumeExtrudeProgram.cpp.

String Ogre::ShadowVolumeExtrudeProgram::mPointVs_1_1Debug [static, private]
 

Initial value:

 
        "vs_1_1\n"
        "def c5, 0, 0, 0, 0\n"
        "def c6, 1, 1, 1, 1\n"
        "dcl_texcoord0 v7\n"
        "dcl_position v0\n"
        "add r0.xyz, v0.xyz, -c4.xyz\n"
        "mov r0.w, c5.x\n"
        "mad r0, v7.x, c4, r0\n"
        "dp4 oPos.x, c0, r0\n"
        "dp4 oPos.y, c1, r0\n"
        "dp4 oPos.z, c2, r0\n"
        "dp4 oPos.w, c3, r0\n"
        "mov oD0, c6.x\n"

Definition at line 112 of file OgreShadowVolumeExtrudeProgram.cpp.

String Ogre::ShadowVolumeExtrudeProgram::mPointVs_1_1Finite [static, private]
 

Initial value:

 
        "vs_1_1\n"
        "def c6, 1, 0, 0, 0\n"
        "dcl_texcoord0 v7\n"
        "dcl_position v0\n"
        "add r0.x, c6.x, -v7.x\n"
        "mul r1.x, r0.x, c5.x\n"
        "add r0.yzw, v0.xxyz, -c4.xxyz\n"
        "dp3 r0.x, r0.yzw, r0.yzw\n"
        "rsq r0.x, r0.x\n"
        "mul r0.xyz, r0.x, r0.yzw\n"
        "mad r0.xyz, r1.x, r0.xyz, v0.xyz\n"
        "mov r0.w, c6.x\n"
        "dp4 oPos.x, c0, r0\n"
        "dp4 oPos.y, c1, r0\n"
        "dp4 oPos.z, c2, r0\n"
        "dp4 oPos.w, c3, r0\n"

Definition at line 179 of file OgreShadowVolumeExtrudeProgram.cpp.

String Ogre::ShadowVolumeExtrudeProgram::mPointVs_1_1FiniteDebug [static, private]
 

Initial value:

 
        "vs_1_1\n"
        "def c6, 1, 0, 0, 0\n"
        "dcl_texcoord0 v7\n"
        "dcl_position v0\n"
        "mov oD0, c6.x\n"
        "add r0.x, c6.x, -v7.x\n"
        "mul r1.x, r0.x, c5.x\n"
        "add r0.yzw, v0.xxyz, -c4.xxyz\n"
        "dp3 r0.x, r0.yzw, r0.yzw\n"
        "rsq r0.x, r0.x\n"
        "mul r0.xyz, r0.x, r0.yzw\n"
        "mad r0.xyz, r1.x, r0.xyz, v0.xyz\n"
        "mov r0.w, c6.x\n"
        "dp4 oPos.x, c0, r0\n"
        "dp4 oPos.y, c1, r0\n"
        "dp4 oPos.z, c2, r0\n"
        "dp4 oPos.w, c3, r0\n"

Definition at line 248 of file OgreShadowVolumeExtrudeProgram.cpp.

const String Ogre::ShadowVolumeExtrudeProgram::programNames [static]
 

Initial value:

 
    {
        "Ogre/ShadowExtrudePointLight",
            "Ogre/ShadowExtrudePointLightDebug",
            "Ogre/ShadowExtrudeDirLight",
            "Ogre/ShadowExtrudeDirLightDebug",
            "Ogre/ShadowExtrudePointLightFinite",
            "Ogre/ShadowExtrudePointLightFiniteDebug",
            "Ogre/ShadowExtrudeDirLightFinite",
            "Ogre/ShadowExtrudeDirLightFiniteDebug"
    }

Definition at line 300 of file OgreShadowVolumeExtrudeProgram.cpp.

Referenced by getProgramName(), and initialise().


The documentation for this class was generated from the following files:

Copyright © 2002-2003 by The OGRE Team
Last modified Fri May 14 23:27:15 2004