|
|
Re: pp combine?
[Re: darkinferno]
#313781
03/03/10 15:20
03/03/10 15:20
|
Joined: Mar 2008
Posts: 2,247 Baden Württemberg, Germany
Espér
Expert
|
Expert
Joined: Mar 2008
Posts: 2,247
Baden Württemberg, Germany
|
create multiple view stages of the camera.. and add a PP to every of them... Example:
VIEW* blurview = {flags=SHOW; material=pp_blurring;}
VIEW* cartoonview = {flags=SHOW; material=pp_cartoon;}
camera.stage = blurview;
camera.stage = cartoonview;
|
|
|
Re: pp combine?
[Re: Espér]
#313785
03/03/10 16:12
03/03/10 16:12
|
Joined: Oct 2007
Posts: 5,211 İstanbul, Turkey
Quad
Senior Expert
|
Senior Expert
Joined: Oct 2007
Posts: 5,211
İstanbul, Turkey
|
isn't it should be something like a pp chain like:
camera.stage = blurview; blurview.stage = cartoonview;
?
also stages should be render targe? (PROCESS_TARGET flag?)
Last edited by Quadraxas; 03/03/10 16:13.
3333333333
|
|
|
Re: pp combine?
[Re: Espér]
#314755
03/10/10 18:12
03/10/10 18:12
|
Joined: Aug 2007
Posts: 1,922 Schweiz
Widi
Serious User
|
Serious User
Joined: Aug 2007
Posts: 1,922
Schweiz
|
Here a codesnippet from Slin: (THANK YOU SLIN)
VIEW* PP_Temp_View; // Temporärer View Pointer
VIEW* PP_Add(MATERIAL* Material,VIEW* View,BMAP* bmap) // Addiere einen Effekt zu einer View Stage Kette
{
PP_Temp_View = View; // Finde den letzten Vieweffekt und speichere ihn
while(PP_Temp_View.stage != NULL)
{
PP_Temp_View = PP_Temp_View.stage;
}
PP_Temp_View.stage = view_create(0); // Kreiere einen neuen View
set(PP_Temp_View.stage,PROCESS_TARGET);
PP_Temp_View = PP_Temp_View.stage; // Füge Material an den kreierten View
PP_Temp_View.material = Material;
if(bmap != NULL) // Wenn eine Bitmap übergeben wurde, rendere in diese
{
PP_Temp_View.bmap = bmap;
}
return(PP_Temp_View); // Gib den Pointer auf den View zurück
}
int PP_Remove(MATERIAL* Material,VIEW* View,VIEW* StageView) // Entferne einen Effekt von einer View Stage Kette
{
PP_Temp_View = View; // Finde den View mit dem übergebenen Material oder StageView und den vorherigen View
while(PP_Temp_View.material != Material && ((StageView == NULL)+(PP_Temp_View.stage != NULL)) != 0)
{
View = PP_Temp_View;
PP_Temp_View = PP_Temp_View.stage;
if(PP_Temp_View == NULL){return(1);} // Wenn der View nicht existiert, gib 1 zurück
}
View.stage = PP_Temp_View.stage; // Verbinde den View Stage mit dem Vorherigen
View.bmap = PP_Temp_View.bmap; // Setze rendertarget auf die vorherigen Bmap
PP_Temp_View.bmap = NULL; // Resette die Bmap des View`s auf null
ptr_remove(PP_Temp_View); // Entferne den View
return(0); // Gib 0 zurück wenn alles funktioniert hat
}
...
MATERIAL* mtl_Dof = {effect = dof_PP.fx;}
MATERIAL* mtl_Blur_dof = {effect = blur_dof_PP.fx;}
...
PP_Add(mtl_Blur_dof,camera,NULL);
PP_Add(mtl_Dof,camera,NULL);
...
Last edited by Widi; 03/10/10 18:16.
|
|
|
|