JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Meshes zur Optimierung in Einzelteile zerlegen
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: 10.05.2005, 14:18    Titel: Meshes zur Optimierung in Einzelteile zerlegen Antworten mit Zitat

Kennt jemand die Funktion "GetVertexBuffer()" und "GetIndexBuffer()":

Als Beispiel:
Code:

LPD3DXMESH Mesh;
LPDIRECT3DVERTEXBUFFER9 MeshVertexBuffer;
LPDIRECT3DINDEXBUFFER9  MeshIndexBuffer;

...
Mesh->GetVertexBuffer(&MeshVertexBuffer);
Mesh->GetIndexBuffer(&MeshIndexBuffer);


So würde man einen ganzen Block an Vertizes bzw. Indizes "rausziehen". Ich habe versucht, den Mesh folgendermaßen zu render:

Code:

LPDIRECT3DDEVICE9 m_lpDevice;
...//Übergabe von D3DDevicezeiger

m_lpDevice->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0,
                                  0, NumVertices,0, NumTriangles);


So gehts leider nur mit einer Textur. Und da sind wir schon bei meinem Problem: Wie muss man vorgehen, um ein X-File mit mehreren Texturen zu rendern??? Man müsste irgendwie erkennen, welche Polygone des Meshes zu welcher Textur zugeordnet sind, nur wie??
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PeaceKiller
JLI Master


Alter: 35
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

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

Zitat:
Meshes zur Optimierung in Einzelteile zerlegen


Das ist ein Widerspruch in sich. Außer du speicherst deinen gesamten Level in einem Mesh.
_________________
»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
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
LeeDiGer
Super JLI'ler



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

BeitragVerfasst am: 10.05.2005, 14:44    Titel: Antworten mit Zitat

Ok, ich hätte es vielleicht anders formulieren sollen. Am Ende soll man damit die Möglichkeit haben, ein gutes Culling und Kollisionsabfrage einzubaun.
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

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

Für die Kollisionsabfrage würde ich unter keinen Umständen das Mesh nehmen sondern Zylinder auf das Mesh legen! Und ich glaube du wirst das Culling dadurch nicht sonderlich optimieren können, weil du viel mehr Objekte gegen dein Frustum und/oder die Occluder testen musst.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
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: 10.05.2005, 15:26    Titel: Antworten mit Zitat

Man führt auch zunächst eine einfache Kollisionsabfrage mit einer Boundingsphere durch. Nur, wenn hier eine Kollision vorliegt, sollen die Vertizes alle durchgegangen werden.
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 10.05.2005, 17:01    Titel: Antworten mit Zitat

Um genau das zu vermeiden legt man normalerweise Boxen und Zylinder um die Körperteile etc. ;)
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
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: 10.05.2005, 17:15    Titel: Antworten mit Zitat

Die Taktik geht für überschaubare Objekte gut. Wenn die Objekte komplexer werden, wirds mit der Taktik schwer. Außerdem will ich das ja nicht nur für Kollisionsabfragen machen. Mit den vorgefertigten DX-Funktionieren hat man einfach zu wenig möglichkeiten. Sie reichen nur für statische Meshes aus.
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
FH
Super JLI'ler


Alter: 36
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 10.05.2005, 19:08    Titel: Antworten mit Zitat

Ich hab die Frage noch net ganz verstanden... Willst du eine Erklärung von GetIndexBuffer und GetVertexBuffer? Wohl kaum...
Ich würd spontan den ganzen Buffer kopieren... Is zwar sehr aufwändig, aber ne andere Idee hab ich net Wink
Gruß

FH
<edit>
Falsches Forum?
</edit>
_________________
goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free
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: 10.05.2005, 20:37    Titel: Antworten mit Zitat

Ich weiß nur, wie man für ein ganzes Mesh mit einer einzigen Textur mit der Methode "DrawIndexedPrimitive" rendert. Aber bei Meshes mit mehreren Texturen muss ich passen.
_________________
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: 10.05.2005, 20:39    Titel: Antworten mit Zitat

Ein Vertexbuffer in das dein gesammtes Objekt reinkommt.

für jede Textur/Material setze den indexbuffer mit den Punkten auf die mit dem Matetrial/der Textur arbeiten und rendere diese
_________________
"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
HomeLess_PunkDrummer
JLI Master Trainee


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

BeitragVerfasst am: 11.05.2005, 12:43    Titel: Antworten mit Zitat

Das war doch jetzt net so schwer... wenn de nen eigenes Format machst musste so nur einen Vertexbuffer speichern und die Punkte an denen ein Subset aufhört und der nächste anfängt...
_________________
"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
LeeDiGer
Super JLI'ler



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

BeitragVerfasst am: 12.05.2005, 21:12    Titel: Antworten mit Zitat

Die Theorie hört sich gut an. Aber hast du auch ein Quellcode Beispiel?
_________________
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: 12.05.2005, 21:17    Titel: Antworten mit Zitat

DX Samples
_________________
"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: 12.05.2005, 21:24    Titel: Antworten mit Zitat

:lol
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
HomeLess_PunkDrummer
JLI Master Trainee


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

BeitragVerfasst am: 13.05.2005, 15:27    Titel: Antworten mit Zitat

Watn lol? Stimmt doch...
Selbst gemacht is eh bessa!
_________________
"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
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