Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 10.05.2005, 14:18 Titel: Meshes zur Optimierung in Einzelteile zerlegen |
|
|
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 |
|
|
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 10.05.2005, 14:31 Titel: |
|
|
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 |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 10.05.2005, 14:44 Titel: |
|
|
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 |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 10.05.2005, 15:10 Titel: |
|
|
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 |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 10.05.2005, 15:26 Titel: |
|
|
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 |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 10.05.2005, 17:01 Titel: |
|
|
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 |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 10.05.2005, 17:15 Titel: |
|
|
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 |
|
|
FH Super JLI'ler
Alter: 36 Anmeldedatum: 16.10.2004 Beiträge: 438
Medaillen: Keine
|
Verfasst am: 10.05.2005, 19:08 Titel: |
|
|
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
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 |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 10.05.2005, 20:37 Titel: |
|
|
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 |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 10.05.2005, 20:39 Titel: |
|
|
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 |
|
|
HomeLess_PunkDrummer JLI Master Trainee
Alter: 36 Anmeldedatum: 28.11.2004 Beiträge: 583 Wohnort: Alter Joghurtbecher an der A4 Medaillen: Keine
|
Verfasst am: 11.05.2005, 12:43 Titel: |
|
|
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 |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 12.05.2005, 21:12 Titel: |
|
|
Die Theorie hört sich gut an. Aber hast du auch ein Quellcode Beispiel? _________________ Kein Rückzug! Kein Aufgeben! |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 12.05.2005, 21:17 Titel: |
|
|
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 |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 12.05.2005, 21:24 Titel: |
|
|
:lol _________________ Kein Rückzug! Kein Aufgeben! |
|
Nach oben |
|
|
HomeLess_PunkDrummer JLI Master Trainee
Alter: 36 Anmeldedatum: 28.11.2004 Beiträge: 583 Wohnort: Alter Joghurtbecher an der A4 Medaillen: Keine
|
Verfasst am: 13.05.2005, 15:27 Titel: |
|
|
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 |
|
|
|