implement more options for matfx

This commit is contained in:
aap
2021-02-26 17:20:20 +01:00
parent bb7fb68531
commit 58357e37e1
16 changed files with 461 additions and 379 deletions

View File

@@ -33,9 +33,10 @@ static void *matfx_env_tex_PS;
enum
{
VSLOC_texMat = VSLOC_afterLights,
VSLOC_colorClamp = VSLOC_texMat + 4,
VSLOC_envColor,
PSLOC_shininess = 1,
PSLOC_colorClamp = 2
};
void
@@ -88,6 +89,8 @@ uploadEnvMatrix(Frame *frame)
Matrix::invert(&invMat, frame->getLTM());
convMatrix(&invMtx, &invMat);
invMtx.pos.set(0.0f, 0.0f, 0.0f);
float uscale = fabs(normal2texcoord.right.x);
normal2texcoord.right.x = MatFX::envMapFlipU ? -uscale : uscale;
RawMatrix::mult(&envMtx, &invMtx, &normal2texcoord);
d3ddevice->SetVertexShaderConstantF(VSLOC_texMat, (float*)&envMtx, 4);
}
@@ -118,10 +121,16 @@ matfxRender_EnvMap(InstanceDataHeader *header, InstanceData *inst, int32 lightBi
fxparams.disableFBA = env->fbAlpha ? 0.0f : 1.0f;
d3ddevice->SetPixelShaderConstantF(PSLOC_shininess, (float*)&fxparams, 1);
// This clamps the vertex color below. With it we can achieve both PC and PS2 style matfx
if(MatFX::modulateEnvMap)
d3ddevice->SetPixelShaderConstantF(PSLOC_colorClamp, zero, 1);
if(MatFX::envMapApplyLight)
d3ddevice->SetVertexShaderConstantF(VSLOC_colorClamp, zero, 1);
else
d3ddevice->SetPixelShaderConstantF(PSLOC_colorClamp, one, 1);
d3ddevice->SetVertexShaderConstantF(VSLOC_colorClamp, one, 1);
RGBAf envcol[4];
if(MatFX::envMapUseMatColor)
convColor(envcol, &m->color);
else
convColor(envcol, &MatFX::envMapColor);
d3ddevice->SetVertexShaderConstantF(VSLOC_envColor, (float*)&envcol, 1);
// Pick a shader
if((lightBits & VSLIGHT_MASK) == 0)

View File

@@ -7,7 +7,6 @@
//
// Parameters:
//
// float4 colorClamp;
// sampler2D envTex;
// float4 fogColor;
// float4 fxparams;
@@ -19,7 +18,6 @@
// ------------ ----- ----
// fogColor c0 1
// fxparams c1 1
// colorClamp c2 1
// envTex s1 1
//
@@ -27,10 +25,10 @@
dcl t0.xyz
dcl t1.xy
dcl v0
dcl v1.xyz
dcl_2d s1
texld r0, t1, s1
max r1.xyz, v0, c2
mul r1.xyz, r1, c1.x
mul r1.xyz, v1, c1.x
mul r0.xyz, r0, r1
mul r0.xyz, r0, t0.z
max r0.w, v0.w, c1.y
@@ -41,91 +39,86 @@
mov r0.w, v0.w
mov oC0, r0
// approximately 12 instruction slots used (1 texture, 11 arithmetic)
// approximately 11 instruction slots used (1 texture, 10 arithmetic)
#endif
const BYTE g_ps20_main[] =
{
0, 2, 255, 255, 254, 255,
60, 0, 67, 84, 65, 66,
28, 0, 0, 0, 185, 0,
53, 0, 67, 84, 65, 66,
28, 0, 0, 0, 156, 0,
0, 0, 0, 2, 255, 255,
4, 0, 0, 0, 28, 0,
3, 0, 0, 0, 28, 0,
0, 0, 0, 1, 0, 0,
178, 0, 0, 0, 108, 0,
0, 0, 2, 0, 2, 0,
1, 0, 10, 0, 120, 0,
149, 0, 0, 0, 88, 0,
0, 0, 3, 0, 1, 0,
1, 0, 6, 0, 96, 0,
0, 0, 0, 0, 0, 0,
136, 0, 0, 0, 3, 0,
1, 0, 1, 0, 6, 0,
144, 0, 0, 0, 0, 0,
0, 0, 160, 0, 0, 0,
2, 0, 0, 0, 1, 0,
2, 0, 120, 0, 0, 0,
0, 0, 0, 0, 169, 0,
0, 0, 2, 0, 1, 0,
1, 0, 6, 0, 120, 0,
0, 0, 0, 0, 0, 0,
99, 111, 108, 111, 114, 67,
108, 97, 109, 112, 0, 171,
1, 0, 3, 0, 1, 0,
4, 0, 1, 0, 0, 0,
112, 0, 0, 0, 2, 0,
0, 0, 1, 0, 2, 0,
124, 0, 0, 0, 0, 0,
0, 0, 140, 0, 0, 0,
2, 0, 1, 0, 1, 0,
6, 0, 124, 0, 0, 0,
0, 0, 0, 0, 101, 110,
118, 84, 101, 120, 0, 171,
4, 0, 12, 0, 1, 0,
1, 0, 1, 0, 0, 0,
0, 0, 0, 0, 102, 111,
103, 67, 111, 108, 111, 114,
0, 102, 120, 112, 97, 114,
97, 109, 115, 0, 112, 115,
95, 50, 95, 48, 0, 77,
105, 99, 114, 111, 115, 111,
102, 116, 32, 40, 82, 41,
32, 72, 76, 83, 76, 32,
83, 104, 97, 100, 101, 114,
32, 67, 111, 109, 112, 105,
108, 101, 114, 32, 57, 46,
50, 57, 46, 57, 53, 50,
46, 51, 49, 49, 49, 0,
171, 171, 31, 0, 0, 2,
0, 0, 0, 128, 0, 0,
7, 176, 31, 0, 0, 2,
0, 0, 0, 128, 1, 0,
3, 176, 31, 0, 0, 2,
0, 0, 0, 128, 0, 0,
15, 144, 31, 0, 0, 2,
0, 0, 0, 144, 1, 8,
15, 160, 66, 0, 0, 3,
0, 0, 15, 128, 1, 0,
228, 176, 1, 8, 228, 160,
11, 0, 0, 3, 1, 0,
7, 128, 0, 0, 228, 144,
2, 0, 228, 160, 5, 0,
0, 3, 1, 0, 7, 128,
1, 0, 228, 128, 1, 0,
0, 160, 5, 0, 0, 3,
0, 0, 7, 128, 0, 0,
228, 128, 1, 0, 228, 128,
0, 171, 171, 171, 1, 0,
3, 0, 1, 0, 4, 0,
1, 0, 0, 0, 0, 0,
0, 0, 102, 120, 112, 97,
114, 97, 109, 115, 0, 112,
115, 95, 50, 95, 48, 0,
77, 105, 99, 114, 111, 115,
111, 102, 116, 32, 40, 82,
41, 32, 72, 76, 83, 76,
32, 83, 104, 97, 100, 101,
114, 32, 67, 111, 109, 112,
105, 108, 101, 114, 32, 57,
46, 50, 57, 46, 57, 53,
50, 46, 51, 49, 49, 49,
0, 171, 171, 171, 31, 0,
0, 2, 0, 0, 0, 128,
0, 0, 7, 176, 31, 0,
0, 2, 0, 0, 0, 128,
1, 0, 3, 176, 31, 0,
0, 2, 0, 0, 0, 128,
0, 0, 15, 144, 31, 0,
0, 2, 0, 0, 0, 128,
1, 0, 7, 144, 31, 0,
0, 2, 0, 0, 0, 144,
1, 8, 15, 160, 66, 0,
0, 3, 0, 0, 15, 128,
1, 0, 228, 176, 1, 8,
228, 160, 5, 0, 0, 3,
1, 0, 7, 128, 1, 0,
228, 144, 1, 0, 0, 160,
5, 0, 0, 3, 0, 0,
7, 128, 0, 0, 228, 128,
0, 0, 170, 176, 11, 0,
0, 3, 0, 0, 8, 128,
0, 0, 255, 144, 1, 0,
85, 160, 5, 0, 0, 3,
0, 0, 7, 128, 0, 0,
255, 128, 0, 0, 228, 128,
2, 0, 0, 3, 1, 0,
7, 128, 0, 0, 228, 144,
0, 0, 228, 161, 4, 0,
0, 4, 1, 0, 7, 128,
0, 0, 170, 176, 1, 0,
228, 128, 0, 0, 228, 160,
4, 0, 0, 4, 0, 0,
7, 128, 1, 0, 228, 128,
0, 0, 255, 144, 0, 0,
228, 128, 1, 0, 0, 2,
1, 0, 228, 128, 5, 0,
0, 3, 0, 0, 7, 128,
0, 0, 228, 128, 0, 0,
170, 176, 11, 0, 0, 3,
0, 0, 8, 128, 0, 0,
255, 144, 1, 0, 0, 2,
0, 8, 15, 128, 0, 0,
228, 128, 255, 255, 0, 0
255, 144, 1, 0, 85, 160,
5, 0, 0, 3, 0, 0,
7, 128, 0, 0, 255, 128,
0, 0, 228, 128, 2, 0,
0, 3, 1, 0, 7, 128,
0, 0, 228, 144, 0, 0,
228, 161, 4, 0, 0, 4,
1, 0, 7, 128, 0, 0,
170, 176, 1, 0, 228, 128,
0, 0, 228, 160, 4, 0,
0, 4, 0, 0, 7, 128,
1, 0, 228, 128, 0, 0,
255, 144, 0, 0, 228, 128,
1, 0, 0, 2, 0, 0,
8, 128, 0, 0, 255, 144,
1, 0, 0, 2, 0, 8,
15, 128, 0, 0, 228, 128,
255, 255, 0, 0
};

View File

@@ -3,6 +3,7 @@ struct VS_out {
float3 TexCoord0 : TEXCOORD0;
float2 TexCoord1 : TEXCOORD1;
float4 Color : COLOR0;
float4 EnvColor : COLOR1;
};
sampler2D diffTex : register(s0);
@@ -11,7 +12,6 @@ sampler2D envTex : register(s1);
float4 fogColor : register(c0);
float4 fxparams : register(c1);
float4 colorClamp : register(c2);
#define shininess (fxparams.x)
#define disableFBA (fxparams.y)
@@ -19,12 +19,11 @@ float4 colorClamp : register(c2);
float4 main(VS_out input) : COLOR
{
float4 pass1 = input.Color;
float4 envColor = max(pass1, colorClamp);
#ifdef TEX
pass1 *= tex2D(diffTex, input.TexCoord0.xy);
#endif
float4 pass2 = envColor*shininess*tex2D(envTex, input.TexCoord1.xy);
float4 pass2 = input.EnvColor*shininess*tex2D(envTex, input.TexCoord1.xy);
pass1.rgb = lerp(fogColor.rgb, pass1.rgb, input.TexCoord0.z);
pass2.rgb = lerp(float3(0.0, 0.0, 0.0), pass2.rgb, input.TexCoord0.z);

View File

@@ -1,6 +1,8 @@
#include "standardConstants.h"
float4x4 texMat : register(c41);
float4 colorClamp : register(c45);
float4 envColor : register(c46);
struct VS_in
{
@@ -15,6 +17,7 @@ struct VS_out {
float3 TexCoord0 : TEXCOORD0; // also fog
float2 TexCoord1 : TEXCOORD1;
float4 Color : COLOR0;
float4 EnvColor : COLOR1;
};
@@ -47,6 +50,7 @@ VS_out main(in VS_in input)
#endif
// PS2 clamps before material color
output.Color = clamp(output.Color, 0.0, 1.0);
output.EnvColor = max(output.Color, colorClamp) * envColor;
output.Color *= matCol;
output.TexCoord0.z = clamp((output.Position.w - fogEnd)*fogRange, fogDisable, 1.0);

View File

@@ -9,7 +9,9 @@
// Parameters:
//
// float4 ambientLight;
// float4 colorClamp;
// float4x4 combinedMat;
// float4 envColor;
// int4 firstLight;
// float4 fogData;
//
@@ -48,6 +50,8 @@
// firstLight c16 1
// lights c17 24
// texMat c41 4
// colorClamp c45 1
// envColor c46 1
//
vs_2_0
@@ -141,79 +145,91 @@
mad r0.xy, c41, r1.x, r0
mad r0.xy, c43, r1.z, r0
add oT1.xy, r0, c44
max r1, r2, c45
mul oD1, r1, c46
add r0.x, r0.w, -c14.y
mul r0.x, r0.x, c14.z
max r0.x, r0.x, c14.w
min oT0.z, r0.x, c11.z
mov oT0.xy, v2
// approximately 99 instruction slots used
// approximately 101 instruction slots used
#endif
const BYTE g_vs20_main[] =
{
0, 2, 254, 255, 254, 255,
165, 0, 67, 84, 65, 66,
28, 0, 0, 0, 94, 2,
180, 0, 67, 84, 65, 66,
28, 0, 0, 0, 154, 2,
0, 0, 0, 2, 254, 255,
13, 0, 0, 0, 28, 0,
15, 0, 0, 0, 28, 0,
0, 0, 0, 1, 0, 0,
87, 2, 0, 0, 32, 1,
147, 2, 0, 0, 72, 1,
0, 0, 2, 0, 15, 0,
1, 0, 62, 0, 48, 1,
1, 0, 62, 0, 88, 1,
0, 0, 0, 0, 0, 0,
64, 1, 0, 0, 2, 0,
0, 0, 4, 0, 2, 0,
76, 1, 0, 0, 0, 0,
0, 0, 92, 1, 0, 0,
2, 0, 16, 0, 1, 0,
66, 0, 104, 1, 0, 0,
0, 0, 0, 0, 120, 1,
0, 0, 2, 0, 14, 0,
1, 0, 58, 0, 48, 1,
104, 1, 0, 0, 2, 0,
45, 0, 1, 0, 182, 0,
88, 1, 0, 0, 0, 0,
0, 0, 115, 1, 0, 0,
2, 0, 0, 0, 4, 0,
2, 0, 128, 1, 0, 0,
0, 0, 0, 0, 144, 1,
0, 0, 2, 0, 46, 0,
1, 0, 186, 0, 88, 1,
0, 0, 0, 0, 0, 0,
128, 1, 0, 0, 2, 0,
17, 0, 24, 0, 70, 0,
204, 1, 0, 0, 0, 0,
0, 0, 220, 1, 0, 0,
2, 0, 12, 0, 1, 0,
50, 0, 48, 1, 0, 0,
0, 0, 0, 0, 227, 1,
0, 0, 2, 0, 8, 0,
3, 0, 34, 0, 240, 1,
153, 1, 0, 0, 2, 0,
16, 0, 1, 0, 66, 0,
164, 1, 0, 0, 0, 0,
0, 0, 180, 1, 0, 0,
2, 0, 14, 0, 1, 0,
58, 0, 88, 1, 0, 0,
0, 0, 0, 0, 188, 1,
0, 0, 2, 0, 17, 0,
24, 0, 70, 0, 8, 2,
0, 0, 0, 0, 0, 0,
0, 2, 0, 0, 1, 0,
0, 0, 1, 0, 2, 0,
16, 2, 0, 0, 0, 0,
0, 0, 32, 2, 0, 0,
1, 0, 1, 0, 1, 0,
6, 0, 16, 2, 0, 0,
0, 0, 0, 0, 47, 2,
0, 0, 1, 0, 2, 0,
1, 0, 10, 0, 16, 2,
24, 2, 0, 0, 2, 0,
12, 0, 1, 0, 50, 0,
88, 1, 0, 0, 0, 0,
0, 0, 31, 2, 0, 0,
2, 0, 8, 0, 3, 0,
34, 0, 44, 2, 0, 0,
0, 0, 0, 0, 60, 2,
0, 0, 1, 0, 0, 0,
1, 0, 2, 0, 76, 2,
0, 0, 0, 0, 0, 0,
61, 2, 0, 0, 2, 0,
13, 0, 1, 0, 54, 0,
48, 1, 0, 0, 0, 0,
0, 0, 71, 2, 0, 0,
2, 0, 41, 0, 4, 0,
166, 0, 76, 1, 0, 0,
0, 0, 0, 0, 78, 2,
0, 0, 2, 0, 4, 0,
4, 0, 18, 0, 76, 1,
92, 2, 0, 0, 1, 0,
1, 0, 1, 0, 6, 0,
76, 2, 0, 0, 0, 0,
0, 0, 107, 2, 0, 0,
1, 0, 2, 0, 1, 0,
10, 0, 76, 2, 0, 0,
0, 0, 0, 0, 121, 2,
0, 0, 2, 0, 13, 0,
1, 0, 54, 0, 88, 1,
0, 0, 0, 0, 0, 0,
97, 109, 98, 105, 101, 110,
116, 76, 105, 103, 104, 116,
0, 171, 171, 171, 1, 0,
3, 0, 1, 0, 4, 0,
1, 0, 0, 0, 0, 0,
0, 0, 99, 111, 109, 98,
105, 110, 101, 100, 77, 97,
116, 0, 3, 0, 3, 0,
4, 0, 4, 0, 1, 0,
0, 0, 0, 0, 0, 0,
102, 105, 114, 115, 116, 76,
131, 2, 0, 0, 2, 0,
41, 0, 4, 0, 166, 0,
128, 1, 0, 0, 0, 0,
0, 0, 138, 2, 0, 0,
2, 0, 4, 0, 4, 0,
18, 0, 128, 1, 0, 0,
0, 0, 0, 0, 97, 109,
98, 105, 101, 110, 116, 76,
105, 103, 104, 116, 0, 171,
171, 171, 1, 0, 3, 0,
1, 0, 4, 0, 1, 0,
0, 0, 0, 0, 0, 0,
99, 111, 108, 111, 114, 67,
108, 97, 109, 112, 0, 99,
111, 109, 98, 105, 110, 101,
100, 77, 97, 116, 0, 171,
3, 0, 3, 0, 4, 0,
4, 0, 1, 0, 0, 0,
0, 0, 0, 0, 101, 110,
118, 67, 111, 108, 111, 114,
0, 102, 105, 114, 115, 116,
76, 105, 103, 104, 116, 0,
1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 0, 0,
0, 0, 0, 0, 102, 111,
@@ -226,13 +242,13 @@ const BYTE g_vs20_main[] =
0, 0, 112, 111, 115, 105,
116, 105, 111, 110, 0, 100,
105, 114, 101, 99, 116, 105,
111, 110, 0, 171, 135, 1,
0, 0, 144, 1, 0, 0,
160, 1, 0, 0, 144, 1,
0, 0, 169, 1, 0, 0,
144, 1, 0, 0, 5, 0,
111, 110, 0, 171, 195, 1,
0, 0, 204, 1, 0, 0,
220, 1, 0, 0, 204, 1,
0, 0, 229, 1, 0, 0,
204, 1, 0, 0, 5, 0,
0, 0, 1, 0, 12, 0,
8, 0, 3, 0, 180, 1,
8, 0, 3, 0, 240, 1,
0, 0, 109, 97, 116, 67,
111, 108, 0, 110, 111, 114,
109, 97, 108, 77, 97, 116,
@@ -497,18 +513,23 @@ const BYTE g_vs20_main[] =
0, 0, 228, 128, 2, 0,
0, 3, 1, 0, 3, 224,
0, 0, 228, 128, 44, 0,
228, 160, 2, 0, 0, 3,
0, 0, 1, 128, 0, 0,
255, 128, 14, 0, 85, 161,
5, 0, 0, 3, 0, 0,
1, 128, 0, 0, 0, 128,
14, 0, 170, 160, 11, 0,
228, 160, 11, 0, 0, 3,
1, 0, 15, 128, 2, 0,
228, 128, 45, 0, 228, 160,
5, 0, 0, 3, 1, 0,
15, 208, 1, 0, 228, 128,
46, 0, 228, 160, 2, 0,
0, 3, 0, 0, 1, 128,
0, 0, 0, 128, 14, 0,
255, 160, 10, 0, 0, 3,
0, 0, 4, 224, 0, 0,
0, 128, 11, 0, 170, 160,
1, 0, 0, 2, 0, 0,
3, 224, 2, 0, 228, 144,
255, 255, 0, 0
0, 0, 255, 128, 14, 0,
85, 161, 5, 0, 0, 3,
0, 0, 1, 128, 0, 0,
0, 128, 14, 0, 170, 160,
11, 0, 0, 3, 0, 0,
1, 128, 0, 0, 0, 128,
14, 0, 255, 160, 10, 0,
0, 3, 0, 0, 4, 224,
0, 0, 0, 128, 11, 0,
170, 160, 1, 0, 0, 2,
0, 0, 3, 224, 2, 0,
228, 144, 255, 255, 0, 0
};

View File

@@ -8,7 +8,9 @@
// Parameters:
//
// float4 ambientLight;
// float4 colorClamp;
// float4x4 combinedMat;
// float4 envColor;
// float4 fogData;
// float4 matCol;
// float3x3 normalMat;
@@ -27,6 +29,8 @@
// fogData c14 1
// ambientLight c15 1
// texMat c41 4
// colorClamp c45 1
// envColor c46 1
//
vs_2_0
@@ -47,7 +51,9 @@
mov r0.w, v3.w
max r0, r0, c4.x
min r0, r0, c4.y
max r1, r0, c45
mul oD0, r0, c12
mul oD1, r1, c46
mul r0, v0.y, c1
mad r0, c0, v0.x, r0
mad r0, c2, v0.z, r0
@@ -59,56 +65,66 @@
min oT0.z, r0.x, c4.y
mov oT0.xy, v2
// approximately 23 instruction slots used
// approximately 25 instruction slots used
#endif
const BYTE g_vs20_main[] =
{
0, 2, 254, 255, 254, 255,
88, 0, 67, 84, 65, 66,
28, 0, 0, 0, 40, 1,
103, 0, 67, 84, 65, 66,
28, 0, 0, 0, 100, 1,
0, 0, 0, 2, 254, 255,
7, 0, 0, 0, 28, 0,
9, 0, 0, 0, 28, 0,
0, 0, 0, 1, 0, 0,
33, 1, 0, 0, 168, 0,
93, 1, 0, 0, 208, 0,
0, 0, 2, 0, 15, 0,
1, 0, 62, 0, 184, 0,
1, 0, 62, 0, 224, 0,
0, 0, 0, 0, 0, 0,
200, 0, 0, 0, 2, 0,
0, 0, 4, 0, 2, 0,
212, 0, 0, 0, 0, 0,
0, 0, 228, 0, 0, 0,
2, 0, 14, 0, 1, 0,
58, 0, 184, 0, 0, 0,
0, 0, 0, 0, 236, 0,
0, 0, 2, 0, 12, 0,
1, 0, 50, 0, 184, 0,
240, 0, 0, 0, 2, 0,
45, 0, 1, 0, 182, 0,
224, 0, 0, 0, 0, 0,
0, 0, 251, 0, 0, 0,
2, 0, 0, 0, 4, 0,
2, 0, 8, 1, 0, 0,
0, 0, 0, 0, 24, 1,
0, 0, 2, 0, 46, 0,
1, 0, 186, 0, 224, 0,
0, 0, 0, 0, 0, 0,
243, 0, 0, 0, 2, 0,
8, 0, 3, 0, 34, 0,
0, 1, 0, 0, 0, 0,
0, 0, 16, 1, 0, 0,
2, 0, 13, 0, 1, 0,
54, 0, 184, 0, 0, 0,
0, 0, 0, 0, 26, 1,
0, 0, 2, 0, 41, 0,
4, 0, 166, 0, 212, 0,
33, 1, 0, 0, 2, 0,
14, 0, 1, 0, 58, 0,
224, 0, 0, 0, 0, 0,
0, 0, 41, 1, 0, 0,
2, 0, 12, 0, 1, 0,
50, 0, 224, 0, 0, 0,
0, 0, 0, 0, 48, 1,
0, 0, 2, 0, 8, 0,
3, 0, 34, 0, 60, 1,
0, 0, 0, 0, 0, 0,
97, 109, 98, 105, 101, 110,
116, 76, 105, 103, 104, 116,
0, 171, 171, 171, 1, 0,
3, 0, 1, 0, 4, 0,
1, 0, 0, 0, 0, 0,
0, 0, 99, 111, 109, 98,
105, 110, 101, 100, 77, 97,
116, 0, 3, 0, 3, 0,
4, 0, 4, 0, 1, 0,
76, 1, 0, 0, 2, 0,
13, 0, 1, 0, 54, 0,
224, 0, 0, 0, 0, 0,
0, 0, 86, 1, 0, 0,
2, 0, 41, 0, 4, 0,
166, 0, 8, 1, 0, 0,
0, 0, 0, 0, 97, 109,
98, 105, 101, 110, 116, 76,
105, 103, 104, 116, 0, 171,
171, 171, 1, 0, 3, 0,
1, 0, 4, 0, 1, 0,
0, 0, 0, 0, 0, 0,
102, 111, 103, 68, 97, 116,
97, 0, 109, 97, 116, 67,
111, 108, 0, 110, 111, 114,
109, 97, 108, 77, 97, 116,
0, 171, 171, 171, 3, 0,
99, 111, 108, 111, 114, 67,
108, 97, 109, 112, 0, 99,
111, 109, 98, 105, 110, 101,
100, 77, 97, 116, 0, 171,
3, 0, 3, 0, 4, 0,
4, 0, 1, 0, 0, 0,
0, 0, 0, 0, 101, 110,
118, 67, 111, 108, 111, 114,
0, 102, 111, 103, 68, 97,
116, 97, 0, 109, 97, 116,
67, 111, 108, 0, 110, 111,
114, 109, 97, 108, 77, 97,
116, 0, 171, 171, 3, 0,
3, 0, 3, 0, 3, 0,
1, 0, 0, 0, 0, 0,
0, 0, 115, 117, 114, 102,
@@ -170,35 +186,40 @@ const BYTE g_vs20_main[] =
0, 160, 10, 0, 0, 3,
0, 0, 15, 128, 0, 0,
228, 128, 4, 0, 85, 160,
11, 0, 0, 3, 1, 0,
15, 128, 0, 0, 228, 128,
45, 0, 228, 160, 5, 0,
0, 3, 0, 0, 15, 208,
0, 0, 228, 128, 12, 0,
228, 160, 5, 0, 0, 3,
1, 0, 15, 208, 1, 0,
228, 128, 46, 0, 228, 160,
5, 0, 0, 3, 0, 0,
15, 208, 0, 0, 228, 128,
12, 0, 228, 160, 5, 0,
0, 3, 0, 0, 15, 128,
0, 0, 85, 144, 1, 0,
228, 160, 4, 0, 0, 4,
0, 0, 15, 128, 0, 0,
228, 160, 0, 0, 0, 144,
0, 0, 228, 128, 4, 0,
15, 128, 0, 0, 85, 144,
1, 0, 228, 160, 4, 0,
0, 4, 0, 0, 15, 128,
2, 0, 228, 160, 0, 0,
170, 144, 0, 0, 228, 128,
0, 0, 228, 160, 0, 0,
0, 144, 0, 0, 228, 128,
4, 0, 0, 4, 0, 0,
15, 128, 3, 0, 228, 160,
0, 0, 255, 144, 0, 0,
228, 128, 2, 0, 0, 3,
1, 0, 1, 128, 0, 0,
255, 128, 14, 0, 85, 161,
1, 0, 0, 2, 0, 0,
15, 192, 0, 0, 228, 128,
5, 0, 0, 3, 0, 0,
1, 128, 1, 0, 0, 128,
14, 0, 170, 160, 11, 0,
0, 3, 0, 0, 1, 128,
0, 0, 0, 128, 14, 0,
255, 160, 10, 0, 0, 3,
0, 0, 4, 224, 0, 0,
0, 128, 4, 0, 85, 160,
1, 0, 0, 2, 0, 0,
3, 224, 2, 0, 228, 144,
255, 255, 0, 0
15, 128, 2, 0, 228, 160,
0, 0, 170, 144, 0, 0,
228, 128, 4, 0, 0, 4,
0, 0, 15, 128, 3, 0,
228, 160, 0, 0, 255, 144,
0, 0, 228, 128, 2, 0,
0, 3, 1, 0, 1, 128,
0, 0, 255, 128, 14, 0,
85, 161, 1, 0, 0, 2,
0, 0, 15, 192, 0, 0,
228, 128, 5, 0, 0, 3,
0, 0, 1, 128, 1, 0,
0, 128, 14, 0, 170, 160,
11, 0, 0, 3, 0, 0,
1, 128, 0, 0, 0, 128,
14, 0, 255, 160, 10, 0,
0, 3, 0, 0, 4, 224,
0, 0, 0, 128, 4, 0,
85, 160, 1, 0, 0, 2,
0, 0, 3, 224, 2, 0,
228, 144, 255, 255, 0, 0
};

View File

@@ -9,7 +9,9 @@
// Parameters:
//
// float4 ambientLight;
// float4 colorClamp;
// float4x4 combinedMat;
// float4 envColor;
// int4 firstLight;
// float4 fogData;
//
@@ -42,6 +44,8 @@
// firstLight c16 1
// lights c17 24
// texMat c41 4
// colorClamp c45 1
// envColor c46 1
//
vs_2_0
@@ -76,73 +80,85 @@
max r1, r2, c4.x
min r1, r1, c4.z
mul oD0, r1, c12
mul r1.xy, r0.y, c42
mad r0.xy, c41, r0.x, r1
mul r2.xy, r0.y, c42
mad r0.xy, c41, r0.x, r2
mad r0.xy, c43, r0.z, r0
add oT1.xy, r0, c44
max r1, r1, c45
mul oD1, r1, c46
add r0.x, r0.w, -c14.y
mul r0.x, r0.x, c14.z
max r0.x, r0.x, c14.w
min oT0.z, r0.x, c4.z
mov oT0.xy, v2
// approximately 38 instruction slots used
// approximately 40 instruction slots used
#endif
const BYTE g_vs20_main[] =
{
0, 2, 254, 255, 254, 255,
141, 0, 67, 84, 65, 66,
28, 0, 0, 0, 252, 1,
156, 0, 67, 84, 65, 66,
28, 0, 0, 0, 56, 2,
0, 0, 0, 2, 254, 255,
10, 0, 0, 0, 28, 0,
12, 0, 0, 0, 28, 0,
0, 0, 0, 1, 0, 0,
245, 1, 0, 0, 228, 0,
49, 2, 0, 0, 12, 1,
0, 0, 2, 0, 15, 0,
1, 0, 62, 0, 244, 0,
1, 0, 62, 0, 28, 1,
0, 0, 0, 0, 0, 0,
4, 1, 0, 0, 2, 0,
0, 0, 4, 0, 2, 0,
16, 1, 0, 0, 0, 0,
0, 0, 32, 1, 0, 0,
2, 0, 16, 0, 1, 0,
66, 0, 44, 1, 0, 0,
0, 0, 0, 0, 60, 1,
0, 0, 2, 0, 14, 0,
1, 0, 58, 0, 244, 0,
44, 1, 0, 0, 2, 0,
45, 0, 1, 0, 182, 0,
28, 1, 0, 0, 0, 0,
0, 0, 55, 1, 0, 0,
2, 0, 0, 0, 4, 0,
2, 0, 68, 1, 0, 0,
0, 0, 0, 0, 84, 1,
0, 0, 2, 0, 46, 0,
1, 0, 186, 0, 28, 1,
0, 0, 0, 0, 0, 0,
68, 1, 0, 0, 2, 0,
17, 0, 24, 0, 70, 0,
144, 1, 0, 0, 0, 0,
0, 0, 160, 1, 0, 0,
2, 0, 12, 0, 1, 0,
50, 0, 244, 0, 0, 0,
0, 0, 0, 0, 167, 1,
0, 0, 2, 0, 8, 0,
3, 0, 34, 0, 180, 1,
93, 1, 0, 0, 2, 0,
16, 0, 1, 0, 66, 0,
104, 1, 0, 0, 0, 0,
0, 0, 120, 1, 0, 0,
2, 0, 14, 0, 1, 0,
58, 0, 28, 1, 0, 0,
0, 0, 0, 0, 128, 1,
0, 0, 2, 0, 17, 0,
24, 0, 70, 0, 204, 1,
0, 0, 0, 0, 0, 0,
196, 1, 0, 0, 1, 0,
0, 0, 1, 0, 2, 0,
212, 1, 0, 0, 0, 0,
0, 0, 228, 1, 0, 0,
2, 0, 13, 0, 1, 0,
54, 0, 244, 0, 0, 0,
0, 0, 0, 0, 238, 1,
0, 0, 2, 0, 41, 0,
4, 0, 166, 0, 16, 1,
220, 1, 0, 0, 2, 0,
12, 0, 1, 0, 50, 0,
28, 1, 0, 0, 0, 0,
0, 0, 227, 1, 0, 0,
2, 0, 8, 0, 3, 0,
34, 0, 240, 1, 0, 0,
0, 0, 0, 0, 0, 2,
0, 0, 1, 0, 0, 0,
1, 0, 2, 0, 16, 2,
0, 0, 0, 0, 0, 0,
97, 109, 98, 105, 101, 110,
116, 76, 105, 103, 104, 116,
0, 171, 171, 171, 1, 0,
3, 0, 1, 0, 4, 0,
1, 0, 0, 0, 0, 0,
0, 0, 99, 111, 109, 98,
105, 110, 101, 100, 77, 97,
116, 0, 3, 0, 3, 0,
4, 0, 4, 0, 1, 0,
0, 0, 0, 0, 0, 0,
102, 105, 114, 115, 116, 76,
32, 2, 0, 0, 2, 0,
13, 0, 1, 0, 54, 0,
28, 1, 0, 0, 0, 0,
0, 0, 42, 2, 0, 0,
2, 0, 41, 0, 4, 0,
166, 0, 68, 1, 0, 0,
0, 0, 0, 0, 97, 109,
98, 105, 101, 110, 116, 76,
105, 103, 104, 116, 0, 171,
171, 171, 1, 0, 3, 0,
1, 0, 4, 0, 1, 0,
0, 0, 0, 0, 0, 0,
99, 111, 108, 111, 114, 67,
108, 97, 109, 112, 0, 99,
111, 109, 98, 105, 110, 101,
100, 77, 97, 116, 0, 171,
3, 0, 3, 0, 4, 0,
4, 0, 1, 0, 0, 0,
0, 0, 0, 0, 101, 110,
118, 67, 111, 108, 111, 114,
0, 102, 105, 114, 115, 116,
76, 105, 103, 104, 116, 0,
1, 0, 2, 0, 1, 0,
4, 0, 1, 0, 0, 0,
0, 0, 0, 0, 102, 111,
@@ -155,13 +171,13 @@ const BYTE g_vs20_main[] =
0, 0, 112, 111, 115, 105,
116, 105, 111, 110, 0, 100,
105, 114, 101, 99, 116, 105,
111, 110, 0, 171, 75, 1,
0, 0, 84, 1, 0, 0,
100, 1, 0, 0, 84, 1,
0, 0, 109, 1, 0, 0,
84, 1, 0, 0, 5, 0,
111, 110, 0, 171, 135, 1,
0, 0, 144, 1, 0, 0,
160, 1, 0, 0, 144, 1,
0, 0, 169, 1, 0, 0,
144, 1, 0, 0, 5, 0,
0, 0, 1, 0, 12, 0,
8, 0, 3, 0, 120, 1,
8, 0, 3, 0, 180, 1,
0, 0, 109, 97, 116, 67,
111, 108, 0, 110, 111, 114,
109, 97, 108, 77, 97, 116,
@@ -267,29 +283,34 @@ const BYTE g_vs20_main[] =
0, 3, 0, 0, 15, 208,
1, 0, 228, 128, 12, 0,
228, 160, 5, 0, 0, 3,
1, 0, 3, 128, 0, 0,
2, 0, 3, 128, 0, 0,
85, 128, 42, 0, 228, 160,
4, 0, 0, 4, 0, 0,
3, 128, 41, 0, 228, 160,
0, 0, 0, 128, 1, 0,
0, 0, 0, 128, 2, 0,
228, 128, 4, 0, 0, 4,
0, 0, 3, 128, 43, 0,
228, 160, 0, 0, 170, 128,
0, 0, 228, 128, 2, 0,
0, 3, 1, 0, 3, 224,
0, 0, 228, 128, 44, 0,
228, 160, 2, 0, 0, 3,
0, 0, 1, 128, 0, 0,
255, 128, 14, 0, 85, 161,
5, 0, 0, 3, 0, 0,
1, 128, 0, 0, 0, 128,
14, 0, 170, 160, 11, 0,
228, 160, 11, 0, 0, 3,
1, 0, 15, 128, 1, 0,
228, 128, 45, 0, 228, 160,
5, 0, 0, 3, 1, 0,
15, 208, 1, 0, 228, 128,
46, 0, 228, 160, 2, 0,
0, 3, 0, 0, 1, 128,
0, 0, 0, 128, 14, 0,
255, 160, 10, 0, 0, 3,
0, 0, 4, 224, 0, 0,
0, 128, 4, 0, 170, 160,
1, 0, 0, 2, 0, 0,
3, 224, 2, 0, 228, 144,
255, 255, 0, 0
0, 0, 255, 128, 14, 0,
85, 161, 5, 0, 0, 3,
0, 0, 1, 128, 0, 0,
0, 128, 14, 0, 170, 160,
11, 0, 0, 3, 0, 0,
1, 128, 0, 0, 0, 128,
14, 0, 255, 160, 10, 0,
0, 3, 0, 0, 4, 224,
0, 0, 0, 128, 4, 0,
170, 160, 1, 0, 0, 2,
0, 0, 3, 224, 2, 0,
228, 144, 255, 255, 0, 0
};

View File

@@ -7,7 +7,6 @@
//
// Parameters:
//
// float4 colorClamp;
// sampler2D diffTex;
// sampler2D envTex;
// float4 fogColor;
@@ -20,7 +19,6 @@
// ------------ ----- ----
// fogColor c0 1
// fxparams c1 1
// colorClamp c2 1
// diffTex s0 1
// envTex s1 1
//
@@ -29,12 +27,12 @@
dcl t0.xyz
dcl t1.xy
dcl v0
dcl v1.xyz
dcl_2d s0
dcl_2d s1
texld r0, t1, s1
texld r1, t0, s0
max r2.xyz, v0, c2
mul r2.xyz, r2, c1.x
mul r2.xyz, v1, c1.x
mul r0.xyz, r0, r2
mul r0.xyz, r0, t0.z
mul r2.w, r1.w, v0.w
@@ -45,38 +43,30 @@
mad r2.xyz, r1, r2.w, r0
mov oC0, r2
// approximately 13 instruction slots used (2 texture, 11 arithmetic)
// approximately 12 instruction slots used (2 texture, 10 arithmetic)
#endif
const BYTE g_ps20_main[] =
{
0, 2, 255, 255, 254, 255,
71, 0, 67, 84, 65, 66,
28, 0, 0, 0, 229, 0,
64, 0, 67, 84, 65, 66,
28, 0, 0, 0, 200, 0,
0, 0, 0, 2, 255, 255,
5, 0, 0, 0, 28, 0,
4, 0, 0, 0, 28, 0,
0, 0, 0, 1, 0, 0,
222, 0, 0, 0, 128, 0,
0, 0, 2, 0, 2, 0,
1, 0, 10, 0, 140, 0,
193, 0, 0, 0, 108, 0,
0, 0, 3, 0, 0, 0,
1, 0, 2, 0, 116, 0,
0, 0, 0, 0, 0, 0,
156, 0, 0, 0, 3, 0,
0, 0, 1, 0, 2, 0,
164, 0, 0, 0, 0, 0,
0, 0, 180, 0, 0, 0,
3, 0, 1, 0, 1, 0,
6, 0, 188, 0, 0, 0,
0, 0, 0, 0, 204, 0,
0, 0, 2, 0, 0, 0,
1, 0, 2, 0, 140, 0,
0, 0, 0, 0, 0, 0,
213, 0, 0, 0, 2, 0,
132, 0, 0, 0, 3, 0,
1, 0, 1, 0, 6, 0,
140, 0, 0, 0, 0, 0,
0, 0, 99, 111, 108, 111,
114, 67, 108, 97, 109, 112,
0, 171, 1, 0, 3, 0,
1, 0, 4, 0, 1, 0,
0, 0, 156, 0, 0, 0,
2, 0, 0, 0, 1, 0,
2, 0, 168, 0, 0, 0,
0, 0, 0, 0, 184, 0,
0, 0, 2, 0, 1, 0,
1, 0, 6, 0, 168, 0,
0, 0, 0, 0, 0, 0,
100, 105, 102, 102, 84, 101,
120, 0, 4, 0, 12, 0,
@@ -87,63 +77,65 @@ const BYTE g_ps20_main[] =
1, 0, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0,
102, 111, 103, 67, 111, 108,
111, 114, 0, 102, 120, 112,
97, 114, 97, 109, 115, 0,
112, 115, 95, 50, 95, 48,
0, 77, 105, 99, 114, 111,
115, 111, 102, 116, 32, 40,
82, 41, 32, 72, 76, 83,
76, 32, 83, 104, 97, 100,
101, 114, 32, 67, 111, 109,
112, 105, 108, 101, 114, 32,
57, 46, 50, 57, 46, 57,
53, 50, 46, 51, 49, 49,
49, 0, 171, 171, 31, 0,
0, 2, 0, 0, 0, 128,
0, 0, 7, 176, 31, 0,
0, 2, 0, 0, 0, 128,
1, 0, 3, 176, 31, 0,
0, 2, 0, 0, 0, 128,
0, 0, 15, 144, 31, 0,
0, 2, 0, 0, 0, 144,
0, 8, 15, 160, 31, 0,
0, 2, 0, 0, 0, 144,
1, 8, 15, 160, 66, 0,
0, 3, 0, 0, 15, 128,
1, 0, 228, 176, 1, 8,
228, 160, 66, 0, 0, 3,
1, 0, 15, 128, 0, 0,
228, 176, 0, 8, 228, 160,
11, 0, 0, 3, 2, 0,
7, 128, 0, 0, 228, 144,
2, 0, 228, 160, 5, 0,
0, 3, 2, 0, 7, 128,
2, 0, 228, 128, 1, 0,
0, 160, 5, 0, 0, 3,
0, 0, 7, 128, 0, 0,
228, 128, 2, 0, 228, 128,
111, 114, 0, 171, 171, 171,
1, 0, 3, 0, 1, 0,
4, 0, 1, 0, 0, 0,
0, 0, 0, 0, 102, 120,
112, 97, 114, 97, 109, 115,
0, 112, 115, 95, 50, 95,
48, 0, 77, 105, 99, 114,
111, 115, 111, 102, 116, 32,
40, 82, 41, 32, 72, 76,
83, 76, 32, 83, 104, 97,
100, 101, 114, 32, 67, 111,
109, 112, 105, 108, 101, 114,
32, 57, 46, 50, 57, 46,
57, 53, 50, 46, 51, 49,
49, 49, 0, 171, 171, 171,
31, 0, 0, 2, 0, 0,
0, 128, 0, 0, 7, 176,
31, 0, 0, 2, 0, 0,
0, 128, 1, 0, 3, 176,
31, 0, 0, 2, 0, 0,
0, 128, 0, 0, 15, 144,
31, 0, 0, 2, 0, 0,
0, 128, 1, 0, 7, 144,
31, 0, 0, 2, 0, 0,
0, 144, 0, 8, 15, 160,
31, 0, 0, 2, 0, 0,
0, 144, 1, 8, 15, 160,
66, 0, 0, 3, 0, 0,
15, 128, 1, 0, 228, 176,
1, 8, 228, 160, 66, 0,
0, 3, 1, 0, 15, 128,
0, 0, 228, 176, 0, 8,
228, 160, 5, 0, 0, 3,
2, 0, 7, 128, 1, 0,
228, 144, 1, 0, 0, 160,
5, 0, 0, 3, 0, 0,
7, 128, 0, 0, 228, 128,
0, 0, 170, 176, 5, 0,
0, 3, 2, 0, 8, 128,
1, 0, 255, 128, 0, 0,
255, 144, 4, 0, 0, 4,
1, 0, 7, 128, 0, 0,
228, 144, 1, 0, 228, 128,
0, 0, 228, 161, 4, 0,
0, 4, 1, 0, 7, 128,
0, 0, 170, 176, 1, 0,
228, 128, 0, 0, 228, 160,
11, 0, 0, 3, 0, 0,
8, 128, 2, 0, 255, 128,
1, 0, 85, 160, 5, 0,
2, 0, 228, 128, 5, 0,
0, 3, 0, 0, 7, 128,
0, 0, 255, 128, 0, 0,
228, 128, 4, 0, 0, 4,
2, 0, 7, 128, 1, 0,
228, 128, 2, 0, 255, 128,
0, 0, 228, 128, 1, 0,
0, 2, 0, 8, 15, 128,
2, 0, 228, 128, 255, 255,
0, 0
0, 0, 228, 128, 0, 0,
170, 176, 5, 0, 0, 3,
2, 0, 8, 128, 1, 0,
255, 128, 0, 0, 255, 144,
4, 0, 0, 4, 1, 0,
7, 128, 0, 0, 228, 144,
1, 0, 228, 128, 0, 0,
228, 161, 4, 0, 0, 4,
1, 0, 7, 128, 0, 0,
170, 176, 1, 0, 228, 128,
0, 0, 228, 160, 11, 0,
0, 3, 0, 0, 8, 128,
2, 0, 255, 128, 1, 0,
85, 160, 5, 0, 0, 3,
0, 0, 7, 128, 0, 0,
255, 128, 0, 0, 228, 128,
4, 0, 0, 4, 2, 0,
7, 128, 1, 0, 228, 128,
2, 0, 255, 128, 0, 0,
228, 128, 1, 0, 0, 2,
0, 8, 15, 128, 2, 0,
228, 128, 255, 255, 0, 0
};