freudo Posted February 6, 2019 Share Posted February 6, 2019 vehicle components hided. I'm using this fx file; #include "mta-helper.fx" float size = 30.0; float speed= .75; float2 resolution = float2(1, 1); float intensity = 1; float opacity = 1; float3 color = float3(1.0, 1.0, 1.0); float rate = 1.0; struct vsin { float4 Position : POSITION; float2 TexCoord : TEXCOORD0; }; struct vsout { float4 Position : POSITION; float2 TexCoord : TEXCOORD0; }; vsout vs(vsin input) { vsout output; output.Position = mul(input.Position, gWorldViewProjection); output.TexCoord = input.TexCoord; return output; } float random(float2 co){ return frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453); } float3 random_color(float2 coords){ float a = floor(random(coords.xy*6.896)*7.); //(2^3)-1 // { return float3(0.,0.,0.); } //BLACK if (a == 0.) { return float3(1.,0.,0.); } //RED if (a == 1.) { return float3(0.,1.,0.); } //GREEN if (a == 2.) { return float3(1.,1.,0.); } //YELLOW if (a == 3.) { return float3(0.,0.,1.); } //BLUE if (a == 4.) { return float3(1.,0.,1.); } //MAGENTA if (a == 5.) { return float3(0.,1.,1.); } //CYAN else { return float3(1.,1.,1.); } //WHITE } float tri(float x){ x = (x%2.0); if (x > 1.0) x = -x+2.0; return x; } float chess_dist(float2 uv) { return max(abs(uv.x),abs(uv.y)); } float4 ps(vsout input) : COLOR0 { float time = gTime * (0.5 + rate * 2.); float2 uv = -1.0 + 2.0 * input.TexCoord.xy / resolution.xy; uv.y *= resolution.y/resolution.x; float3 colors = color * random_color(floor(uv*size))*step(chess_dist((frac(uv*size)-.5)*2.),tri((((time*speed)+((random(floor(uv*size)))*2.))))); float outFX = saturate(opacity * colors); return float4(colors * intensity, outFX); } float countDepthBias(float minBias, float maxBias, float closeBias) { float4 viewPos = mul(float4(gWorld[3].xyz, 1), gView); float4 projPos = mul(viewPos, gProjection); float depthImpact = minBias + ((maxBias - minBias) * (1 - saturate(projPos.z / projPos.w))); depthImpact += closeBias * saturate(0.5 - (viewPos.z / viewPos.w)); return depthImpact; } technique tec { pass Pass0 { SlopeScaleDepthBias = -0.5; DepthBias = countDepthBias(-0.000002, -0.0004, -0.001); AlphaBlendEnable = true; AlphaRef = 1; VertexShader = compile vs_3_0 vs(); PixelShader = compile ps_3_0 ps(); } } theTechnique = dxCreateShader( "type1.fx" ) dxSetShaderValue(theTechnique,"color",255,255,255,255) dxSetShaderValue(theTechnique,"opacity",1) dxSetShaderValue(theTechnique,"intensity",1) function applyShader(thePlayer, seat) local theVehicle = source if seat == 0 and thePlayer == localPlayer then engineApplyShaderToWorldTexture(theTechnique, "vehiclegrunge256", theVehicle) engineApplyShaderToWorldTexture(theTechnique, "?emap*", theVehicle) end end addEventHandler("onClientVehicleEnter", getRootElement(), applyShader) function removeShader(thePlayer, seat) local theVehicle = source if seat == 0 and thePlayer == localPlayer then engineRemoveShaderFromWorldTexture(theTechnique, "vehiclegrunge256", theVehicle) engineRemoveShaderFromWorldTexture(theTechnique, "?emap*", theVehicle) end end addEventHandler("onClientVehicleExit", getRootElement(), removeShader) Link to comment
Feche1320 Posted February 6, 2019 Share Posted February 6, 2019 (edited) local r, g, b = 255, 255, 255 dxSetShaderValue(theTechnique,"color", r / 255, g / 255, b / 255) #include "mta-helper.fx" float size = 30.0; float speed= .75; float2 resolution = float2(1, 1); float intensity = 1; float opacity = 1; float3 color = float3(1.0, 1.0, 1.0); float rate = 1.0; struct vsin { float4 Position : POSITION; float2 TexCoord : TEXCOORD0; }; struct vsout { float4 Position : POSITION; float2 TexCoord : TEXCOORD0; }; vsout vs(vsin input) { vsout output; output.Position = mul(input.Position, gWorldViewProjection); output.TexCoord = input.TexCoord; return output; } float random(float2 co) { return frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453); } float3 random_color(float2 coords){ float a = floor(random(coords.xy*6.896)*7.); //(2^3)-1 // { return float3(0.,0.,0.); } //BLACK if (a == 0.) { return float3(1.,0.,0.); } //RED if (a == 1.) { return float3(0.,1.,0.); } //GREEN if (a == 2.) { return float3(1.,1.,0.); } //YELLOW if (a == 3.) { return float3(0.,0.,1.); } //BLUE if (a == 4.) { return float3(1.,0.,1.); } //MAGENTA if (a == 5.) { return float3(0.,1.,1.); } //CYAN else { return float3(1.,1.,1.); } //WHITE } float tri(float x){ x = (x%2.0); if (x > 1.0) x = -x+2.0; return x; } float chess_dist(float2 uv) { return max(abs(uv.x),abs(uv.y)); } float4 ps(vsout input) : COLOR0 { float time = gTime * (0.5 + rate * 2.); float2 uv = -1.0 + 2.0 * input.TexCoord.xy / resolution.xy; uv.y *= resolution.y/resolution.x; float3 colors = color * random_color(floor(uv*size))*step(chess_dist((frac(uv*size)-.5)*2.),tri((((time*speed)+((random(floor(uv*size)))*2.))))); float outFX = saturate(opacity * colors); return float4(colors * intensity, outFX); } float countDepthBias(float minBias, float maxBias, float closeBias) { float4 viewPos = mul(float4(gWorld[3].xyz, 1), gView); float4 projPos = mul(viewPos, gProjection); float depthImpact = minBias + ((maxBias - minBias) * (1 - saturate(projPos.z / projPos.w))); depthImpact += closeBias * saturate(0.5 - (viewPos.z / viewPos.w)); return depthImpact; } technique tec { pass Pass0 { SlopeScaleDepthBias = -0.5; DepthBias = countDepthBias(-0.000002, -0.0004, -0.001); AlphaBlendEnable = false; AlphaRef = 1; VertexShader = compile vs_3_0 vs(); PixelShader = compile ps_3_0 ps(); } } Try this Edited February 6, 2019 by Feche1320 Link to comment
freudo Posted February 7, 2019 Author Share Posted February 7, 2019 #include "mta-helper.fx" float2 resolution = float2(1, 1); float intensity = 1; float opacity = 1; float3 color = float3(1.0, 1.0, 1.0); float rate = 1.0; struct vsin { float4 Position : POSITION; float2 TexCoord : TEXCOORD0; }; struct vsout { float4 Position : POSITION; float2 TexCoord : TEXCOORD0; }; vsout vs(vsin input) { vsout output; output.Position = mul(input.Position, gWorldViewProjection); output.TexCoord = input.TexCoord; return output; } float4 ps(vsout input) : COLOR0 { float time = gTime * 0.5 + gTime * rate; float2 p = (input.TexCoord.xy * 2.0 - resolution) / min(resolution.x, resolution.y); float f = 0.0; for(float i = 0.0; i < 10.0; i++){ float s = sin(time + i * 0.628318) * 0.5; float c = cos(time + i * 0.628318) * 0.5; f += 0.0025 / abs(length(p + float2(c, s)) - 0.5); } float outFX = saturate(opacity * f); return float4(color * intensity, outFX); } float countDepthBias(float minBias, float maxBias, float closeBias) { float4 viewPos = mul(float4(gWorld[3].xyz, 1), gView); float4 projPos = mul(viewPos, gProjection); float depthImpact = minBias + ((maxBias - minBias) * (1 - saturate(projPos.z / projPos.w))); depthImpact += closeBias * saturate(0.5 - (viewPos.z / viewPos.w)); return depthImpact; } technique tec { pass Pass0 { SlopeScaleDepthBias = -0.5; DepthBias = countDepthBias(-0.000002, -0.0004, -0.001); AlphaBlendEnable = true; AlphaRef = 1; VertexShader = compile vs_3_0 vs(); PixelShader = compile ps_3_0 ps(); } } you can this? same problem Link to comment
Mr.Loki Posted February 7, 2019 Share Posted February 7, 2019 theTechnique = dxCreateShader( "type1.fx", 0, 0, true )-- you need to set layered as true 1 Link to comment
freudo Posted February 8, 2019 Author Share Posted February 8, 2019 18 hours ago, Mr.Loki said: theTechnique = dxCreateShader( "type1.fx", 0, 0, true )-- you need to set layered as true incorrect Link to comment
freudo Posted February 8, 2019 Author Share Posted February 8, 2019 Thanks its working. Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now