freudo Posted February 6, 2019 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)
Feche1320 Posted February 6, 2019 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
freudo Posted February 7, 2019 Author 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
Mr.Loki Posted February 7, 2019 Posted February 7, 2019 theTechnique = dxCreateShader( "type1.fx", 0, 0, true )-- you need to set layered as true 1
freudo Posted February 8, 2019 Author 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
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