Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 12.09.2005, 19:24 Titel: IndexBuffer eines Mesh auslesen |
|
|
Wie komme ich an die Daten aus dem IndexBuffer eines D3DXMesh?
schon klar ist mit ->LockIndexBuffer, allerdings bekomme ich dann nur irgendwelche völlig wirren werte.
Außerdem sind ja in einen XFile quasi Namen mit gespeichert.
Beispiel:
CPP: | Mesh Plane011 {
25;
-50.218338;0.000000;-29.912661;,
usw.
|
Kommt man an den Namen "Plane011" irgendwie ran? _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 12.09.2005, 19:31 Titel: |
|
|
Was für wirre Werte gibt dir denn LockIndexBuffer Buffer und wieso?
LockIndexBuffer will beim 2ten Flag nen pointer, am besten einen auf nen DWORD Array oder vergleichbares, dann sollte der Zugriff auf die Array elemente relativ einfach sein:
index[i]...
Der Name den du da auslesen möchtest ist üblicherweise entweder der Name des Submeshs oder auch des Surfaces. Wie du den bekommst weiss ich im mom nicht. _________________ "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 |
|
|
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 12.09.2005, 19:51 Titel: |
|
|
na ich bin schon weitergekommen. Allen Anschein nach funktionierts jetzt.
Hier ist wie ich's jetzt gemacht habe:
CPP: | if(SUCCEEDED(m_pMesh->GetIndexBuffer(&m_lpIB))) {
int numIndices = (int)m_pMesh->GetNumFaces() * 3;
short *indicesD3DX = 0;
if(FAILED(m_pMesh->LockIndexBuffer( D3DLOCK_READONLY, (void**) &indicesD3DX )))
MessageBox(0,"Mist","Fehler",MB_OK);
int *iIndices = new int[numIndices];
for(int i=0; i < numIndices; i++) {
iIndices[i] = (int) indicesD3DX[ i ];
}
}
m_lpIB->Release();
|
Also falls noch jemand weiß wie man an den namen rankommt, ich wär für Info's dankbar _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 12.09.2005, 20:09 Titel: |
|
|
Sieht nicht so aus als ob man den Namen des Submeshs herstellen könnte.
Das einzig wichtige was du bekommen kannst ist eine Attribut tabelle der einzelnen Subteile GetAttributeTable nur gibts da kein String. _________________ "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 |
|
|
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
Verfasst am: 13.09.2005, 08:14 Titel: |
|
|
Ich lese die Meshdaten durch eigene Implementierung aus. Also in X-File nach Templates suchen und dann die Daten extrahieren. Ist ein bisschen kompiziert aber sehr flexibel. Im 2.Buch von Zerbst wird's beschrieben wie man das macht. Schau dir auch die X-File Referenz in der DX9-Doku an.
Viel Erfolg! |
|
Nach oben |
|
|
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 13.09.2005, 08:35 Titel: |
|
|
Also gehst du das XFile wirklich Zeilenweise durch? Leider hab ich das Zerbst Buch nicht. Kannst du das empfehlen? _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
|
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
Verfasst am: 13.09.2005, 12:02 Titel: |
|
|
nein nicht zeilenweise. da gibts ein befehl mit dem du nach bestimmten templates in X-file suchst, die durch DX9 bereits vordefiniert sind. Das Template ist so zu sagen wie eine Struktur(ist es aber nicht) in der dann z.B. verschiedene indos über den Mesh stehen.
Das 2.Buch von Zerbst kann ich dir emphehlen, vor allem wenn du Outdoor -Spiele proggen willst. Der Code von Zerbst ist aber sehr sehr schlecht lesbar u.a. wegen schlechter Formatierung.
Das 1.Buch ist veraltet und ist nicht zu empfehlen.
Das 3.Buch ist sehr gut, ist aber nur für wirklich fortgeschrittene Progger unter uns geeignet(ich kann mich noch nicht dazu zählen). |
|
Nach oben |
|
|
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 13.09.2005, 18:31 Titel: |
|
|
Dann muss ich mir das wohl doch noch zulegen.. obwohl ich den Preis von über 50,- EUR ganz schön gepfeffert finde... naja... wat soll man da machen...
Nochmal ne Frage am Rande: habt ihr schonmal nen XFile oder anderes 3D Modell in ein eigenes Dateiformat gepackt? Wie habt ihr das mit der Kollisionserkennung gelöst? ich kann doch jetzt nicht permanent hingehen und mit den Indices die Dreiecke zusammenbasteln und diese dann auf Kollision testen. Und das ganze zu Kollisions-Test-Zwecken vorberechnet abspeichern macht die Sache ja nun auch nicht wirklich besser....?!?! _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 13.09.2005, 19:10 Titel: |
|
|
Maxim hat Folgendes geschrieben: | Das 3.Buch ist sehr gut, ist aber nur für wirklich fortgeschrittene Progger unter uns geeignet(ich kann mich noch nicht dazu zählen). |
Jo sehr gut wenn man folgendes für sein gutes geld bekommen will:
1. Verbuggter Beta Code auf der CD
2. Fehlerhafter Code im Buch
3. Total sinnlose ISSE instruktionen die ordentlich auf Performance gehen
4. Absolut alte und auskommentierte Codereste auf der CD (Ja da hat wer seine Tests nicht weggemacht!)
5. Schlechte Portalengine (mal ehrlich, einen algo hatte ich mir vorgestellt und nicht alles per Hand!)
6. Schlecht konzipierte Enginearchitektur (Jaja, Zerbst der OOP Fan - zum heulen)
Sorry, aber dieses Buch war für mich die größte Fehlinvestition die es gab und es hat sehr geschmerzt, vorallem da die Theorie fürn Hintern war im gegensatz zum 1. und 2.
Achja, das 1. ist nicht veraltet sondern eine der besten Grundlagenbücher die es gibt. _________________ '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 |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 13.09.2005, 19:13 Titel: |
|
|
naja, X-File ist halt X-File die beste Lösung ist immer noch selber einen Loader zu schreiben, da kannste dann ALLES mit machen.Und wenn dus jetzt vorgefertig haben willst, es gibt auch auch komplette Freeware engines, die auch Modelle laden und auf Kollision testen können usw. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 13.09.2005, 19:25 Titel: |
|
|
Schreib dir am besten wirklich nen eigenen loader, am besten bastelste dir gleich nen exportplugin für den Modeller deiner Wahl (geht in 3dsmax wirklich super). So haste genug möglichkeiten dich voll zu entfalten.
Das XMLFormat bietet sich doch da wunderbar an.
Kannste schön Specular, Diffuse, Bump/Normal, Reflectionmaps abspeichern (als Filenanme), Texturwerte, Specularwerte, Farbwerte, mehrer texturkoordinaten, etc. abspeichern. _________________ "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 |
|
|
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 13.09.2005, 19:33 Titel: |
|
|
Also im Moment bastel ich gerade an einer Lösung halt ein XFile in ein eigenes Format zu wandeln (man will ja klein Anfangen und nicht gleich mit 3ds_max ) Daher auch die Frage wie man das am geschicktesten hinterher mit der Kollisionserkennung löst. Allerdings wenn ich das beim umsehen im netz richtig verstanden habe ist es doch gar nicht mal so untypisch zur kollisionserkennung jedes einzelne dreieck aus den indizes zusammen zu setzen und dann auf treffer zu testen.... _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 13.09.2005, 19:42 Titel: |
|
|
Nen Tut wie man ein eigenes Format erstellt klingt sehr interessant. Könnte man ja machen dann hat man immer was parat wenn jemand danach fragt.
nutzt du denn 3dsMax? Von da in nen eigenes Format ist einfacher als aus nem X nen eigenes Format da beim X ne menge Zusatzinformationen verloren gehen. _________________ "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 |
|
|
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 13.09.2005, 20:03 Titel: |
|
|
Nen tut wäre super...
also im Moment hab ich fast nur mit xFiles gearbeitet. Für 3dsmax gibt's doch richtige sdk's wenn ich das richtig gesehen habe?! So wirklich mit beschäftigt hab ich mich damit nicht.
Hast du da nähere Info's drüber Fallen? _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 13.09.2005, 20:06 Titel: |
|
|
In 3dsMax haste eine integrierte Scriptsprache die sollte fürs Exportieren auch geeignet sein. Das SDK kostet Geld (nen par tausender wenn ich recht informiert bin).
Zu maxScript (die Scriptsprache von 3DsMax) sollte es eine Docu geben im Help Verzeichniss oder woanders. Zumindest gabs das noch zu 3dsMax3 Zeiten. _________________ "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 |
|
|
|