source: GTP/trunk/App/Demos/Illum/IBRBillboardCloudTrees/OGRE/IBRTreesOGRE/media/oldgeneral/tree_idtexturing_spotlight_vp.cg @ 1493

Revision 1493, 3.4 KB checked in by igarcia, 18 years ago (diff)
Line 
1/*
2void main_vp(
3      float4 position: POSITION,
4      float4 normal: NORMAL,
5      float2 texCoord : TEXCOORD0,
6
7      out float3 lightpos : TEXCOORD3,
8      out float3 eyePosition : TEXCOORD2,
9      out float4 oPosition: POSITION,
10      out float2 otexCoord : TEXCOORD0,
11      //out float3 otexPos : TEXCOORD1,
12      out float3 V : TEXCOORD1,
13      out float3 L : TEXCOORD4,
14      uniform float4 lightposition,             // world space
15      uniform float4 cameraposition,            // world space
16      uniform float3 camPosition : TEXCOORD2,   
17      uniform float3 lightposi : TEXCOORD3,
18      uniform float4x4 worldviewproj,
19      uniform float4x4 worldmatrix,
20      uniform float4x4 invworldmatrix,
21      uniform float4x4 viewmatrix,
22      uniform float4x4 projmatrix,
23      uniform float4x4 viewprojmatrix,
24      uniform float4x4 worldviewmatrix
25      )
26{
27        oPosition = mul(worldviewproj,position);
28        float4 pos = mul(worldviewmatrix,position);
29
30        //float4 campos = mul(viewmatrix,float4(camPosition,1.0));
31        float4 campos = mul(viewmatrix,cameraposition);
32        eyePosition = campos.xyz;
33       
34        float4 lightp = mul(viewmatrix,float4(lightposi,1.0));
35        //float4 lightp = mul(viewmatrix,lightposition);
36        lightpos = lightp.xyz;
37
38        V = -pos.xyz;
39        L = lightpos - pos.xyz;
40
41        otexCoord = texCoord;
42}
43*/
44/*
45void main_vp(
46      float4 position : POSITION,
47      float4 normal : NORMAL,
48      float2 texCoord : TEXCOORD0,
49      float2 texCoordNormalized : TEXCOORD1,
50
51      out float4 oPosition : POSITION,
52      out float2 otexCoord : TEXCOORD0,
53      out float2 otexCoordNormalized : TEXCOORD1,
54      uniform float4x4 worldviewproj
55      )
56{
57        oPosition = mul(worldviewproj,position);
58        otexCoord = texCoord;
59        otexCoordNormalized = texCoordNormalized;
60}
61*/
62
63
64
65void main_vp(
66      float4 position : POSITION,
67      float4 normal : NORMAL,
68      float2 texCoord : TEXCOORD0,
69      float2 texCoordNormalized : TEXCOORD1,
70
71      uniform float distanceScale,
72      uniform float4 lightPosition,
73      uniform float4 lightDirection,
74      uniform float4 camera_pos,
75      uniform float4x4 worldviewproj,
76      uniform float4x4 worldmatrix,
77      uniform float4x4 proj_matrix,
78      uniform float time_0_X,
79
80      out float4 opos:       POSITION,
81      out float3 onormal:    TEXCOORD0,
82      out float3 olightVec : TEXCOORD1,
83      out float3 oviewVec:   TEXCOORD2,
84      out float4 oshadowCrd: TEXCOORD3,
85      out float2 otexCoord:  TEXCOORD4,
86      out float2 otexCoordNormalized: TEXCOORD5
87      )
88{
89        opos = mul(worldviewproj, position);
90
91        //------------------------------------------------------------
92        // World-space lighting
93        //------------------------------------------------------------
94        onormal = normal;
95        //onormal = mul(worldmatrix,normal);
96        olightVec = distanceScale * (lightPosition - opos.xyz);
97        oviewVec = camera_pos - opos.xyz;
98        otexCoord = texCoord;
99        otexCoordNormalized = texCoordNormalized;
100
101        //------------------------------------------------------------
102        // Light-space coordinates
103        //------------------------------------------------------------
104        float4 sPos = mul(proj_matrix, position);
105        // Use projective texturing to map the position of each fragment
106        // to its corresponding texel in the shadow map.
107        sPos.z += 10;
108        oshadowCrd.x = 0.5 * (sPos.z + sPos.x);
109        oshadowCrd.y = 0.5 * (sPos.z - sPos.y);
110        oshadowCrd.z = 0;
111        oshadowCrd.w = sPos.z;
112}
Note: See TracBrowser for help on using the repository browser.