SHOW:
|
|
- or go back to the newest paste.
1 | //----------------------------------------------------------------------- | |
2 | //-- Settings | |
3 | //----------------------------------------------------------------------- | |
4 | - | float3 theColorYouWant; |
4 | + | float4 theColorYouWant; |
5 | ||
6 | //--------------------------------------------------------------------- | |
7 | // Include some common stuff | |
8 | //--------------------------------------------------------------------- | |
9 | #include "mta-helper.fx" | |
10 | ||
11 | //----------------------------------------------------------------------- | |
12 | //-- Sampler for the new texture | |
13 | //----------------------------------------------------------------------- | |
14 | sampler Sampler0 = sampler_state | |
15 | { | |
16 | Texture = (gTexture0); | |
17 | }; | |
18 | ||
19 | //----------------------------------------------------------------------- | |
20 | //-- Structure of data sent to the vertex shader | |
21 | //----------------------------------------------------------------------- | |
22 | struct VSInput | |
23 | { | |
24 | float3 Position : POSITION0; | |
25 | float3 Normal : NORMAL0; | |
26 | float4 Diffuse : COLOR0; | |
27 | float2 TexCoord : TEXCOORD0; | |
28 | }; | |
29 | ||
30 | //----------------------------------------------------------------------- | |
31 | //-- Structure of data sent to the pixel shader ( from the vertex shader ) | |
32 | //----------------------------------------------------------------------- | |
33 | struct PSInput | |
34 | { | |
35 | float4 Position : POSITION0; | |
36 | float4 Diffuse : COLOR0; | |
37 | float2 TexCoord : TEXCOORD0; | |
38 | }; | |
39 | ||
40 | ||
41 | //-------------------------------------------------------------------------------------------- | |
42 | //-- VertexShaderFunction | |
43 | //-- 1. Read from VS structure | |
44 | //-- 2. Process | |
45 | //-- 3. Write to PS structure | |
46 | //-------------------------------------------------------------------------------------------- | |
47 | PSInput VertexShaderFunction(VSInput VS) | |
48 | { | |
49 | PSInput PS = (PSInput)0; | |
50 | ||
51 | //-- Calculate screen pos of vertex | |
52 | PS.Position = mul(float4(VS.Position, 1), gWorldViewProjection); | |
53 | ||
54 | //-- Pass through tex coord | |
55 | PS.TexCoord = VS.TexCoord; | |
56 | ||
57 | //-- Calculate GTA lighting for buildings | |
58 | PS.Diffuse = MTACalcGTABuildingDiffuse( VS.Diffuse ); | |
59 | ||
60 | return PS; | |
61 | } | |
62 | ||
63 | ||
64 | //-------------------------------------------------------------------------------------------- | |
65 | //-- PixelShaderFunction | |
66 | //-- 1. Read from PS structure | |
67 | //-- 2. Process | |
68 | //-- 3. Return pixel color | |
69 | //-------------------------------------------------------------------------------------------- | |
70 | float4 PixelShaderFunction(PSInput PS) : COLOR0 | |
71 | { | |
72 | //-- Get texture pixel | |
73 | float4 texel = tex2D(Sampler0, PS.TexCoord); | |
74 | ||
75 | //-- Apply diffuse lighting | |
76 | float4 finalColor = texel * PS.Diffuse * theColorYouWant; | |
77 | ||
78 | return finalColor; | |
79 | } | |
80 | ||
81 | ||
82 | //-------------------------------------------------------------------------------------------- | |
83 | //-- Techniques | |
84 | //-------------------------------------------------------------------------------------------- | |
85 | technique tec | |
86 | { | |
87 | pass P0 | |
88 | { | |
89 | VertexShader = compile vs_2_0 VertexShaderFunction(); | |
90 | PixelShader = compile ps_2_0 PixelShaderFunction(); | |
91 | } | |
92 | } | |
93 | ||
94 | //-- Fallback | |
95 | technique fallback | |
96 | { | |
97 | pass P0 | |
98 | { | |
99 | //-- Replace texture | |
100 | Texture[0] = gTexture0; | |
101 | ||
102 | //-- Leave the rest of the states to the default settings | |
103 | } | |
104 | } |