Hallo.
Ich würde es gerne endlich schaffen Multisampling in meiner Textur anzuwenden. Ich erstelle eine Render Textur so:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
|
X3D->CreateTexture(X3D.GetScreenSize().x,
X3D.GetScreenSize().y,
1,
D3DUSAGE_RENDERTARGET,
D3DFMT_X8R8G8B8,
D3DPOOL_DEFAULT,
&pRenderTexture,
NULL);
pRenderTexture->GetSurfaceLevel( 0, &pRenderSurface );
X3D->GetRenderTarget(0,&pBackBuffer);
|
pRenderTexture ist vom Typ LPDIRECT3DTEXTURE9, pRenderSurface und pBackBuffer sind vom Typ LPDIRECT3DSURFACE9.
Ich render in die Textur so:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
|
X3D->SetRenderTarget(0,pRenderSurface);
X3D->BeginScene();
//...
X3D->EndScene();
// Hier wird die Textur gerendert
X3D->SetRenderTarget(0,pBackBuffer);
//Textur Rendern
|
Daher das so kein Multisampling aktiv ist dachte ich, ich versuche es mal mit StretchRect();
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
|
X3D->StretchRect(pBackBuffer,NULL,pRenderSurface,NULL,D3DTEXF_ANISOTROPIC); // Hier
X3D->SetRenderTarget(0,pRenderSurface);
X3D->BeginScene();
//...
X3D->EndScene();
// Hier wird die Textur gerendert
X3D->SetRenderTarget(0,pBackBuffer);
|
pBackBuffer ist ja mein erstelltes RenderTarget mit MultiSampling. Jetzt wollte ich die Infos einfach in pRenderSurface kopieren. Aber leider immernoch keine Änderung. Noch schlimmer, jetzt gibt es ein Problem: Man kann durch Objekte durchgucken O.o Also irgendwie eigenartig. Mein Modellierer sagt das hat was mit den Normalen zutun. Aber an denen änder ich ja nichts. Dies passiert aber auch nur wenn ich AA anschalte.
Danke im Voraus.