JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

VertexFarbe + Textur
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 15.07.2005, 12:30    Titel: VertexFarbe + Textur Antworten mit Zitat

Also, ich habe jetzt mal Vertexfarben hinzugefügt, die funktionieren allerdings nicht richtig. Die gelbe Textur wird einfarbig braun/orange und die blaue Textur komplett schwarz, relativ unabhängig, welche Farbe ich benutze.
Dann wollen wir mal:
VertexFormat:
CPP:
struct SpriteVertex
{
   cVector Position;
   cVector Color;//ein vector hat auch 4 varis, also, genau gut für farben
   float u;//Texturkoordinaten
   float v;
};
cVector=Klasse mit 4 float's

Erstellen der Vertices:
CPP:
SpriteVertex SpriteV[4];
SpriteV[0].Position=cVector(Position.x, Position.y, 0.5f, 1.0f);
SpriteV[0].u=0.0f;
SpriteV[0].v=0.0f;
SpriteV[0].Color=Color;
die weitern 3 hab ich halt weggelassen

und das Rendern:
CPP:
m_Device->SetRenderState(D3DRS_LIGHTING, false);
   m_Device->SetTexture(0, m_lpTexture);
   m_Device->SetFVF(D3DFVF_XYZW | D3DFVF_DIFFUSE | D3DFVF_TEX1);

   m_Device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
   m_Device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_DIFFUSE);
   m_Device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_TEXTURE);
   m_Device->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, SpriteV, sizeof(SpriteVertex));


Jemand ne Idee? Achja, Color=cVector(1, 0.5, 1, 0). Hab schon diverses andere ausprobiert manchmal wurde alles komplett schwarz. Achja, wenn ich ColorOp auf ADD setzte wirds pink und gelb, aber die Struktur der textur ist überhaupt nciht zu sehen, also sehr einfarbig.[/code]
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 15.07.2005, 12:34    Titel: Antworten mit Zitat

Ne Klasse verwendest du da? Das könnte probleme mit dem Stride geben, verwende lieber einfachere Typen float color[4] zum Beispiel.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 15.07.2005, 12:40    Titel: Antworten mit Zitat

was issn Stride?

Naja, es hat als ich nur die Positionen hatte ja auch geklappt ist halt die selbe Klasse, und da gings noch. Ich hab jetzt auch nochmal an diversen Faktoren rumgespielt, akmen immer sehr interessante Farben raus, nur halt keine Textur. Ich könnte fast wette das die texturkoordinaten pfutsch sind, also zum beispiel überall auf 0 sind oder so, so dass es als Resultat einfarbig wird.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

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

Stride ist der Abstand zwischen den einzelnen Elementen.

Das hier musst du noch aktivieren hast du das?
CPP:
SetRenderState( D3DRS_COLORVERTEX,    TRUE );

_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 15.07.2005, 12:58    Titel: Antworten mit Zitat

Der Abstand zwischen den einzelnen Elementen wird doch beim Rendern
CPP:
   m_Device->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, SpriteV, sizeof(SpriteVertex));
mit dem letzen Paramter gesetzt. Und:
Zitat:

D3DRS_COLORVERTEX
TRUE to enable per-vertex color or FALSE to disable it. The default value is TRUE.
Aus der Doku, also brauchte ich das nicht. Wenn ichs ausschalte, passiert übrigens auch nix...
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 15.07.2005, 13:52    Titel: Antworten mit Zitat

entferne einfach mal die W Koordinate. Nur so als Theorie
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 15.07.2005, 14:19    Titel: Antworten mit Zitat

ausm FVF? Oder soll ich mir jetzt ne ganz neue Vektorklasse machen, mit nur 3 varis?
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 15.07.2005, 14:25    Titel: Antworten mit Zitat

Beides, sonst gibts nur noch mehr Probleme.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 15.07.2005, 14:36    Titel: Antworten mit Zitat

Wie oft habe ich eigentlich schon geprädigt das eine Vektorstruktur nichts in einer Vertexstruktur zu suchen hat? ich glaub das war schon mehr als 5x Rolling Eyes
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
HomeLess_PunkDrummer
JLI Master Trainee


Alter: 36
Anmeldedatum: 28.11.2004
Beiträge: 583
Wohnort: Alter Joghurtbecher an der A4
Medaillen: Keine

BeitragVerfasst am: 15.07.2005, 18:06    Titel: Antworten mit Zitat

Alter, die Farbe hat ein
CPP:
unsigned long
zu sein. Am besten so:
CPP:
float x, y, z;
unsigned long Color;
float tu, tv;


Davon geht d3d aus. Steht afaik auch in der Doku Rolling Eyes

Gruß
_________________
"Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 15.07.2005, 18:45    Titel: Antworten mit Zitat

oh ja, hatte das mit:

typedef struct _D3DCOLORVALUE {
float r;
float g;
float b;
float a;
} D3DCOLORVALUE;

verwechslet, welches man für Materialien und so als Farbangabe braucht Embarassed
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 15.07.2005, 19:18    Titel: Antworten mit Zitat

so, das ging jetzt einigermaßen, jetzt wollte ich Alphablending einbauen:
CPP:
   m_Device->SetRenderState(D3DRS_ALPHABLENDENABLE, true);
   m_Device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
   m_Device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
   m_Device->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_SUBTRACT);

So, ich habe bei der Vertexfarbe den Alphawert verändert, aber kein Alphablending. Was ist jetzt noch falsch?
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 15.07.2005, 20:53    Titel: Antworten mit Zitat

Wieso D3DBLENDOP_SUBTRACT?
Haben die Bilder einen Alphachannel und wurde dieser überhaupt exact gefüllt/geladen?
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 15.07.2005, 21:20    Titel: Antworten mit Zitat

der alphawert soll nur von der Vertexfarbe kommen, die Texturen haben keinen geladenen, ich galbue die sind auch nur 24 bit, vielelicht auch 32. Das Subtract war nurn Test hatte da auch schon Add.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 15.07.2005, 21:27    Titel: Antworten mit Zitat

Von welchem Typ ist die Textur? Das legst du beim Erstellen oder Laden fest.
X8R8G8B8 oder A8R8G8B8? Probier mal A8R8G8B8...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL 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