Directx8-Transparenzproblem, wenn sich zwei Objekte überlappenC++

Programme in C++. Entwicklerforum
Anonymous
 Directx8-Transparenzproblem, wenn sich zwei Objekte überlappen

Post by Anonymous »

Hallo, ich bin ziemlich neu bei DirectX. Ich verwende es hauptsächlich, weil es die Schnittstelle ist, die für ein altes Spiel verwendet wird, für das ich eine Art Bildschirmwischfunktion schreibe, sodass alles gut funktioniert, bis ich zwei Objekte überlappen muss. Es sind nur zwei einfache Quads mit zugewiesener PNG-Textur. Ich verwende diese Funktion, um die Renderstufe und den Funktionsaufruf festzulegen

Code: Select all

static void RW_SetupRenderState(IDirect3DDevice8* dev)
{
dev->SetRenderState(D3DRS_ZENABLE, FALSE);
dev->SetRenderState(D3DRS_ZWRITEENABLE, FALSE);

dev->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
dev->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
dev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);

dev->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
dev->SetRenderState(D3DRS_LIGHTING, FALSE);

dev->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
dev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
dev->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);

dev->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
dev->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
dev->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);

dev->SetVertexShader(D3DFVF_XYZRHW| D3DFVF_DIFFUSE | D3DFVF_TEX1);
}

Code: Select all

        for (i = 0; i < g_scene.objectsCount; ++i)
{
self->BeginScene();
RW_SetupRenderState(self);
RWObject* o = &g_scene.objects[i];
if (!o->id[0]) continue;
RW_RenderObject(self, o, g_curFrame);
self->EndScene();
}
und so sieht es aus, wenn sich die beiden Objekte überlappen, es ist ziemlich transparent und es scheint, als würden die Farben des ersten Objekts mit denen des zweiten verschmelzen
Image

Außerdem zeichne ich zuerst das Logo und dann den Flare-Effekt
Mein Ziel ist es, dass es wie im Mixer aussieht
Image

Jede Hilfe hierzu wäre großartig, da ich nicht weiß, wo ich sonst hingehen soll. Außerdem habe ich viele verschiedene Kombinationen getestet, die ich online gesehen habe, aber diese war die beste

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post