mirror of
https://github.com/minetest/irrlicht.git
synced 2024-12-26 07:57:30 +01:00
44 lines
1004 B
HLSL
44 lines
1004 B
HLSL
|
|
||
|
// Texture size to calculate texel center
|
||
|
float2 TextureSize;
|
||
|
|
||
|
// Vertex shader output struct
|
||
|
struct VS_OUTPUT
|
||
|
{
|
||
|
float4 Position : POSITION0;
|
||
|
float2 TexCoords : TEXCOORD0;
|
||
|
};
|
||
|
|
||
|
VS_OUTPUT vertexMain(
|
||
|
float4 Position : POSITION0,
|
||
|
float2 TexCoords : TEXCOORD0
|
||
|
)
|
||
|
{
|
||
|
VS_OUTPUT OUT;
|
||
|
OUT.Position = Position;
|
||
|
|
||
|
// In practice, instead of passing in TextureSize,
|
||
|
// pass 1.0 / TextureSize for better performance
|
||
|
|
||
|
// TexCoords is set to the texel center
|
||
|
OUT.TexCoords = TexCoords + 1.0 / TextureSize / 2.0;
|
||
|
|
||
|
return OUT;
|
||
|
}
|
||
|
|
||
|
// Texture sampler
|
||
|
sampler2D TextureSampler;
|
||
|
|
||
|
float4 pixelMain ( float2 Texcoords : TEXCOORD0 ) : COLOR0
|
||
|
{
|
||
|
// Texture is sampled at Texcoords using tex2D
|
||
|
float4 Color = tex2D(TextureSampler, Texcoords);
|
||
|
|
||
|
// Change Texcoords to sample pixels around
|
||
|
|
||
|
// Inverse the color to produce negative image effect
|
||
|
Color.rgb = 1.0 - Color.rgb;
|
||
|
|
||
|
return Color;
|
||
|
};
|