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

Black-Panther

Alter Hase

  • »Black-Panther« ist der Autor dieses Themas

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

1

24.01.2006, 21:23

ColorKey bei Texturen

Hallo!

Habe ein Problem mit dem ColorKey bei Texturen... Und zwar schreibe ich gerade eine Billboardklasse und da muss natürlich die Grundfarbe der Billboards transparent werden... Nun hab ich mir das eigentlich ganz einfach vorgestellt, und es über den ColorKey versucht, aber irgendwie will das ganze nicht! Was muss ich denn da besonders beachten?

Mit dieser Funktion lade ich die Texture und in dwColorKey ist die Farbe (bei mir bis jetzt immer schwarz) gespeichert:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//Texture laden

    HRESULT hResult;
    if(FAILED(hResult = D3DXCreateTextureFromFileInMemoryEx(ogDirect3D::Instance().GetD3DDevice(),
                                                            (void*)(VFile.GetPointer()),
                                                            VFile.GetSize(),
                                                            D3DX_DEFAULT,
                                                            D3DX_DEFAULT,
                                                            D3DX_DEFAULT,
                                                            0,
                                                            D3DFMT_UNKNOWN,
                                                            D3DPOOL_MANAGED,
                                                            D3DX_DEFAULT,
                                                            D3DX_DEFAULT,
                                                            dwColorKey,
                                                            NULL,
                                                            NULL,
                                                            &m_pBillboard)))
    {
        OG_ERROR_DIRECTX("D3DXCreateTextureFromFileInMemoryEx()", hResult, OG_ERROR);
    }


Kann sein, dass es mit schwarz gar nicht funktioniert? Oder muss ich sonst irgendetwas beachten? AlphaBlending beim rendern einschalten und andere RS?
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

DarkFitzi

Alter Hase

Beiträge: 608

Wohnort: Eisenberg, Thüringen

Beruf: Schüler, 10te Klasse

  • Private Nachricht senden

2

24.01.2006, 21:35

hast du beim rendern auch alpha blending aktiviert?
Daran lag es einmal bei mir, da die gewünschten Teile nicht "abgeschnitten" werden sonder nur mit 100% transparentem Schwarz gefüllt werden.
Ich würde die Welt gern verbessern, doch Gott gibt mir den Sourcecode nicht! :-(

Black-Panther

Alter Hase

  • »Black-Panther« ist der Autor dieses Themas

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

3

25.01.2006, 12:57

Jo, habs mit Alphablendenable = True gerendert, und es macht überhaupt keinen Unterschied... Als "schwarz" habe ich 0xFF000000 angegeben, also voll opakes schwarz...
Woran konnte es denn noch liegen?
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

25.01.2006, 13:04

Daran das du als Colorkey ein transparentes Schwarz angegeben hast du aber das opake Schwarz ersetzen willst? Oder viell. sind auch deine Alpha stats nicht in Ordnung?
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Black-Panther

Alter Hase

  • »Black-Panther« ist der Autor dieses Themas

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

5

25.01.2006, 13:29

So... jetzt gehts... Lag an den RS...

Meine bisherigen Einstellungen:

C-/C++-Quelltext

1
2
3
4
D3D.SetRS(D3DRS_ALPHABLENDENABLE, TRUE);
    D3D.SetTSS(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
    D3D.SetTSS(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
    D3D.SetTSS(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);


Und so muss es sein:

C-/C++-Quelltext

1
2
3
4
5
6
7
D3D.SetRS(D3DRS_ALPHABLENDENABLE, TRUE);
    D3D.SetRS(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
    D3D.SetRS(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
    D3D.SetRS(D3DRS_BLENDOP, D3DBLENDOP_ADD);
    D3D.SetTSS(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
    D3D.SetTSS(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
    D3D.SetTSS(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

Werbeanzeige