JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Texturen funktionieren nicht
Gehe zu Seite 1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
OLiver
Super JLI'ler


Alter: 33
Anmeldedatum: 29.06.2003
Beiträge: 306
Wohnort: Jena
Medaillen: Keine

BeitragVerfasst am: 31.03.2005, 17:56    Titel: Texturen funktionieren nicht Antworten mit Zitat

Hi,

ich muss nochmal nerven^^ Hab schon den ganzen Tag rumprobiert, aber ging irgendwie nicht. Sad

Hab mich entschieden das nun ohne D3DX zu machen und für 2D die XYZRHW Vertices (brauch ich mich nicht mit Matrizen herumzuschlagen) zu benutzen. Nun hab ich ein Quadrat aus einem TriangleFan gemacht und wollte ne Textur drüberlegen. Nun sieht sie aber etwas angeschlagen aus Rolling Eyes :

Orginal



Ergebnis



Die Textur ist 400x400 groß und wird nicht skaliert. Was kann das sein? Mad
_________________
http://www.sieder25.org/ (Siedler 2 - Remake)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



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

BeitragVerfasst am: 31.03.2005, 18:00    Titel: Antworten mit Zitat

Zeig mal Deine Clear-Methode. Sieht so aus als wenn Du nicht den Tiefenbuffer leerst.

edit: Achja, bitte Zweierpotenz Texturabmessungen benutzen, diverse GraKas haben damit Probleme falls die Maße nicht 2^x betragen.
_________________
'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 ]


Zuletzt bearbeitet von Patrick am 31.03.2005, 18:01, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
PeaceKiller
JLI Master


Alter: 36
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 31.03.2005, 18:01    Titel: Antworten mit Zitat

Ich würde mal grundsätzlich eine Potenz von 2 als Höhe/Breite empfehlen.

Und vielleicht stimmt auch das UV-Mapping nicht.
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine


Zuletzt bearbeitet von PeaceKiller am 31.03.2005, 20:26, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
OLiver
Super JLI'ler


Alter: 33
Anmeldedatum: 29.06.2003
Beiträge: 306
Wohnort: Jena
Medaillen: Keine

BeitragVerfasst am: 31.03.2005, 18:40    Titel: Antworten mit Zitat

Brauch ich für 2D den Z-Buffer?

Hier mal der Code um zu zeichnen:

CPP:
void DrawAll()
{
    lpDevice->BeginScene();
    lpDevice->Clear(0,0,D3DCLEAR_TARGET/*|D3DCLEAR_ZBUFFER*/,0xFF000000,0,0);
   
    lpDevice->SetTexture(0,lpTexture);
    lpDevice->DrawPrimitive(D3DPT_TRIANGLEFAN,0,2);
   
    lpDevice->EndScene();
    lpDevice->Present(0,0,0,0);
}


Wenn ich jetzt den ZBuffer lösche, wird gar nichts mehr angezeigt Sad
Naja, Texturen und Zweierpotenzen, das geht ja nicht immer ganz, was macht man da? Bei meinem Spiel hatte ich ja auch so "krumme" Werte (halt mit ID3DXSprite) und es ging auch?
_________________
http://www.sieder25.org/ (Siedler 2 - Remake)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



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

BeitragVerfasst am: 31.03.2005, 18:46    Titel: Antworten mit Zitat

Der D3DX Mist skaliert die Texturen falls sie nicht den Freuden der GraKa passen.

ZBuffer muss überall gelöscht werden, Du glaubst doch nicht im ernst das Direct3D 2D kann? Wink Nee das ist alles nur emuliert.

Achja: Lösche nie mit schwarz: 0xFF000000 sonder immer nur mit etwas helleren Farben wie z.B. Blau wenn Du mit licht experimentierst oder licht nicht deaktiviert wurde wirst du sehen warum Wink

Versuch doch mal das Culling zu deaktivieren? Vielleicht renderst du auch falschrum.

edit: wo wird der streamsource gesetzt und das FVF?
_________________
'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
JkerryZ
JLI Master Trainee



Anmeldedatum: 18.05.2004
Beiträge: 575
Wohnort: Wolfsburg
Medaillen: Keine

BeitragVerfasst am: 31.03.2005, 19:51    Titel: Antworten mit Zitat

Wenn du Paletten benutzt, ist die Palette kaputt oder kann nicht geöffnet werden.
Dann unbedingt 2er Potenz machen.
Ich habe auch schon die Merkwürdigsten Formen durch falsche Zahlen zurechtgezaubert... Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
OLiver
Super JLI'ler


Alter: 33
Anmeldedatum: 29.06.2003
Beiträge: 306
Wohnort: Jena
Medaillen: Keine

BeitragVerfasst am: 01.04.2005, 14:24    Titel: Antworten mit Zitat

Zitat:
edit: wo wird der streamsource gesetzt und das FVF?


Beim Initialisieren.
_________________
http://www.sieder25.org/ (Siedler 2 - Remake)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



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

BeitragVerfasst am: 01.04.2005, 14:31    Titel: Antworten mit Zitat

OLiver hat Folgendes geschrieben:
Zitat:
edit: wo wird der streamsource gesetzt und das FVF?


Beim Initialisieren.


Das macht man beim rendern
_________________
'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
OLiver
Super JLI'ler


Alter: 33
Anmeldedatum: 29.06.2003
Beiträge: 306
Wohnort: Jena
Medaillen: Keine

BeitragVerfasst am: 01.04.2005, 14:40    Titel: Antworten mit Zitat

Zitat:

Achja: Lösche nie mit schwarz: 0xFF000000 sonder immer nur mit etwas helleren Farben wie z.B. Blau wenn Du mit licht experimentierst oder licht nicht deaktiviert wurde wirst du sehen warum


