JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=ba5f65511159d00f3839e7dab41bc96bMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

D3DCOLOR_ARGB
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 08.09.2003, 07:41    Titel: D3DCOLOR_ARGB Antworten mit Zitat

Langsam muss ich mich wirklich fragen, wann dieses Makro überhaupt funktioniert! Sad

Ich möchte per direktem Zugriff auf die Surface Pixel halbtransparent malen da schreib ich ja dann:

lpSurface[y*Pitch+x]=Color;

Color hat den Datentyp D3DCOLOR und ich weiße im das hier zu:
D3DCOLOR_ARGB(128,0,0,255);

Warum funktioniert das nicht?
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 08.09.2003, 07:44    Titel: Antworten mit Zitat

Was für einen Typ hat denn lpSurface? Ist das Surface auch 32 Bit?

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 08.09.2003, 12:33    Titel: Antworten mit Zitat

Ja, ist auch 32-Bit.
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 08.09.2003, 12:47    Titel: Antworten mit Zitat

Hast du mal einen Pixel gelesen und geschaut, ob der Wert sinnvoll ist. Probiere doch mal den Surface mit Rot, danach mit Grün und dann mit Blau zu füllen. Geht das?

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 08.09.2003, 13:51    Titel: Antworten mit Zitat

Meinst du jetzt, dass ich sie erst mit Rot Grün und dann Blau mit einem Alphawert füllen soll, sodass die Surface danach die Farbe Weiß hat oder so?

Egal, ob ich D3DCOLOR_XRGB oder _ARGB verwende, am Schluss habe ich immer nur ne blaue Surface. Hab den Alphawert mal auf 0,128 und 255 gehabt.
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 08.09.2003, 13:55    Titel: Antworten mit Zitat

Genau sowas wollte ich wissen. Ev. sind die Farben BGRA angeordnet, muss du mal testen...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 08.09.2003, 14:10    Titel: Antworten mit Zitat

Nein die sind anscheinend ARGB angeordnet. Kann es irgendwie sein, dass man den Alphakanal erst irgendwo freischalten muss?
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 08.09.2003, 14:16    Titel: Antworten mit Zitat

Wenn du Direct3D benutzt dann ja, steht hier irgendwo im Forum, SetRenderState(..).

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 08.09.2003, 15:00    Titel: Antworten mit Zitat

Hab im Forum und in der MSDN nun gesucht und hab zwar die zwei Aufrufe gefunden:
lpD3DDevice->SetRenderState(D3DRS_ALPHATESTENABLE,true);
lpD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,true);

aber keiner von beiden bringt die erwartete Wirkung! Sad
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 08.09.2003, 15:40    Titel: Antworten mit Zitat

Hoi,

also vielleicht hab ichs ueberlesen oder nicht richtig verstanden, also wenns so ist, bitte ignorieren. Aber WAS genau funktioniert denn oder auch nicht? Du bekommst bei Alphablending nur ne blaue Flaeche oder wie und haettest gerne Halbtransparenz?


Zuletzt bearbeitet von X-FILE am 08.09.2003, 15:43, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 08.09.2003, 15:42    Titel: Antworten mit Zitat

Ich versuche halbtransparente Pixel auf eine Surface zu malen. That's it. Laughing
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 08.09.2003, 15:43    Titel: Antworten mit Zitat

Ok dann hab ichs richtig verstanden. Wann renderst du denn die Surface? Sind noch andere Objekte im Spiel?

So hab grad noch mal nachgesehen. Ich hatte das Problem einmal bei einer Surface und bei nem Billboard mit Textur. Da passierte das Gleiche was du beschreibst. Fehler war die Renderreihenfolge. Also solltest du da mal umstellen vielleicht? Just a try....


Zuletzt bearbeitet von X-FILE am 08.09.2003, 15:47, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 08.09.2003, 15:46    Titel: Antworten mit Zitat

Naja zwischen BeginScene und EndScene
und es sind keine weiteren Objekte im Spiel.
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 08.09.2003, 15:49    Titel: Antworten mit Zitat

Hmm dann...

Aber sag mal. Nen Mischungsverhaeltniss hast du schon angegeben, oder?

Code:

m_lpD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
   m_lpD3DDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
   m_lpD3DDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);


Sollte bei dir taugen...

Man editier ich heute wieder...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 08.09.2003, 16:30    Titel: Antworten mit Zitat

Danke. Smile

Funktioniert leider aber auch nicht. Sad

Genausowenig wie das funktioniert:
Code:

lpD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
   lpD3DDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCCOLOR);
   lpD3DDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCCOLOR);

_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum