Lightwave effect

From GameStudio Wiki

Jump to: navigation, search

Thanks to ello for sharing this shader!

Lite-C:


Material and function to adjust the effect:

//Lightwave
MATERIAL* Lightwave_mat =
{
	effect = "Lightwave.fx";
}

function Lightwave_set_Value(r,g,b)
{
	Lightwave_mat.skill1 = floatv(r);	//2 looks okay
	Lightwave_mat.skill2 = floatv(g);	//0
	Lightwave_mat.skill3 = floatv(b);	//same as r
}

The Lightwave.fx file:

//Lightwave effect

float4 vecSkill1;
float4 vecViewPort;

Texture TargetMap;
sampler2D smpSource = sampler_state { texture = <TargetMap>; };

float4 lightwavePS( float2 Tex : TEXCOORD0 ) : COLOR0
{
	half4 Color = 0;
	Color.r = tex2D(smpSource,Tex.xy + float2(vecViewPort.z*vecSkill1.x,0));
	Color.g = tex2D(smpSource,Tex.xy + float2(0,vecViewPort.w*vecSkill1.y));
	Color.b = tex2D(smpSource,Tex.xy - float2(vecViewPort.z*vecSkill1.z,0));
	return Color;
}

technique postFX
{
	pass p1
	{
		PixelShader = compile ps_2_0 lightwavePS();
	}
}

technique fallback { pass one { } }


C-Script


Material and function to adjust the effect:

//Lightwave
material Lightwave_mat
{
	effect = "Lightwave.fx";
}

function Lightwave_set_Value(r,g,b)
{
	Lightwave_mat.skill1 = floatv(r);	//2 looks okay
	Lightwave_mat.skill2 = floatv(g);	//0
	Lightwave_mat.skill3 = floatv(b);	//same as r
}

The Lightwave.fx file:

//Lightwave effect

float4 vecSkill1;
float4 vecViewPort;

Texture entSkin1;
sampler2D smpSource = sampler_state { texture = <entSkin1>; };

float4 lightwavePS( float2 Tex : TEXCOORD0 ) : COLOR0
{
	half4 Color = 0;
	Color.r = tex2D(smpSource,Tex.xy + float2(vecViewPort.z*vecSkill1.x,0));
	Color.g = tex2D(smpSource,Tex.xy + float2(0,vecViewPort.w*vecSkill1.y));
	Color.b = tex2D(smpSource,Tex.xy - float2(vecViewPort.z*vecSkill1.z,0));
	return Color;
}

technique postFX
{
	pass p1
	{
		PixelShader = compile ps_2_0 lightwavePS();
	}
}

technique fallback { pass one { } }

--Slin 15:57, 17 November 2007 (CET)

Personal tools