JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Quads
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
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 01.10.2003, 21:45    Titel: Quads Antworten mit Zitat

Wenn ich mit herkömmlichen Sprites arbeite, habe ich das problem, dass ich bei jedem Sprite die Oberfläche sperren muss. Das kostet Zeit. Im 3Dbereich, kann man viele Punkte "in einem Rutsch" zeichen und sperrt die Oberfläche nur einmal. Das Ergebnis wäre z.B. ein Sternenfeld mit z.B. 10000 Punkten. und 10000mal die Oberfläche sperren würde auch zuviel zeit kosten. Kann man auch Quads in einem Rutsch zeichnen? Ich weiß nur wie das bei Punkten aussieht. Wenn ja: wie sieht das dann aus?
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 02.10.2003, 09:33    Titel: Antworten mit Zitat

Hallo,

meinst du mit Quads das gleiche wie ich? Naemlich ein aus 2 Dreiecken zusammengesetztes Viereck?

Wenn ja, dann zwar schon, aber das kostet dich eine immense Rechenzeit. Da ist einmal Oberflaeche sperren und wieder entsperren ja nix gegen... ??
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 02.10.2003, 09:42    Titel: Antworten mit Zitat

Ja. Genau die meine ich. Also du glaubst, Quads sind langsamer als normale Sprites, oder wie siehst du das?
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


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

BeitragVerfasst am: 02.10.2003, 10:36    Titel: Antworten mit Zitat

Er meint damit das jeder Draw befehl extrem viel Zeit kostet. Deshalb solltest du einen Indexbuffer für gleiche Quads erstellen und mit diesem Indexbuffer alle gleichen Objekte auf einmal rendern. Mit DrawIndexedPrimtive.
_________________
"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
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 02.10.2003, 10:42    Titel: Antworten mit Zitat

Mhm... genau das meinte ich Wink

Allerdings:
Einerseits geht es bei sagen wir 20 Quads im Bild nicht so sehr an die Speed. Bei deiner genannten Zahl oben (10000 Punkte?) allerdings hilft dir auch kein Indexbuffer mehr. Das ist zwar alles drinnen, laesst aber nicht mehr viel Platz in deiner Performance. Meiner Meinung nach.

Natuerlich nur, wenn entweder die Punkte 10000 Punkte/4 (doppelte an den Ecken nicht gerechnet) = 2250 Quads ergeben oder gar 10000 Quads ergeben sollen?? Man muesste jetzt wissen, was du damit vorhast. Ein Starfield wuerd ich nach wie vor mit Surfaces machen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


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

BeitragVerfasst am: 02.10.2003, 10:45    Titel: Antworten mit Zitat

Wenn du dann noch für jedes Quad das du zeichnen willst ein Statechange durchführst (zb Transparenz aktvieren,...) dann geht die Performance noch extremer in den Keller.
_________________
"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
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 02.10.2003, 11:07    Titel: Antworten mit Zitat

Ich will ja jetzt mit Quads auch keine einzelnen Punkte malen, schon gar nicht 10000. Ich will jetzt z.B. 20 gleiche Raumschiffe und 50 gleiche Laserstrahlen zeichnen. Hat jemand vielleicht ein Beispiel dafür, wie das aussehen könnte? Wie gesagt: bei Punkten wüsste ich noch wie das geht. Einzelne Quads kann ich auch, aber jetzt in einem Rutsch wie bei den Punkten könnte ich noch nicht.
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 02.10.2003, 11:29    Titel: Antworten mit Zitat

Hmm?

Also du willst Primitives, in dem Fall Quads dazu verwenden, um in einem eigentliche 2D Spiel deien Raumschiffe und Laser zu zeichnen? Halte ich persoenlich fuer keine gute Idee, da dir das Null Vorteile bringt. Ich benutze Quads um ein 3D-Partikelsystem zu animieren und so. Da hat man ein festes State und ein festes Quad und das lohnt sich.

Solltest du das ganze in 3D machen, frage ich mich, wieso deine Modelle keine Meshes sind und deine Laser keine Lines? Ok.. gut bei den Lasern wuerd ich mir auch Billboards eingehen lassen, wenn sie gut aussehen sollen.

Ist es aber originaer ein 2D-Spiel, bleib doch bei Sprites? Ich habe keine Messungen durchgefuehrt, aber ich denke die sind wesentlich schneller fuer den Zweck als Billboards oder in deinem Fall Quads?

Ansonsten zu deiner Frage, die ich glaube ich nur halb verstanden habe:
Ich wuerde einmal alle Quads zu Beginn des Programms erzeugen (oder wann du es eben brauchst), in einen Index/Vertexbuffer schreiben und dann per SetStream und DrawIndexedPrimitiveUp zeichnen. So in etwa grob...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 02.10.2003, 16:43    Titel: Antworten mit Zitat

Mit dem Befehl DrawIndexedPrimitiveUp konnte man ja mit einer Pointlist ne bestimmte Anzahl an Punkten zeichnen. Den musste man auch nur einmal ausführen. Ich hab auch mal geschaut wie das ist, wenn man den befehl 10000mal ausführt und dann jedesmal nur einen Punkt zeichnet. es war viel langsamer. Kann man das nicht auf Quads übertragen? Oder ist es nur möglich diese einzeln zu zeichnen?
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


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

BeitragVerfasst am: 02.10.2003, 18:08    Titel: Antworten mit Zitat

Wenn du anstatt Quads nur Punkte zeichnen willst dann nutze den FillStyle POINTS damit kannst du auch PointSprites zeichnen was ideal für Partikeleffekte ist.

Mal ne Frage: Wie mache ich aus Quads Billboards ? Bei mir läuft das nicht mehr und weis echt nicht wie das geht.
_________________
"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
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

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

Hallo,

Quad -> Billboard

Textur drauf (mit Alphawerten), Alphatesten enablen, Billboard immer zur Camera aurichten, fertig.

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Fallen
JLI MVP
JLI MVP


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

BeitragVerfasst am: 02.10.2003, 18:47    Titel: Antworten mit Zitat

Wie richte ich das genau auf die camera auf ? Einfach die Rotationsdaten übergeben ? So mach ich es ja auch aber ab und zu drehen sich die Dinger falsch.
_________________
"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
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 02.10.2003, 18:56    Titel: Antworten mit Zitat

Hmmm also ich mache das so, ja. Ich uebergebe die aktuellen Rotationsdaten der aktiven Kamera und Ende. Funktioniert einwandfrei.

Wie drehen sich die denn falsch??
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


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

BeitragVerfasst am: 02.10.2003, 19:03    Titel: Antworten mit Zitat

Ich glaub das ich den fehler gefunden habe: Meine Rotationsmatrix arbeitete mit -Y bei der Drehung.
_________________
"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
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 21.08.2004, 17:29    Titel: Antworten mit Zitat

Wie berechnet man denn die Y-Achse des Billboards?
Ich hab zunächst die Z-Achse aus Start und Endpunkt berechnet. An die X-Achse würde ich dann mit dem Kreuzprodukt aus Z- und Y-Achse kommen. Aber an der Y-Achse scheiterts noch bei mir.
_________________
Kein Rückzug! Kein Aufgeben!
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 -> 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