2 registered members (AndrewAMD, ChrstphFr),
941
guests, and 4
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
[Req] Shader Extraction
#440493
04/26/14 18:21
04/26/14 18:21
|
Joined: Apr 2005
Posts: 1,988 Canadian, Eh
DLively
OP
Serious User
|
OP
Serious User
Joined: Apr 2005
Posts: 1,988
Canadian, Eh
|
Hi, I was wondering if anyone who is familiar with shaders could have a look at this old blur shader and extract the coloring out. When I use it this shader, the models tend to either be a nice dark contrasty color, or flash white depending on certain variables I've yet to note. I dont need the blur part of it - I just like the color effect it gives off... so if anyone could extract that for me, it would be appreciated
texture entSkin1;
float4x4 matWorldViewProj;
sampler basemap = sampler_state
{
Texture = <entSkin1>;
};
void blur1VS(
uniform float exten,
in float4 inNormal : NORMAL0,
in float4 inPosition : POSITION0,
in float4 inTexcoord : TEXCOORD0,
out float4 outPosition : POSITION0,
out float4 outTexcoord : TEXCOORD0)
{
inPosition.xyz += inNormal/exten;
outTexcoord = inTexcoord;
outPosition = mul(inPosition, matWorldViewProj);
}
void blur1PS (
uniform float alpha,
in float4 inTexcoord : TEXCOORD0,
out float4 outColor : COLOR0)
{
outColor = tex2D(basemap, inTexcoord.xy);
outColor.a=alpha;
}
void mainVS(
in float4 inNormal : NORMAL0,
in float4 inPosition : POSITION0,
in float4 inTexcoord : TEXCOORD0,
out float4 outPosition : POSITION0,
out float4 outTexcoord : TEXCOORD0)
{
outTexcoord = inTexcoord;
outPosition = mul(inPosition, matWorldViewProj);
}
void mainPS(in float4 inTexcoord : TEXCOORD0, out float4 outColor : COLOR0) {
outColor = tex2D(basemap, inTexcoord.xy);
outColor.a=1;
}
technique t1 {
pass p0 {
ZENABLE = TRUE;
zwriteenable=true;
AlphaBlendEnable = true;
VertexShader = compile vs_1_1 mainVS();
PixelShader = compile ps_2_0 mainPS();
}
pass p1 {
ZENABLE = TRUE;
zwriteenable=true;
AlphaBlendEnable = true;
VertexShader = compile vs_1_1 blur1VS(10);
PixelShader = compile ps_2_0 blur1PS(0.9);
}
pass p2 {
zwriteenable=true;
ZENABLE = TRUE;
AlphaBlendEnable = true;
VertexShader = compile vs_1_1 blur1VS(8);
PixelShader = compile ps_2_0 blur1PS(0.9);
}
pass p3 {
zwriteenable=true;
ZENABLE = TRUE;
AlphaBlendEnable = true;
VertexShader = compile vs_1_1 blur1VS(7);
PixelShader = compile ps_2_0 blur1PS(0.7);
}
pass p4 {
zwriteenable=true;
AlphaBlendEnable = true;
VertexShader = compile vs_1_1 blur1VS(6);
PixelShader = compile ps_2_0 blur1PS(0.7);
}
pass p5 {
zwriteenable=true;
ZENABLE = TRUE;
AlphaBlendEnable = true;
VertexShader = compile vs_1_1 blur1VS(5);
PixelShader = compile ps_2_0 blur1PS(0.5);
}
pass p6 {
zwriteenable=true;
ZENABLE = TRUE;
AlphaBlendEnable = true;
VertexShader = compile vs_1_1 blur1VS(4);
PixelShader = compile ps_2_0 blur1PS(0.5);
}
pass p7 {
zwriteenable=true;
ZENABLE = TRUE;
AlphaBlendEnable = true;
VertexShader = compile vs_1_1 blur1VS(3);
PixelShader = compile ps_2_0 blur1PS(0.3);
}
pass p8 {
zwriteenable=true;
zwriteenable=true;
ZENABLE = TRUE;
AlphaBlendEnable = true;
VertexShader = compile vs_1_1 blur1VS(2);
PixelShader = compile ps_2_0 blur1PS(0.3);
}
pass p9 {
zwriteenable=true;
ZENABLE = TRUE;
AlphaBlendEnable = true;
VertexShader = compile vs_1_1 blur1VS(1);
PixelShader = compile ps_2_0 blur1PS(0.1);
}
}
Last edited by DLively; 04/26/14 18:24.
|
|
|
Re: [Req] Shader Extraction
[Re: DLively]
#440495
04/26/14 18:27
04/26/14 18:27
|
Joined: Oct 2011
Posts: 1,082 Germany
Ch40zzC0d3r
Serious User
|
Serious User
Joined: Oct 2011
Posts: 1,082
Germany
|
Remove the line
inPosition.xyz += inNormal/exten;
Last edited by Ch40zzC0d3r; 04/26/14 18:29.
|
|
|
Re: [Req] Shader Extraction
[Re: DLively]
#440517
04/27/14 12:39
04/27/14 12:39
|
Joined: Jun 2009
Posts: 2,210 Bavaria, Germany
Kartoffel
Expert
|
Expert
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
|
you should also remove all passes except for one. if not you're rendering all the geometry multiple times. edit: didn't test it but try this:
const texture entSkin1;
const float4x4 matWorldViewProj;
sampler2D basemap = sampler_state
{
Texture = <entSkin1>;
AddressU = Wrap;
AddressV = Wrap;
};
void mainVS(
in float4 inNormal : NORMAL0,
in float4 inPosition : POSITION0,
in float4 inTexcoord : TEXCOORD0,
out float4 outPosition : POSITION0,
out float4 outTexcoord : TEXCOORD0)
{
outTexcoord = inTexcoord;
outPosition = mul(inPosition, matWorldViewProj);
}
void mainPS(in float4 inTexcoord : TEXCOORD0, out float4 outColor : COLOR0)
{
outColor = tex2D(basemap, inTexcoord.xy);
}
technique t1
{
pass p0
{
zEnable = True;
zWriteEnable = True;
AlphaBlendEnable = True;
VertexShader = compile vs_3_0 mainVS();
PixelShader = compile ps_3_0 mainPS();
}
}
one thing I should say is that this shader does no lighting calculations at all. It just outputs the texture color as it is.
POTATO-MAN saves the day! - Random
|
|
|
|