blob: 895dc28a5faea2216cc1f23798658e0bc83e84da (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#include "hdr.cg"
// application to vertex shader
struct a2v
{
float4 Position : POSITION;
float4 Normal : NORMAL;
};
// vertex shader to fragment shader
struct v2f
{
float4 HPosition : POSITION;
float4 P : TEXCOORD0; // position
float3 N : TEXCOORD1; // normal
float3 I : TEXCOORD2; // incident vector
};
v2f main(a2v In,
uniform float4x4 modelViewProj,
uniform float4x4 model,
uniform float3 eyePos
)
{
v2f Out;
// transform position
float4 P = mul(model, In.Position);
// transform normal
float3 N = transform_dir(model, In.Normal.xyz);
N = normalize(N);
// calculate incident vector
float3 I = P.xyz - eyePos;
Out.P = P;
Out.N = N;
Out.I = I;
Out.HPosition = mul(modelViewProj, In.Position);
return Out;
}
|