mirror of
https://github.com/ncblakely/GiantsTools
synced 2024-11-24 07:05:37 +01:00
Use global variables with static names instead of annotations.
This commit is contained in:
parent
0c527fc9d2
commit
11625b367c
@ -118,9 +118,6 @@
|
|||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
</FxCompile>
|
</FxCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="fxh\SystemVariables.fxh" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
|
@ -10,9 +10,6 @@
|
|||||||
<Filter Include="Include">
|
<Filter Include="Include">
|
||||||
<UniqueIdentifier>{026956f1-0f27-4b3d-80ab-f81eafce58f5}</UniqueIdentifier>
|
<UniqueIdentifier>{026956f1-0f27-4b3d-80ab-f81eafce58f5}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Pixel">
|
|
||||||
<UniqueIdentifier>{0ead58ec-1210-4df1-88c8-dfd73f6fb054}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="fxh\Constants.fxh">
|
<None Include="fxh\Constants.fxh">
|
||||||
@ -28,9 +25,4 @@
|
|||||||
<FxCompile Include="reference\FixedFuncEMU.fx" />
|
<FxCompile Include="reference\FixedFuncEMU.fx" />
|
||||||
<FxCompile Include="reference\FFP_orig.fx" />
|
<FxCompile Include="reference\FFP_orig.fx" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="fxh\SystemVariables.fxh">
|
|
||||||
<Filter>Include</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
</Project>
|
@ -4,7 +4,21 @@
|
|||||||
// Land bumpmapping and lighting shader.
|
// Land bumpmapping and lighting shader.
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "../fxh/SystemVariables.fxh"
|
#include "../fxh/Constants.fxh"
|
||||||
|
#include "../fxh/Lighting.fxh"
|
||||||
|
|
||||||
|
shared texture g_Texture0;
|
||||||
|
shared texture g_Texture1;
|
||||||
|
shared float4x4 g_WorldViewProjection;
|
||||||
|
shared float4x4 g_World;
|
||||||
|
|
||||||
|
shared float4x4 g_TexGenMatrix0;
|
||||||
|
shared float4x4 g_TexGenMatrix1;
|
||||||
|
|
||||||
|
shared float4 g_PointLightDiffuse[MAX_LIGHTS];
|
||||||
|
shared float3 g_PointLightPosition[MAX_LIGHTS];
|
||||||
|
shared float g_PointLightRange[MAX_LIGHTS];
|
||||||
|
shared int g_PointLightCount;
|
||||||
|
|
||||||
//float4x4 g_texGenMatrix2 : TexGenTransform2; // Shore texgen
|
//float4x4 g_texGenMatrix2 : TexGenTransform2; // Shore texgen
|
||||||
|
|
||||||
@ -16,7 +30,7 @@
|
|||||||
sampler g_LandTextureSampler =
|
sampler g_LandTextureSampler =
|
||||||
sampler_state
|
sampler_state
|
||||||
{
|
{
|
||||||
Texture = <g_texture0>;
|
Texture = <g_Texture0>;
|
||||||
MipFilter = LINEAR;
|
MipFilter = LINEAR;
|
||||||
MinFilter = LINEAR;
|
MinFilter = LINEAR;
|
||||||
MagFilter = LINEAR;
|
MagFilter = LINEAR;
|
||||||
@ -25,7 +39,7 @@ sampler_state
|
|||||||
sampler g_LandBumpTextureSampler =
|
sampler g_LandBumpTextureSampler =
|
||||||
sampler_state
|
sampler_state
|
||||||
{
|
{
|
||||||
Texture = <g_texture1>;
|
Texture = <g_Texture1>;
|
||||||
MipFilter = LINEAR;
|
MipFilter = LINEAR;
|
||||||
MinFilter = LINEAR;
|
MinFilter = LINEAR;
|
||||||
MagFilter = LINEAR;
|
MagFilter = LINEAR;
|
||||||
@ -89,8 +103,8 @@ VS_OUTPUT_BUMP LandBumpVS(
|
|||||||
Output.WorldPos = mul(vPos, g_World);
|
Output.WorldPos = mul(vPos, g_World);
|
||||||
|
|
||||||
// Set dynamically generated tex coords
|
// Set dynamically generated tex coords
|
||||||
Output.LandBumpTextureUV = mul(vPos, g_texGenMatrix0);
|
Output.LandBumpTextureUV = mul(vPos, g_TexGenMatrix0);
|
||||||
Output.LandTextureUV = mul(vPos, g_texGenMatrix1);
|
Output.LandTextureUV = mul(vPos, g_TexGenMatrix1);
|
||||||
//Output.ShoreTextureUV = mul(vPos, g_texGenMatrix2);
|
//Output.ShoreTextureUV = mul(vPos, g_texGenMatrix2);
|
||||||
|
|
||||||
// Transform the normal from object space to world space
|
// Transform the normal from object space to world space
|
||||||
@ -108,7 +122,7 @@ float4 LandBumpPS(VS_OUTPUT_BUMP input) : COLOR0
|
|||||||
normalMap = saturate((float4)dot((float3)normal, (float3)normalcol)).xyz;
|
normalMap = saturate((float4)dot((float3)normal, (float3)normalcol)).xyz;
|
||||||
float3 finalColor = 2.0 * (normalMap * (tex2D(g_LandTextureSampler, input.LandTextureUV)) + input.LandBumpDiffuse);
|
float3 finalColor = 2.0 * (normalMap * (tex2D(g_LandTextureSampler, input.LandTextureUV)) + input.LandBumpDiffuse);
|
||||||
|
|
||||||
for (int i = 0; i < g_numPointLights; i++)
|
for (int i = 0; i < g_PointLightCount; i++)
|
||||||
{
|
{
|
||||||
// Get light direction for this fragment
|
// Get light direction for this fragment
|
||||||
float3 lightDir = normalize(input.WorldPos - g_PointLightPosition[i]); // per pixel diffuse lighting
|
float3 lightDir = normalize(input.WorldPos - g_PointLightPosition[i]); // per pixel diffuse lighting
|
||||||
@ -117,7 +131,7 @@ float4 LandBumpPS(VS_OUTPUT_BUMP input) : COLOR0
|
|||||||
float diffuseLighting = saturate(dot(input.Normal, -lightDir));
|
float diffuseLighting = saturate(dot(input.Normal, -lightDir));
|
||||||
|
|
||||||
// Introduce fall-off of light intensity
|
// Introduce fall-off of light intensity
|
||||||
diffuseLighting *= (g_PointLightRangeSquared[i] / dot(g_PointLightPosition[i] - input.WorldPos, g_PointLightPosition[i] - input.WorldPos));
|
diffuseLighting *= (g_PointLightRange[i] / dot(g_PointLightPosition[i] - input.WorldPos, g_PointLightPosition[i] - input.WorldPos));
|
||||||
|
|
||||||
float4 diffuseColor = diffuseLighting * g_PointLightDiffuse[i];
|
float4 diffuseColor = diffuseLighting * g_PointLightDiffuse[i];
|
||||||
|
|
||||||
@ -167,7 +181,7 @@ VS_OUTPUT LandscapeVS(
|
|||||||
Output.WorldPos = mul(vPos, g_World);
|
Output.WorldPos = mul(vPos, g_World);
|
||||||
|
|
||||||
// Set dynamically generated tex coords
|
// Set dynamically generated tex coords
|
||||||
Output.TextureUV = mul(vPos, g_texGenMatrix0);
|
Output.TextureUV = mul(vPos, g_TexGenMatrix0);
|
||||||
|
|
||||||
return Output;
|
return Output;
|
||||||
}
|
}
|
||||||
@ -176,7 +190,7 @@ float4 LandscapePS(VS_OUTPUT input) : COLOR0
|
|||||||
{
|
{
|
||||||
float4 finalColor = 0;
|
float4 finalColor = 0;
|
||||||
|
|
||||||
for (int i = 0; i < g_numPointLights; i++)
|
for (int i = 0; i < g_PointLightCount; i++)
|
||||||
{
|
{
|
||||||
// Get light direction for this fragment
|
// Get light direction for this fragment
|
||||||
float3 lightDir = normalize(input.WorldPos - g_PointLightPosition[i]); // per pixel diffuse lighting
|
float3 lightDir = normalize(input.WorldPos - g_PointLightPosition[i]); // per pixel diffuse lighting
|
||||||
@ -185,7 +199,7 @@ float4 LandscapePS(VS_OUTPUT input) : COLOR0
|
|||||||
float diffuseLighting = saturate(dot(input.Normal, -lightDir));
|
float diffuseLighting = saturate(dot(input.Normal, -lightDir));
|
||||||
|
|
||||||
// Introduce fall-off of light intensity
|
// Introduce fall-off of light intensity
|
||||||
diffuseLighting *= (g_PointLightRangeSquared[i] / dot(g_PointLightPosition[i] - input.WorldPos, g_PointLightPosition[i] - input.WorldPos));
|
diffuseLighting *= (g_PointLightRange[i] / dot(g_PointLightPosition[i] - input.WorldPos, g_PointLightPosition[i] - input.WorldPos));
|
||||||
|
|
||||||
float4 diffuseColor = diffuseLighting * g_PointLightDiffuse[i];
|
float4 diffuseColor = diffuseLighting * g_PointLightDiffuse[i];
|
||||||
|
|
||||||
|
@ -1,16 +1,35 @@
|
|||||||
#include "../fxh/SystemVariables.fxh"
|
#include "../fxh/Constants.fxh"
|
||||||
|
#include "../fxh/Lighting.fxh"
|
||||||
|
|
||||||
sampler g_ObjTextureSampler =
|
shared texture g_Texture0 : Texture0;
|
||||||
|
|
||||||
|
shared float4 g_DirectionalLightAmbientSum;
|
||||||
|
shared float4 g_DirectionalLightDiffuse[MAX_DIRECTIONAL_LIGHTS];
|
||||||
|
shared float3 g_DirectionalLightDirection[MAX_DIRECTIONAL_LIGHTS];
|
||||||
|
shared float4 g_DirectionalLightSpecular[MAX_DIRECTIONAL_LIGHTS];
|
||||||
|
shared int g_DirectionalLightCount;
|
||||||
|
shared Material g_Material;
|
||||||
|
|
||||||
|
shared float4x4 g_WorldViewProjection;
|
||||||
|
shared float4x4 g_WorldView;
|
||||||
|
shared float4x4 g_World;
|
||||||
|
|
||||||
|
shared float4 g_TextureFactor;
|
||||||
|
shared TextureBlendStage g_BlendStages[MAX_BLEND_STAGES];
|
||||||
|
shared int g_BlendStageCount;
|
||||||
|
shared float3 g_CameraPosition;
|
||||||
|
|
||||||
|
sampler g_ObjTextureSampler : register(s0) =
|
||||||
sampler_state
|
sampler_state
|
||||||
{
|
{
|
||||||
Texture = <g_texture0>;
|
Texture = <g_Texture0>;
|
||||||
MipFilter = LINEAR;
|
MipFilter = LINEAR;
|
||||||
MinFilter = LINEAR;
|
MinFilter = LINEAR;
|
||||||
MagFilter = LINEAR;
|
MagFilter = LINEAR;
|
||||||
};
|
};
|
||||||
|
|
||||||
// =======================================================
|
// =======================================================
|
||||||
// Textured per pixel lighting
|
// Pixel and vertex lighting techniques
|
||||||
//
|
//
|
||||||
|
|
||||||
float4 CalculateDiffuse(float3 N, float3 L, float4 diffuseColor)
|
float4 CalculateDiffuse(float3 N, float3 L, float4 diffuseColor)
|
||||||
@ -59,18 +78,18 @@ Lighting ComputeLighting(float3 worldPos, float3 N)
|
|||||||
{
|
{
|
||||||
Lighting finalLighting = (Lighting)0;
|
Lighting finalLighting = (Lighting)0;
|
||||||
|
|
||||||
for (int i = 0; i < g_numDirectionalLights; i++)
|
for (int i = 0; i < g_DirectionalLightCount; i++)
|
||||||
{
|
{
|
||||||
Lighting lighting = DoDirectionalLight(worldPos, N, i);
|
Lighting lighting = DoDirectionalLight(worldPos, N, i);
|
||||||
finalLighting.Diffuse += lighting.Diffuse;
|
finalLighting.Diffuse += lighting.Diffuse;
|
||||||
finalLighting.Specular += lighting.Specular;
|
finalLighting.Specular += lighting.Specular;
|
||||||
}
|
}
|
||||||
|
|
||||||
float4 ambient = g_Material.Ambient * g_DirectionalAmbientLightSum;
|
float4 ambient = g_Material.Ambient * g_DirectionalLightAmbientSum;
|
||||||
float4 diffuse = g_Material.Diffuse * finalLighting.Diffuse;
|
float4 diffuse = g_Material.Diffuse * finalLighting.Diffuse;
|
||||||
float4 specular = g_Material.Specular * finalLighting.Specular;
|
float4 specular = g_Material.Specular * finalLighting.Specular;
|
||||||
|
|
||||||
finalLighting.Diffuse = saturate(ambient + diffuse);
|
finalLighting.Diffuse = saturate(ambient + diffuse + g_Material.Emissive);
|
||||||
finalLighting.Specular = saturate(specular);
|
finalLighting.Specular = saturate(specular);
|
||||||
|
|
||||||
return finalLighting;
|
return finalLighting;
|
||||||
@ -104,7 +123,7 @@ float4 GetColorArg(int colorArg, float4 textureColor, float4 diffuseColor)
|
|||||||
float4 result;
|
float4 result;
|
||||||
if (colorArg == D3DTA_TEXTURE) result = textureColor;
|
if (colorArg == D3DTA_TEXTURE) result = textureColor;
|
||||||
else if (colorArg == D3DTA_DIFFUSE) result = diffuseColor;
|
else if (colorArg == D3DTA_DIFFUSE) result = diffuseColor;
|
||||||
else if (colorArg == D3DTA_TFACTOR) result = g_textureFactor;
|
else if (colorArg == D3DTA_TFACTOR) result = g_TextureFactor;
|
||||||
else result = float4(1.f, 1.f, 1.f, 1.f);
|
else result = float4(1.f, 1.f, 1.f, 1.f);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
@ -112,8 +131,8 @@ float4 GetColorArg(int colorArg, float4 textureColor, float4 diffuseColor)
|
|||||||
|
|
||||||
float4 Modulate(int stageIndex, float4 textureColor, float4 diffuseColor, float factor)
|
float4 Modulate(int stageIndex, float4 textureColor, float4 diffuseColor, float factor)
|
||||||
{
|
{
|
||||||
float4 left = GetColorArg(g_blendStages[stageIndex].colorArg1, textureColor, diffuseColor);
|
float4 left = GetColorArg(g_BlendStages[stageIndex].colorArg1, textureColor, diffuseColor);
|
||||||
float4 right = GetColorArg(g_blendStages[stageIndex].colorArg2, textureColor, diffuseColor);
|
float4 right = GetColorArg(g_BlendStages[stageIndex].colorArg2, textureColor, diffuseColor);
|
||||||
|
|
||||||
return (left * right) * factor;
|
return (left * right) * factor;
|
||||||
}
|
}
|
||||||
@ -121,9 +140,9 @@ float4 Modulate(int stageIndex, float4 textureColor, float4 diffuseColor, float
|
|||||||
float4 ProcessStages(float4 textureColor, float4 diffuseColor)
|
float4 ProcessStages(float4 textureColor, float4 diffuseColor)
|
||||||
{
|
{
|
||||||
float4 output = 0;
|
float4 output = 0;
|
||||||
for (int i = 0; i < g_numBlendStages; i++)
|
for (int i = 0; i < g_BlendStageCount; i++)
|
||||||
{
|
{
|
||||||
if (g_blendStages[i].colorOp == D3DTOP_MODULATE4X)
|
if (g_BlendStages[i].colorOp == D3DTOP_MODULATE4X)
|
||||||
{
|
{
|
||||||
output += Modulate(i, textureColor, diffuseColor, 4.0f);
|
output += Modulate(i, textureColor, diffuseColor, 4.0f);
|
||||||
}
|
}
|
||||||
@ -139,7 +158,6 @@ float4 ProcessStages(float4 textureColor, float4 diffuseColor)
|
|||||||
struct PixelLightingPSOutput
|
struct PixelLightingPSOutput
|
||||||
{
|
{
|
||||||
float4 Diffuse : COLOR0;
|
float4 Diffuse : COLOR0;
|
||||||
float4 Specular : COLOR1;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
PixelLightingPSOutput PixelLightingPS(PixelLightingVSOutput input)
|
PixelLightingPSOutput PixelLightingPS(PixelLightingVSOutput input)
|
||||||
@ -149,8 +167,7 @@ PixelLightingPSOutput PixelLightingPS(PixelLightingVSOutput input)
|
|||||||
Lighting lighting = ComputeLighting(input.WorldPos, input.Normal);
|
Lighting lighting = ComputeLighting(input.WorldPos, input.Normal);
|
||||||
|
|
||||||
PixelLightingPSOutput output;
|
PixelLightingPSOutput output;
|
||||||
output.Diffuse = ProcessStages(color, lighting.Diffuse);
|
output.Diffuse = ProcessStages(color, lighting.Diffuse) + lighting.Specular;
|
||||||
output.Specular = color * lighting.Specular;
|
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -163,6 +180,53 @@ technique PixelLighting
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct VertexLightingVSOutput
|
||||||
|
{
|
||||||
|
float4 Pos : POSITION;
|
||||||
|
float4 Diffuse : COLOR0;
|
||||||
|
float4 Specular : COLOR1;
|
||||||
|
float2 Tex0 : TEXCOORD0;
|
||||||
|
float4 BumpColor : TEXCOORD1;
|
||||||
|
float Fog : FOG;
|
||||||
|
};
|
||||||
|
|
||||||
|
float fFogStart = 25.f;
|
||||||
|
float fFogEnd = 1525.f;
|
||||||
|
|
||||||
|
VertexLightingVSOutput VertexLightingVS(
|
||||||
|
float4 vPosition : POSITION0,
|
||||||
|
float3 vNormal : NORMAL0,
|
||||||
|
float4 color : COLOR0,
|
||||||
|
float2 tc : TEXCOORD0)
|
||||||
|
{
|
||||||
|
VertexLightingVSOutput output;
|
||||||
|
output.Pos = mul(vPosition, g_WorldViewProjection);
|
||||||
|
output.Tex0 = tc;
|
||||||
|
|
||||||
|
float4 worldPos = mul(vPosition, g_World);
|
||||||
|
float3 normal = mul(normalize(vNormal), (float3x3)g_World);
|
||||||
|
|
||||||
|
Lighting lighting = ComputeLighting(worldPos, normal);
|
||||||
|
|
||||||
|
output.Diffuse = lighting.Diffuse;
|
||||||
|
output.Specular = lighting.Specular;
|
||||||
|
output.BumpColor = color;
|
||||||
|
|
||||||
|
float3 P = mul(vPosition, g_WorldView);
|
||||||
|
float d = length(P);
|
||||||
|
output.Fog = saturate((fFogEnd - d) / (fFogEnd - fFogStart));
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
technique VertexLighting
|
||||||
|
{
|
||||||
|
pass P0
|
||||||
|
{
|
||||||
|
VertexShader = compile vs_3_0 VertexLightingVS();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// =======================================================
|
// =======================================================
|
||||||
// Color per vertex
|
// Color per vertex
|
||||||
//
|
//
|
||||||
@ -181,9 +245,6 @@ float4 ColorPerVertexPS(ColorPerVertexVSOutput input) : COLOR0
|
|||||||
return color;
|
return color;
|
||||||
}
|
}
|
||||||
|
|
||||||
float fFogStart = 25.f;
|
|
||||||
float fFogEnd = 1525.f;
|
|
||||||
|
|
||||||
ColorPerVertexVSOutput ColorPerVertexVS(
|
ColorPerVertexVSOutput ColorPerVertexVS(
|
||||||
float4 vPosition : POSITION0,
|
float4 vPosition : POSITION0,
|
||||||
float2 tc : TEXCOORD0,
|
float2 tc : TEXCOORD0,
|
||||||
@ -200,7 +261,7 @@ ColorPerVertexVSOutput ColorPerVertexVS(
|
|||||||
float3 P = mul(vPosition, g_WorldView); //position in view space
|
float3 P = mul(vPosition, g_WorldView); //position in view space
|
||||||
float d = length(P);
|
float d = length(P);
|
||||||
|
|
||||||
output.Fog = 0.0; //saturate((fFogEnd - d) / (fFogEnd - fFogStart));
|
output.Fog = saturate((fFogEnd - d) / (fFogEnd - fFogStart));
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,8 +4,6 @@
|
|||||||
// Ocean water reflection shader.
|
// Ocean water reflection shader.
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "../fxh/SystemVariables.fxh"
|
|
||||||
|
|
||||||
/* Original asm code:
|
/* Original asm code:
|
||||||
ps_1_1
|
ps_1_1
|
||||||
tex t0
|
tex t0
|
||||||
@ -13,6 +11,9 @@
|
|||||||
lrp r0, -v0.w, t0, t1 // lrp = linear interpolate
|
lrp r0, -v0.w, t0, t1 // lrp = linear interpolate
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
shared texture g_Texture0;
|
||||||
|
shared texture g_Texture1;
|
||||||
|
|
||||||
struct PS_INPUT
|
struct PS_INPUT
|
||||||
{
|
{
|
||||||
float4 color : COLOR0;
|
float4 color : COLOR0;
|
||||||
@ -84,8 +85,8 @@ technique t0
|
|||||||
{
|
{
|
||||||
pass p0
|
pass p0
|
||||||
{
|
{
|
||||||
Texture[0] = <g_texture0>; // Seabed texture
|
Texture[0] = <g_Texture0>; // Seabed texture
|
||||||
Texture[1] = <g_texture1>; // Environment texture
|
Texture[1] = <g_Texture1>; // Environment texture
|
||||||
|
|
||||||
// All of these constants are set by the game engine before drawing the shader
|
// All of these constants are set by the game engine before drawing the shader
|
||||||
// Each constant register (c# in the asm code) has 4 floating point values
|
// Each constant register (c# in the asm code) has 4 floating point values
|
||||||
|
@ -5,12 +5,16 @@
|
|||||||
// the original fixed-function water rendering behavior.
|
// the original fixed-function water rendering behavior.
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "../fxh/SystemVariables.fxh"
|
//#include "../fxh/SystemVariables.fxh"
|
||||||
|
|
||||||
|
shared texture g_Texture0;
|
||||||
|
shared float4x4 g_WorldViewProjection;
|
||||||
|
shared float4 g_TextureFactor;
|
||||||
|
|
||||||
sampler2D g_WaterTextureSampler =
|
sampler2D g_WaterTextureSampler =
|
||||||
sampler_state
|
sampler_state
|
||||||
{
|
{
|
||||||
Texture = <g_texture0>;
|
Texture = <g_Texture0>;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct VS_OUTPUT
|
struct VS_OUTPUT
|
||||||
@ -42,8 +46,8 @@ VS_OUTPUT RenderSceneVS(float4 inPos : POSITION,
|
|||||||
float4 RenderScenePS(VS_OUTPUT input) : COLOR0
|
float4 RenderScenePS(VS_OUTPUT input) : COLOR0
|
||||||
{
|
{
|
||||||
float4 texel = tex2D(g_WaterTextureSampler, input.TextureUV);
|
float4 texel = tex2D(g_WaterTextureSampler, input.TextureUV);
|
||||||
float4 result = saturate(texel + (1 - texel) * g_textureFactor); // equivalent to saturate((texel + g_TextureFactor) - (texel * g_TextureFactor));
|
float4 result = saturate(texel + (1 - texel) * g_TextureFactor); // equivalent to saturate((texel + g_TextureFactor) - (texel * g_TextureFactor));
|
||||||
result.a = input.Color.a * g_textureFactor.a;
|
result.a = input.Color.a * g_TextureFactor.a;
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
#include "Constants.fxh"
|
|
||||||
#include "Lighting.fxh"
|
|
||||||
|
|
||||||
// Lighting
|
|
||||||
shared float4 g_DirectionalAmbientLightSum : DirectionalLightAmbientSum;
|
|
||||||
shared float4 g_DirectionalLightDiffuse[MAX_DIRECTIONAL_LIGHTS] : DirectionalLightDiffuse;
|
|
||||||
shared float3 g_DirectionalLightDirection[MAX_DIRECTIONAL_LIGHTS] : DirectionalLightDirection;
|
|
||||||
shared float4 g_DirectionalLightSpecular[MAX_DIRECTIONAL_LIGHTS] : DirectionalLightSpecular;
|
|
||||||
shared int g_numDirectionalLights : DirectionalLightCount;
|
|
||||||
shared float4 g_PointLightDiffuse[MAX_LIGHTS] : PointLightDiffuse;
|
|
||||||
shared float3 g_PointLightPosition[MAX_LIGHTS] : PointLightPosition;
|
|
||||||
shared float g_PointLightRangeSquared[MAX_LIGHTS] : PointLightRange;
|
|
||||||
shared int g_numPointLights : PointLightCount;
|
|
||||||
shared Material g_Material : Material;
|
|
||||||
|
|
||||||
// Camera
|
|
||||||
shared float3 g_CameraPosition : CameraPosition;
|
|
||||||
|
|
||||||
// Transforms
|
|
||||||
shared float4x4 g_WorldViewProjection : WorldViewProjection;
|
|
||||||
shared float4x4 g_WorldView : WorldView;
|
|
||||||
shared float4x4 g_World : World;
|
|
||||||
|
|
||||||
// Texturing
|
|
||||||
shared texture g_texture0 : Texture0;
|
|
||||||
shared texture g_texture1 : Texture1;
|
|
||||||
shared texture g_texture2 : Texture2;
|
|
||||||
shared texture g_texture3 : Texture3;
|
|
||||||
shared float4x4 g_texGenMatrix0 : TexGenTransform0;
|
|
||||||
shared float4x4 g_texGenMatrix1 : TexGenTransform1;
|
|
||||||
shared float4 g_textureFactor : TextureFactor;
|
|
||||||
shared TextureBlendStage g_blendStages[MAX_BLEND_STAGES] : BlendStages;
|
|
||||||
shared int g_numBlendStages : BlendStageCount;
|
|
Loading…
Reference in New Issue
Block a user