Licht habe ich ausgeschaltet. Was soll ich in 2D mit Licht anfangen? Vorher hatte ich es auch mit Blau (0xFF0000FF) gelöscht, kam aber ungefähr dasselbe raus.

Zitat:

Der D3DX Mist skaliert die Texturen falls sie nicht den Freuden der GraKa passen.


Hat aber sonst ganz gut funktioniert :p Aber angenommen mein Spieler soll 30x100 Pixel groß sein, da kann ich das nicht einfach mal so auf 32*128 aufrunden. Wie geht man da dann ran? Oder soll ich dann den Rest mit komplett durchsitiger Farbe auffüllen? Wäre ja auch ne Lösung...


Zitat:

Wenn du Paletten benutzt, ist die Palette kaputt oder kann nicht geöffnet werden.


Ne, Paletten benutze ich nicht.

Ich werde heute mal noch ein bisschen rumprobieren, hatte bloß noch keine Zeit --> "Shoppingtag" Wink Sad

Zitat:

Das macht man beim rendern


Wieso denn das? Wird das immer wieder gelöscht? Shocked
_________________
http://www.sieder25.org/ (Siedler 2 - Remake)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



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

BeitragVerfasst am: 01.04.2005, 14:46    Titel: Antworten mit Zitat

Zu den Potenzen: Ja einfach rest für anderes benutzen z.B. für kleinere Animationen. Wo steht geschrieben das in 1 Textur nur 1 Objekt rein muss? Wink

Zum StreamSource: Kommt auf den Treiber an.
_________________
'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
OLiver
Super JLI'ler


Alter: 33
Anmeldedatum: 29.06.2003
Beiträge: 306
Wohnort: Jena
Medaillen: Keine

BeitragVerfasst am: 01.04.2005, 15:02    Titel: Antworten mit Zitat

So, die Grafik ist jetzt 256x256 groß, Cullmode ist abgeschaltet, Hintergrund ist blau, geht immer noch nicht:





Code für die DrawMethode:

CPP:
void DrawAll()
{
    lpDevice->SetFVF(D3DFVF_VERTEX);
    lpDevice->SetStreamSource(0,lpVB,0,sizeof(D3DVERTEX));
    lpDevice->SetRenderState(D3DRS_ZENABLE,1);
    lpDevice->SetRenderState(D3DRS_CULLMODE,D3DCULL_NONE);
   
    lpDevice->BeginScene();
    lpDevice->Clear(0,0,D3DCLEAR_TARGET,0xFF0000FF,0,0);
   
    lpDevice->SetTexture(0,lpTexture);
    lpDevice->DrawPrimitive(D3DPT_TRIANGLEFAN,0,2);
   
    lpDevice->EndScene();
    lpDevice->Present(0,0,0,0);
}


Und wie gesagt, wenn ich den ZBuffer lösche, wird gar nichts mehr angezeigt Sad

Zitat:

Wo steht geschrieben das in 1 Textur nur 1 Objekt rein muss? Wink


Und wie kann ich nur bestimmte Teil der Textur rendern? Mit den Texturkoordinaten? Das wird aber dann ziemlich ungenau. Embarassed
_________________
http://www.sieder25.org/ (Siedler 2 - Remake)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



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

BeitragVerfasst am: 01.04.2005, 15:08    Titel: Antworten mit Zitat

Send mir dein Projekt mal an: patrick_ullmann@web.de

oder per ICQ. Ich guck dann mal nach.

Texturkoordianten ungenau? Wink Was meinste was man damit alles für schweinereien anfangen kann? eben weil sie so genau sind? Wink
_________________
'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
KI
JLI Master


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

BeitragVerfasst am: 01.04.2005, 15:10    Titel: Antworten mit Zitat

mach mal den ZBuffer aus. Du brauchst ihn ja garnicht.

CPP:
lpDevice->SetRenderState(D3DRS_ZENABLE,0);


Oder noch besser.
Bei der Initialisierung vom D3D-Device brauchst du erst gar keinen ZBuffer zu erstellen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
OLiver
Super JLI'ler


Alter: 33
Anmeldedatum: 29.06.2003
Beiträge: 306
Wohnort: Jena
Medaillen: Keine

BeitragVerfasst am: 01.04.2005, 15:26    Titel: Antworten mit Zitat

Zitat:

Oder noch besser.
Bei der Initialisierung vom D3D-Device brauchst du erst gar keinen ZBuffer zu erstellen.


Ja, jetzt geht es! Very Happy Smile


Zitat:

Texturkoordianten ungenau? Wink Was meinste was man damit alles für schweinereien anfangen kann? eben weil sie so genau sind? Wink


Also mit Gleitkommazahlen habe ich schon schlechte Erfahrungen gemacht, besonders wenn es um jeden einzelnen Pixel geht. Dann wird ganz schnell mal 2.0 aus ungeklärten Gründen zu 1.999999999999999999999999 und die Figur schwebt einen Pixel über den Boden Wink
_________________
http://www.sieder25.org/ (Siedler 2 - Remake)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
OLiver
Super JLI'ler


Alter: 33
Anmeldedatum: 29.06.2003
Beiträge: 306
Wohnort: Jena
Medaillen: Keine

BeitragVerfasst am: 01.04.2005, 16:57    Titel: Antworten mit Zitat

Wie kann man eigentlich Alphablending bei den Texturen realisieren, also wie beim D3DXSprite die modualteColor?
_________________
http://www.sieder25.org/ (Siedler 2 - Remake)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
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, 3  Weiter
Seite 1 von 3

 
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