Gamestudio Links
Zorro Links
Newest Posts
Help with plotting multiple ZigZag
by degenerate_762. 04/30/24 23:23
M1 Oversampling
by 11honza11. 04/30/24 08:16
Trading Journey
by howardR. 04/28/24 09:55
Zorro Trader GPT
by TipmyPip. 04/27/24 13:50
Data from CSV not parsed correctly
by jcl. 04/26/24 11:18
Why Zorro supports up to 72 cores?
by jcl. 04/26/24 11:09
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
3 registered members (VoroneTZ, Quad, AndrewAMD), 936 guests, and 0 spiders.
Key: Admin, Global Mod, Mod
Newest Members
firatv, wandaluciaia, Mega_Rod, EternallyCurious, howardR
19050 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 2 of 2 1 2
Re: Post processing toon effect [Re: Superku] #354874
01/22/11 20:49
01/22/11 20:49
Joined: Oct 2006
Posts: 470
Balkan
Ganderoleg Offline OP
Senior Member
Ganderoleg  Offline OP
Senior Member

Joined: Oct 2006
Posts: 470
Balkan
Thanx, they do seem to look more unusual:) It is too bad that the toon ppe is not functioning as I expected but I believe that this is maybe even better, it gives a completely unique toon look to the levels:)


>>Demos free3DModels Tutorials<<
>>>>>>> by Pavle Nikolic <<<<<<<

Re: Post processing toon effect [Re: Ganderoleg] #354877
01/22/11 21:14
01/22/11 21:14
Joined: Jun 2006
Posts: 379
Flevoland, 5 meters under wate...
Roel Offline
Senior Member
Roel  Offline
Senior Member

Joined: Jun 2006
Posts: 379
Flevoland, 5 meters under wate...
about the not working fsaa:

the fsaa dll probably works, but the edges aren't postprocessed, as they are calculated afterwards. and there is an edge, or there is not...
There is no blurring between them.
you could overcome this by tweaking the toon shader, or by applying a very small blurring after the toon shader(a radius of... 1, 2 pixels).

sorry for my bad english, but I hope you get my point.


Check out the throwing game here: The throwing game
Re: Post processing toon effect [Re: Roel] #354890
01/22/11 23:40
01/22/11 23:40
Joined: Mar 2006
Posts: 2,252
Hummel Offline
Expert
Hummel  Offline
Expert

Joined: Mar 2006
Posts: 2,252
@Ganderoleg: as far as I understand you are using a transparent model-version of your level geometry which got the toon effect added? If so, the transparent model wastes calculation time since the toon shader renders the model twice, once the model itself and another time for the outlines. Means you need only the second pass. Take a look in the shader and comment out the first pass, so you save a lot performance. wink

Re: Post processing toon effect [Re: Hummel] #354938
01/23/11 13:54
01/23/11 13:54
Joined: Oct 2006
Posts: 470
Balkan
Ganderoleg Offline OP
Senior Member
Ganderoleg  Offline OP
Senior Member

Joined: Oct 2006
Posts: 470
Balkan
@Roel
I think you are right, the fsaa works when toon ppe is not active & it would be logical to assume that it also works when toon ppe is active. My programming skills are not really that impressive so I wouldn't know how to tweak the shader in order to fix the edges, but I tried to add blur (both classic & Gaussian) & that definitely didn't produce desired visual effect.

..but the toon shader from GS folder gets anti-aliased (edges are nice & smooth), so I think this is the card to play at the moment. As I mentioned, it seems to be even better solution since outlines don't change during camera movement:)

@Hummel
Yes, I use two rooms, one in wmb & one in mdl format. The wmb room has one texture & shadowmap and the mdl room has transparent texture & toon shader applied.
I modified the fx file as you suggested (I think I did:) so this is what I have now:

Click to reveal..
#include <transform>
#include <fog>
#include <pos>
#include <normal>
#include <tangent>
#include <light>

float4 vecLight;

float4 vecSkill41;
//vecSkill41.x: float facAmbient = 1.0;
//vecSkill41.y: float facEdgeWidth = 1.0;

texture entSkin1; // texture
sampler sBaseTex = sampler_state { Texture = <entSkin1>; MipFilter = Linear; };

struct toonOut
{
float4 Pos: POSITION;
float Fog: FOG;
float4 Color: COLOR;
float4 Ambient:COLOR1;
float2 Tex: TEXCOORD0;
float3 Normal: TEXCOORD1;
float3 Light: TEXCOORD2;
};

