Code
texture PixelShadTexture;
sampler screenSampler = sampler_state
{
Texture = <PixelShadTexture>;
};
float4 main(float2 uv : TEXCOORD0) : COLOR0
{
float4 Color;
float4 Color2;
float4 Color3;
Color = tex2D( screenSampler , uv.xy);
Color2 = Color;
Color3 = Color;
Color -= tex2D( screenSampler, uv.xy+0.0004)*14.0f;
Color += tex2D( screenSampler, uv.xy-0.0004)*14.0f;
Color2 += tex2D( screenSampler, uv.xy+0.0004)*14.0f;
Color2 -= tex2D( screenSampler, uv.xy-0.0004)*14.0f;
if (Color.r <= 0.03 && Color.g <= 0.03 && Color.b <= 0.03) {
return (Color);
}
else if (Color2.r <= 0.03 && Color2.g <= 0.03 && Color2.b <= 0.03) {
return (Color2);
}
else{
return Color3*1.5;
}
};
technique PixelShad
{
pass P1
{
PixelShader = compile ps_2_0 main();
}
}
Alles anzeigen
LUA:
Code
local w, h = guiGetScreenSize( );
local enable = false;
addEventHandler( "onClientResourceStart", getResourceRootElement( getThisResource() ),
function( )
enablePixelShad();
bindKey( "F3", "up", enablePixelShad );
end
)
function renderEffect( )
dxSetRenderTarget( );
dxUpdateScreenSource( screenSrc );
dxDrawImage( 0, 0, w, h, screenShader );
end
function enablePixelShad( )
enable = not enable;
if enable then
screenShader = dxCreateShader( "PixelShad.fx" );
screenSrc = dxCreateScreenSource( w, h );
if screenShader and screenSrc then
dxSetShaderValue( screenShader, "PixelShadTexture", screenSrc );
addEventHandler( "onClientHUDRender", getRootElement( ), renderEffect );
end
else
if screenShader and screenSrc then
destroyElement( screenShader );
destroyElement( screenSrc );
screenShader, screenSrc = nil, nil;
removeEventHandler( "onClientHUDRender", getRootElement( ), renderEffect );
end
end
end
Alles anzeigen
ursprünglicher Autor des LUA scriptes:
Slifer