AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi DirectX: Objekte laden
Thema durchsuchen
Ansicht
Themen-Optionen

DirectX: Objekte laden

Ein Thema von Florian H · begonnen am 29. Jun 2003 · letzter Beitrag vom 14. Jul 2003
Antwort Antwort
Seite 1 von 2  1 2      
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#1

DirectX: Objekte laden

  Alt 29. Jun 2003, 13:46
Hi,

wie kann ich in mein Delphiprojekt zur Laufzeit ein 3D-Objekt in einer der bekannten Formate (.3ds, .x,...) laden um es danach zu verwenden!


Viele Grüße
DK
Florian Heft
  Mit Zitat antworten Zitat
Benutzerbild von braingrenade
braingrenade

Registriert seit: 30. Okt 2002
Ort: Neufra
274 Beiträge
 
Delphi 6 Personal
 
#2
  Alt 29. Jun 2003, 15:22
Moin Florian !

Da gibts beispiel files die bei delphix dabei sind(wenn dus mit delphix machen willst), ich hab sie hier mal angehängt.
Angehängte Dateien
Dateityp: zip samples.zip (305,5 KB, 25x aufgerufen)
Let the sun beat down upon my face
Stars fill my dream
I am a traveller of both time and space
To be where I have been ________________ Such A Surge
  Mit Zitat antworten Zitat
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#3
  Alt 29. Jun 2003, 15:50
Hi,
danke aber ich würds gern mit DirectX8 machen!
Also keine spez. Kapselung!

gruß dk
Florian Heft
  Mit Zitat antworten Zitat
Benutzerbild von braingrenade
braingrenade

Registriert seit: 30. Okt 2002
Ort: Neufra
274 Beiträge
 
Delphi 6 Personal
 
#4
  Alt 29. Jun 2003, 16:09
Aso , da kenn ich mich net aus.
Let the sun beat down upon my face
Stars fill my dream
I am a traveller of both time and space
To be where I have been ________________ Such A Surge
  Mit Zitat antworten Zitat
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#5
  Alt 30. Jun 2003, 06:21
Aber das muss doch irgendwie gehen
Schließlich ist das ja ein wirklich wichtiger Teil der 3D-Programmierung denn ich kann ja nicht z.B. ein Auto oder eine Landschaft komplett in ner Unit (von Hand) machen, das wär ja wahnsinn!
Florian Heft
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#6
  Alt 2. Jul 2003, 16:39
Wenn es sich um das .x-Format handelt (und das SDK enthält Tools zur Konvertierung von 3ds nach .x), hast du folgende Möglichkeiten:
1. Lade die X-Datei von Hand mit dem IDirectXFile-Interface. Wie das geht, steht im SDK bzw. in den Samples. Ist die flexibelste, aber auch komplexeste Möglichkeit
2. Lade die x-Datei einfach mit D3DXLoadMeshFromX bzw. den ähnlichen Funktionen wie D3DXLoadSkinMeshFromXof. Auch hier ist im SDK alle nötige Information enthalten, bzw. eine Suche nach diesen Schlüsselwörtern liefert Tutoriale. Diese Methode ist wesentlich einfacher, man hat aber einige Probleme mit mehreren Animationen in einer Datei etc.

Ich empfehle für den Anfang oder wenn du keine Animationen brauchst die zweite Methode, letztendlich solltest du aber die erste einsetzen.

Davon abgesehen kannst du dir im Common Files Framework bzw. in einigen Samples enthalten die Klasse CD3DMesh (oder so ähnlich) anschauen, die eine Kapselung der Mesh-API darstellt.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#7

Re: DirectX: Objekte laden

  Alt 10. Jul 2003, 12:02
Wo gibts das Konvertierungsteil von 3DS nach X?
Hab gegooglet und nix gefunden, bei MS auch nicht ;(
Florian Heft
  Mit Zitat antworten Zitat
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#8

Re: DirectX: Objekte laden

  Alt 10. Jul 2003, 12:12
OK, hab eines (http://francis.dupont.free.fr/coindev/conv3ds.exe), nur jetzt hab ich Probs das zu laden (kapiere die PArameter von D3DXLoadMeshFromX nicht wirklich....
Florian Heft
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#9

Re: DirectX: Objekte laden

  Alt 10. Jul 2003, 13:13
conv3ds.exe ist Bestandteil des DirectX SDKs, muss wenn ich mich recht erinnere jedoch explizit mitinstalliert werden. Es gab auch einige Versionen des SDKs, wo es nicht dabei war... Wie auch immer, im Full SDK sollte es drin sein, und bei den "Extras", die man auch auf der DirectX-SDK-Downloadseite bekommt, sind auch noch Plugins für 3dsmr3 etc.

Was die Aufrufe angeht: Daher mein Tip, in die Samples bzw. in die Common Files zu gucken ;c)

Ist hier von DirectX 9, aber ich glaube, da hat sich nicht so viel geändert...
Code:
HRESULT D3DXLoadMeshFromX(          LPCTSTR pFilename,
    DWORD Options,
    LPDIRECT3DDEVICE9 pDevice,
    LPD3DXBUFFER* ppAdjacency,
    LPD3DXBUFFER* ppMaterials,
    LPD3DXBUFFER* ppEffectInstances,
    DWORD* pNumMaterials,
    LPD3DXMESH* ppMesh
);
pFileName ist hoffentlich klar, und pDevice hoffentlich auch.
Die drei Puffer werden von der Funktion erzeugt, und du musst lediglich die Zeiger zur Verfügung stellen (also vom Typ Zeiger auf Zeiger auf ID3DXBuffer).
pNumMaterials, da übergibst du den Zeiger auf ein DWORD, das ist also ein Ausgabeparameter, der die Anzahl der Materials in ppMaterials angibt.
ppMesh ist das eigentlich Mesh-Teil, was du am Ende haben willst. Auch hier übergibst du lediglich den Zeiger auf einen ID3DXMesh-Zeiger.

Noch Fragen?
Dann schau dir bitte die Samples und die Common Files aus dem SDK in aller Ruhe an. Wenn danach immer noch Fragen sind, versuche ich natürlich trotzdem, sie zu beantworten, aber du siehst schon an der Komplexität des Ladens, dass das kein Thema ist, wo man so leicht eine fertige Lösung hat, da musst du dich selbst wenn du dich einigermaßen mit sowas auskennst einige Zeit mit beschäftigen...
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#10

Re: DirectX: Objekte laden

  Alt 10. Jul 2003, 17:21
Hi,

danke erstmal für deie Hilfen, hat mir sehr weitergeholfen, ich glaube jetzt, das Objekt geladen zu haben!
Nur finde ich jetzt nirgends wo eine Möglickeit, das Ding auf den Bildschirm zu bringen
In annahme dass das geht hoffe ich auf eine Lösung


viele grüße
flo
Florian Heft
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz