Dream
From GameStudio Wiki
[edit]
Lite-C:
Material and function to adjust the effect:
// Dream like effect
MATERIAL* Dream_mat =
{
effect = "dream.fx";
}
function Dream_set_Value(Blur,Sharpness,Speed,Range)
{
Dream_mat.skill1 = floatv(Blur); // 2 looks good
Dream_mat.skill2 = floatv(Sharpness); // 7 looks good
Dream_mat.skill3 = floatv(Speed); //0.1
Dream_mat.skill4 = floatv(Range); //0.4
}
The dream.fx file:
//////////////////////////////////////
///////simple dream like effect///////
//////////////////////////////////////
float4 vecSkill1;
float4 vecTime;
texture TargetMap;
sampler postTex = sampler_state
{
texture = (TargetMap);
MinFilter = linear;
MagFilter = linear;
MipFilter = linear;
AddressU = Clamp;
AddressV = Clamp;
};
float4 Dream_PS( float2 Tex : TEXCOORD0 ) : COLOR0
{
float4 Color;
Tex.xy -= 0.5;
Tex.xy *= 1-(sin(vecTime.w*vecSkill1[2])*vecSkill1[3]+vecSkill1[3])*0.5;
Tex.xy += 0.5;
Color = tex2D( postTex, Tex.xy);
Color += tex2D( postTex, Tex.xy+0.001*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy+0.003*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy+0.005*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy+0.007*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy+0.009*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy+0.011*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy-0.001*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy-0.003*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy-0.005*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy-0.007*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy-0.009*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy-0.011*vecSkill1[0]);
Color.rgb = (Color.r+Color.g+Color.b)/3.0f;
Color /= vecSkill1[1];
return Color;
}
technique tech_00
{
pass pass_00
{
VertexShader = null;
PixelShader = compile ps_2_0 Dream_PS();
}
}
technique fallback { pass one { } }
[edit]
C-Script
Material and function to adjust the effect:
// Dream like effect
material Dream_mat
{
effect = "dream.fx";
}
function Dream_set_Value(Blur,Sharpness,Speed,Range)
{
Dream_mat.skill1 = floatv(Blur); // 2 looks good
Dream_mat.skill2 = floatv(Sharpness); // 7 looks good
Dream_mat.skill3 = floatv(Speed); //0.1
Dream_mat.skill4 = floatv(Range); //0.4
}
The dream.fx file:
//////////////////////////////////////
///////simple dream like effect///////
//////////////////////////////////////
float4 vecSkill1;
float4 vecTime;
texture entSkin1;
sampler postTex = sampler_state
{
texture = (entSkin1);
MinFilter = linear;
MagFilter = linear;
MipFilter = linear;
AddressU = Clamp;
AddressV = Clamp;
};
float4 Dream_PS( float2 Tex : TEXCOORD0 ) : COLOR0
{
float4 Color;
Tex.xy -= 0.5;
Tex.xy *= 1-(sin(vecTime.w*vecSkill1[2])*vecSkill1[3]+vecSkill1[3])*0.5;
Tex.xy += 0.5;
Color = tex2D( postTex, Tex.xy);
Color += tex2D( postTex, Tex.xy+0.001*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy+0.003*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy+0.005*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy+0.007*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy+0.009*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy+0.011*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy-0.001*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy-0.003*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy-0.005*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy-0.007*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy-0.009*vecSkill1[0]);
Color += tex2D( postTex, Tex.xy-0.011*vecSkill1[0]);
Color.rgb = (Color.r+Color.g+Color.b)/3.0f;
Color /= vecSkill1[1];
return Color;
}
technique tech_00
{
pass pass_00
{
VertexShader = null;
PixelShader = compile ps_2_0 Dream_PS();
}
}
technique tech_01
{
pass pass_00
{
Texture[0] = <entSkin1>;
}
}
--Slin 23:58, 10 November 2007 (CET)
