1 registered members (AndrewAMD),
1,493
guests, and 6
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Postprocessing und Auflösungswechsel
#374494
06/19/11 12:32
06/19/11 12:32
|
Joined: Sep 2003
Posts: 6,861 Kiel (Germany)
Superku
OP
Senior Expert
|
OP
Senior Expert
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
|
Folgende Situation: Ich habe eine View-stage-Kette mit 2 oder mehr stages, in etwa wie folgt:
bmp_camera = bmap_createblack(screen_size.x,screen_size.y,32);
camera.bmap = bmp_camera;
camera.stage = view_bloom;
view_bloom.stage = view_combine;
Dabei hat letzterer View folgenden Effekt:
sampler CameraSampler = sampler_state { texture = <bmp_camera_bmap>; };
sampler BloomSampler = sampler_state { texture = <TargetMap>; };
float4 pp_combine( float2 Tex : TEXCOORD0 ) : COLOR0
{
float4 Color = 0.5*tex2D( BloomSampler, Tex) + tex2D( CameraSampler, Tex);
return Color;
}
Ändere ich die Auflösung (per default.c und F5) in eine höhere, so gibt es kein Problem. Ist die neue Auflösung jedoch kleiner als die vorherige (bzw. kleiner als die größte, die bisher bei Laufzeit gewählt worden ist), so wird "CameraSampler" inkorrekt gelesen. "bmp_camera" wird stets an die aktuelle Bildschirmauflösung angepasst, daher sollte diese Bitmap zudem die gleiche Auflösung wie "TargetMap" besitzen. Es sieht aber aus, als wäre "Tex.xy" bei dieser Bitmap fälschlicherweise zu klein, weshalb nur ein Ausschnitt aus jener gerendert wird.
DEBUG_VAR(screen_size.x,20);
DEBUG_VAR(bmp_camera->width,40);
if(render_target) DEBUG_VAR(render_target->width,60);
Zudem lässt sich beobachten, dass "render_target->width" beim Übergang in eine höhere Auflösung größer wird, jedoch niemals kleiner. Hier ein lauffähiges Minimalbeispiel: http://www.superku.de/bloom_problem.zipIch danke im Voraus! EDIT: Verwendete Version: 8.20.1
Last edited by Superku; 06/19/11 12:39.
"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual Check out my new game: Pogostuck: Rage With Your Friends
|
|
|
Re: Postprocessing und Auflösungswechsel
[Re: jcl]
#374618
06/20/11 15:32
06/20/11 15:32
|
Joined: Sep 2003
Posts: 6,861 Kiel (Germany)
Superku
OP
Senior Expert
|
OP
Senior Expert
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
|
Sie müssen entweder die Größe des Rendertargets anpassen Das klappt wunderbar, danke! Problem gelöst. EDIT: Falls folgendes legitim ist: if(old_screen_size_x != screen_size.x) { old_screen_size_x = screen_size.x; if(render_target) ptr_remove(render_target); render_target = bmap_createblack(screen_size.x,screen_size.y,32); }
Last edited by Superku; 06/20/11 15:33.
"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual Check out my new game: Pogostuck: Rage With Your Friends
|
|
|
|