Jump to content

MTA Background with blur?


Recommended Posts

Hey all i was trying to make an background for a login panel. but doesn't work i just get a orange ground laggy :/

Can some body help me?

This is my code:

client.lua

function DrawTheBlurredBackground() 
dxSetRenderTarget(); 
dxUpdateScreenSource( myScreenSource ); 
dxDrawImage( 0, 0, screenW, screenH, myShader ); 
end 
  
function StartLoginPanel() 
showChat(false) 
showCursor(true) 
dxSetShaderValue( myShader, "ScreenSource", myScreenSource ); 
addEventHandler("onClientRender", root, DrawTheMainLoginPanel) 
addEventHandler( "onClientHUDRender", getRootElement(), DrawTheBlurredBackground ); 
end 
addEventHandler("onClientResourceStart",root,StartLoginPanel) 

BlurShader.fx

texture ScreenSource; 
float BlurStrength; 
float2 UVSize; 
  
sampler TextureSampler = sampler_state 
{ 
    Texture = <ScreenSource>; 
    MinFilter = Linear; 
    MagFilter = Linear; 
    MipFilter = Linear; 
    AddressU = Wrap; 
    AddressV = Wrap; 
}; 
  
static const float2 poisson[16] =  
{ 
        float2(-0.326212f, -0.40581f), 
        float2(-0.840144f, -0.07358f), 
        float2(-0.695914f, 0.457137f), 
        float2(-0.203345f, 0.620716f), 
        float2(0.96234f, -0.194983f), 
        float2(0.473434f, -0.480026f), 
        float2(0.519456f, 0.767022f), 
        float2(0.185461f, -0.893124f), 
        float2(0.507431f, 0.064425f), 
        float2(0.89642f, 0.412458f), 
        float2(-0.32194f, -0.932615f), 
        float2(-0.65432f, -0.87421f), 
        float2(-0.456899f, -0.633247f), 
        float2(-0.123456f, -0.865433f), 
        float2(-0.664332f, -0.25680f), 
        float2(-0.791559f, -0.59771f) 
}; 
  
float4 PixelShaderFunction(float2 TextureCoordinate : TEXCOORD0) : COLOR0 
{    
    float4 color = tex2D(TextureSampler, TextureCoordinate); 
     
    for(int i = 0; i < 16; i++) 
    { 
        float2 coord= TextureCoordinate.xy + (poisson[i] / UVSize * BlurStrength); 
        color += tex2D(TextureSampler, coord); 
    } 
  
    return(color/17); 
} 
  
technique BlurShader 
{ 
    pass Pass1 
    { 
        PixelShader = compile ps_2_0 PixelShaderFunction(); 
    } 
} 

Link to comment
  • Moderators
local screenWidth, screenHeight = guiGetScreenSize ( ) 
  
local quality = 50 -- 1% t/m 100% 
  
local scalingFactor = quality/100 
local myScreenSource = dxCreateScreenSource(screenWidth*scalingFactor, screenHeight*scalingFactor) 

Rendering with full resolution will lagg, because those functions are slow.

And post all required variables next time, now I am just gambling what the problem might be.

If it still does lagg after reducing the quality, you can also choose for an update after every 2 frames. (which will split up the fps in half)

Link to comment
  • MTA Team

You're not setting BlurStrength or UVSize. Add something like this:

dxSetShaderValue( myShader, "BlurStrength", 1 ); 
dxSetShaderValue( myShader, "UVSize", screenWidth/8, screenHeight/8 ); 

Link to comment
  • MTA Team

onClientResourceStart is attached to root, which means it will be triggered for every starting resource.

Check all your scripts and ensure they use resourceRoot for onResourceStart/Stop and onClientResourceStart/Stop

Also, use 'debugscript 3' and fix all warnings.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...