Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

killmichnich

unregistriert

1

13.05.2010, 13:39

Direct3D: Texturen nicht transparent

Hiho Community,

ich bin grad dabei ein Menü mit transparenten Buttons in 3D zu basteln. Für die Buttons hab ich transparente Texturen erstellt die ich lade und zeichne, sie sind nur leider nicht transparent.
Der Code hierfür sieht in etwa so aus:
Das Laden:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#define D3DFVF_CUSTOMVERTEX_TEXTURE (D3DFVF_XYZ | D3DFVF_TEX1)

struct CUSTOMVERTEX_TEXTURE
{
    D3DXVECTOR3 Position;
    float tu, tv;
};

Direct3D->Device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
Direct3D->Device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
Direct3D->Device->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);

HRESULT hr = D3DXCreateTextureFromFileEx(Direct3D->Device, "MyMedia/Menu/button_newgame.png", D3DX_DEFAULT, D3DX_DEFAULT, 1, NULL, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_FILTER_TRIANGLE | D3DX_FILTER_DITHER,
        D3DX_FILTER_TRIANGLE | D3DX_FILTER_DITHER, 0, NULL, NULL, &Texture_NewGame);

Vertices_NewGame[0].Position = D3DXVECTOR3(-1.0f, 0.5f, -2.0f);
Vertices_NewGame[0].tu = 0.0f;
Vertices_NewGame[0].tv = 0.0f;
Vertices_NewGame[1].Position = D3DXVECTOR3(1.0f, -0.5f, -2.0f);
Vertices_NewGame[1].tu = 1.0f;
Vertices_NewGame[1].tv = 1.0f;
Vertices_NewGame[2].Position = D3DXVECTOR3(-1.0f, -0.5, -2.0f);
Vertices_NewGame[2].tu = 0.0f;
Vertices_NewGame[2].tv = 1.0f;


Das zeichnen:

C-/C++-Quelltext

1
2
3
4
5
Direct3D->Device->SetRenderState(D3DRS_ALPHABLENDENABLE, true);
Direct3D->Device->SetFVF(D3DFVF_CUSTOMVERTEX_TEXTURE);
Direct3D->Device->SetTexture(0, Texture_BackGround);
Direct3D->Device->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 2, &Vertices_BackGround, sizeof(CUSTOMVERTEX_TEXTURE));
Direct3D->Device->SetRenderState(D3DRS_ALPHABLENDENABLE, false);


Laden und zeichnen klappt ohne Fehler, es is halt leider nich durchsichtig.
Kann mir jemand helfen und sagen was ich falsch mache/anders machen sollte?

Ich würde mich sehr über Hilfe freuen ^^

MfG Killmichnich

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

2

13.05.2010, 14:40

Hast du die dahinterliegenden Objekte auch vorher gerendert?
Signaturen werden überbewertet

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »GR-PA« (13.05.2010, 14:47)


killmichnich

unregistriert

3

13.05.2010, 15:15

hmmm peinlich, daran hab ich garnicht gedacht ... ;(
hab mir immer nur gedacht, dass ich die buttons ja seh, also müssts ja eigtl so klappen xD

thx aufjedenfall, Thema kann geschlossen werden

Werbeanzeige