diff --git a/bin64/DefaultMeshShaders.fx b/bin64/DefaultMeshShaders.fx new file mode 100644 index 0000000000000000000000000000000000000000..477d864092450a1dcd984d82d5d528ec27591590 --- /dev/null +++ b/bin64/DefaultMeshShaders.fx @@ -0,0 +1,62 @@ +cbuffer VSConstantBuffer : register( b0 ) +{ + matrix World; + matrix View; + matrix Projection; + float4 depthPeelPlanes; +}; + +cbuffer PSConstantBuffer : register( b1 ) +{ + float4 color; + float4 colorModifier; +}; + +struct VS_OUTPUT +{ + float4 Pos : SV_POSITION; + float3 TextureUV : TEXCOORD0; + float3 Normal : NORMAL; + float4 clipPlane[2] : SV_ClipDistance; +}; + +struct PS_OUTPUT +{ + float4 color : SV_TARGET; + float depth : SV_DEPTH; +}; + +VS_OUTPUT DefaultMeshVertexShader( float4 Pos : POSITION, float3 TextureUV : TEXCOORD, float3 Normal : NORMAL ) +{ + VS_OUTPUT output = (VS_OUTPUT)0; + + output.TextureUV = TextureUV; + + output.Pos = mul( Pos, World ); + + output.clipPlane[0] = float4(0,0,0, output.Pos.z-depthPeelPlanes.x); + output.clipPlane[1] = float4(0,0,0, depthPeelPlanes.y-output.Pos.z); + + output.Pos = mul( output.Pos, View ); + output.Pos = mul( output.Pos, Projection ); + + output.Normal = mul( Normal, World ); + + return output; +} + +PS_OUTPUT DefaultMeshPixelShader( VS_OUTPUT input ) +{ + PS_OUTPUT output; + float4 mainLightDir = float4(-0.5774,-0.5774,0.5774,0); + float lightInt = 0.7*dot(-input.Normal,mainLightDir); + + lightInt = saturate(lightInt) + 0.3; + + float3 cval = color*lightInt; + + output.color = float4(cval.x, cval.y, cval.z, color.w) * colorModifier; + output.depth = input.Pos.z; + + return output; +} diff --git a/bin64/ViewAlignedVertexShader.fx b/bin64/ViewAlignedVertexShader.fx new file mode 100644 index 0000000000000000000000000000000000000000..c95bb0ed7220be66e9cb200ae49e1b5f1ebd069e --- /dev/null +++ b/bin64/ViewAlignedVertexShader.fx @@ -0,0 +1,32 @@ +cbuffer VSConstantBuffer : register( b0 ) +{ + matrix World; + matrix View; + matrix Projection; + float4 depthPeelPlanes; +}; + +struct VS_OUTPUT +{ + float4 Pos : SV_POSITION; + float3 TextureUV : TEXCOORD0; + float3 Normal : NORMAL; + float3 Dpth : TEXCOORD1; + float4 clipPlane[2] : SV_ClipDistance; +}; + +VS_OUTPUT ViewAlignedVertexShader( float4 Pos : POSITION, float3 TextureUV : TEXCOORD, float3 Normal : NORMAL ) +{ + VS_OUTPUT output = (VS_OUTPUT)0; + + output.TextureUV = mul(float4(TextureUV,1), World).xyz; + + output.clipPlane[0] = float4(output.TextureUV.x, output.TextureUV.y, output.TextureUV.z,Pos.z-depthPeelPlanes.x); + output.clipPlane[1] = float4(1.0f-output.TextureUV.x, 1.0f-output.TextureUV.y, 1.0f-output.TextureUV.z,depthPeelPlanes.y-Pos.z); + + output.Pos = mul( Pos, View ); + output.Pos = mul( output.Pos, Projection ); + output.Dpth = Pos.xyz; + + return output; +} diff --git a/bin64/lever3d.exe b/bin64/lever3d.exe new file mode 100644 index 0000000000000000000000000000000000000000..3562ecb24bf517bb11a45a6b0a2161aeb7bfea1e Binary files /dev/null and b/bin64/lever3d.exe differ