toonOut toonVS(
in float4 inPos: POSITION,
in float3 inNormal: NORMAL,
in float2 inTex: TEXCOORD0,
in float3 inTangent: TEXCOORD2)
{
toonOut Out;
Out.Pos = DoTransform(inPos);
Out.Tex = inTex;
Out.Fog = DoFog(inPos);

float facAmbient = vecSkill41.x / 100.;
Out.Ambient = facAmbient*vecLight;

CreateTangents(inNormal,inTangent);
float3 P = DoPos(inPos);

float3 lightVec;
lightVec = normalize(vecLightPos[0].xyz - P);
Out.Color = vecLightColor[0];

Out.Light = DoTangent(lightVec) * 0.5 + 0.5;
Out.Normal = DoTangent(DoPos(inNormal)) * 0.5 + 0.5;

return Out;
}

float4 toonPS(toonOut In): COLOR
{
float4 base = tex2D(sBaseTex,In.Tex);

float intensity = dot(In.Light*2 - 1,In.Normal*2 - 1);

float light;
if (intensity > 0.85 )
light = 1.;
else if (intensity > 0.35 )
light = 0.55;
else
light = 0.05;

return base * (light*In.Color + In.Ambient);
}

technique toon
{
//pass one
//{
// VertexShader = compile vs_1_1 toonVS();
// PixelShader = compile ps_1_4 toonPS();
//}

pass two
{
CULLMODE=CW;
vertexShaderConstant[0] = <matWorldViewProj>;
vertexShaderConstant[16] = <vecSkill41.y/20.>;

VertexShader = asm
{
vs_1_0
dcl_position v0
dcl_normal v3
dcl_texcoord v7
mov r0,v0
mul r1,c16.x,v3
// Scale the normal
add r0.xyz,r0.xyz,r1.xyz
m4x4 oPos,r0,c0
// Transorm position to clip space
mov oD0, c0
mov r0,c0
};
}
}

//technique fallback { pass one { } }

..is there anything else that I can exclude from the fx without damaging it's functionality?


>>Demos free3DModels Tutorials<<
>>>>>>> by Pavle Nikolic <<<<<<<

Re: Post processing toon effect [Re: Ganderoleg] #355226
01/25/11 15:54
01/25/11 15:54
Joined: Mar 2006
Posts: 2,252
Hummel Offline
Expert
Hummel  Offline
Expert

Joined: Mar 2006
Posts: 2,252
as far I can see it all you need is that part of the effect:
Code:
technique toon
{

pass outlines
{
CULLMODE=CW;
vertexShaderConstant[0] = <matWorldViewProj>;
vertexShaderConstant[16] = <vecSkill41.y/20.>;

VertexShader = asm
{
vs_1_0
dcl_position v0
dcl_normal v3
dcl_texcoord v7
mov r0,v0
mul r1,c16.x,v3
// Scale the normal
add r0.xyz,r0.xyz,r1.xyz
m4x4 oPos,r0,c0
// Transorm position to clip space
mov oD0, c0
mov r0,c0
};
}
}



PS: what exactly do you mean with "the outlines do not change during camera movement"? Do you refere to the inconsistence of pp-outlines or the fact that geometry based outlines thickness is realtive to the distance of the viewer?

Last edited by Hummel; 01/25/11 17:37.
Re: Post processing toon effect [Re: Hummel] #355422
01/26/11 20:58
01/26/11 20:58
Joined: Oct 2006
Posts: 470
Balkan
Ganderoleg Offline OP
Senior Member
Ganderoleg  Offline OP
Senior Member

Joined: Oct 2006
Posts: 470
Balkan
You are right, these lines of code are fully sufficient for shader to work in a manner I wanted:) As for changing of the outlines, I was only thinking about inconsistency of the pp-outlines.





.................
But, unfortunately, I have a strange problem occurring with the model when using WED versions higher then 7.50 (7.84). For some reason the outlines are changing colors when camera is changing the pan, going from black to red, green etc...

I don't need to use versions other then 7.50 for compiling the game but I would like to have a widescreen option which is possible only in higher versions:(

I have uploaded a small zip (4mb) with two mdl files, first fully textured with baked shadows & second mono-textured with modified toon shader applied. When running the second model there should be radical color changes when model is being rotated:(

First fully textured model with baked shadows...


Second mono-textured model with modified toon shader applied...


Outlines with changed colors...


If someone could find time to download this zip & maybe try to see how this could be solved I would be very grateful, it's really beyond what I can fix.

The download link is:
http://www.filefront.com/17854051/ToonFxTest.zip

Thanx in advance to everyone who will download & check out the zip:)


Last edited by Ganderoleg; 01/26/11 21:03.

>>Demos free3DModels Tutorials<<
>>>>>>> by Pavle Nikolic <<<<<<<

Page 2 of 2 1 2

Moderated by  Blink, Hummel, Superku 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1