![]() |
3D Punkte
Hi Ho,
ich schreibe und probiere mich gerade an einem Neuronalen Netz und möchte die Neuronen gern über DirectX (oder openGL) 3D darstellen lassen. Ich habe mir dazu erstmal das DirectX Interface "xorDX8" runtergeladen. Allerdings komm ich nun nicht weiter, da ich es bisher nicht hinbekommen hab, einen Quader zu erstellen, oder einen kleinen Punkt im Raum oder eine 3D-Linie. In der dazugehörigen Hilfe hab ich bisher dazu auch nichts gefunden. Geht das überhaupt mit dem xorDX8? bzw. wie würdet ihr am einfachsten Punkte (in DirectX oder OpenGL) 3D darstellen? (ich habe Delphi 5) Beste Grüße, Thomas |
Re: 3D Punkte
Moin,
ich arbeite mich auch zur Zeit in DirectX ein. Als ertes würde ich dir raten auf DirectX 9 umzusteigen. Die nötigen DLL's und Units findest du hier: ![]() ![]() Ebenfalls von Martin Pyka kommt das grandiose SelfDXD (was zwar auf DirectX 8 aufbaut, sich aber fast 1:1 nach DirectX 9 portieren lässt). Dort solltest du eigentlich schnell fündig werden. Ich hoffe ich konnte dir ein wenig helfen. :hi: |
Re: 3D Punkte
ah ja, danke für die info Pierre!
hab es eben mal in delphi installiert und mir das SelfDXD angeschaut. die Initialisierung und das ändern der Bildschirmauflösung klappt schonmal. Nur habe ich bisher keine Funktion gefunden, mit welcher man einen einfachen Quader oder eine Kugel oder sonstwas erstellen kann. Und ich nehme mal nicht an, dass man solche Grundformen selbst aus den 3ecken zusamensetzten muss oder? :) |
Re: 3D Punkte
Naja, die Körperdarstellung unter DirectX ist nicht gerade mal so leicht. Hier ist ein Beispiel das dir aber alles sehr stark verdeutlichen sollte. Es wird ein kompletter 3D-Raum (auch ein Quader) erstellt. Lad dir das Tutorial runter. Viel Spass ;)
![]() |
Re: 3D Punkte
hm, bei mir kommt leider immer folgender fehler:
[Fehler] Unit1.pas(19): Ungenügende Forward- oder External-Deklaration: 'TForm1.FatalError' und zeile 19 iat diese hier: procedure FatalError(hr : HResult; FehlerMsg : string); eigendlich genau so wie beschrieben. hattest du das problem auch oder weißt du, wie man es beheben kann? |
Re: 3D Punkte
Hm, bei mir funktioniert alles.
Hast du dir die Beispieltexte runtergeladen oder nur das Tutorial (den Source) abgeschrieben ? Mit den Beispielquelltexten funktioniert jedenfalls alles tadellos. |
Re: 3D Punkte
ja, du hast recht, hab den code aus dem tutorial rauskopiert und da eine procedure vergessen. jetzt gehts *freu*
sag mal, bist du eigentlich per icq erreichbar? hab dir mal eine PN mit meiner icq nummer geschickt |
Re: 3D Punkte
Sehr gut funktioniert auch die
![]() Falls Dir DirectX mehr zusagt, kann das ![]() |
Re: 3D Punkte
Zitat:
|
Re: 3D Punkte
Zitat:
|
Re: 3D Punkte
Obwohl ich ja sonst Brot und OpenGL predige würde ich auch Windis Aussage unterstützen und einen Blick auf GLScene werfen. Gerade wenn es Dir primär um die Darstellung von einigen Figuen geht, wird dies vermutlich der leichteste und effizienteste Weg für dein Problem sein. OpenGL bietet von Haus aus eine Funktion um einen Punkt zu zeichnen
Delphi-Quellcode:
D3D bietet sogenannte PointSprites, die dem in etwa gleich kommen sollten. Sofern Du aber nicht wirklich Interesse hast einer der beiden APIs zu erlernen, wird GLScene wohl ein guter Kompromiss sein.
GLBegin(GL_POINTS);
glVertex3f(0,0,0); GLEnd(); |
Re: 3D Punkte
ah, danke für den tipp! was ich bisher von GLSzene gehört hab, klingt eignetlich genau nach dem, wonach ich gesucht habe. hab mir das also mal runtergeladen aber irgendwie evtl. falsch "installiert".
nun läuft das erste demo zwar, das zweite und dritte aber nicht, da er die komponente "Variants" nicht findet. hat die überhaupt irgendwas mit glszene zutun? (denn ich kann eine entsprechende *.pas datei in den gls-ordnern nicht finden. ich hab allerdings zum einbinden von glscene auch nur in den umgebungsoptionen>bibliothek die bibliothekspfade der einzelnen glszene ordner hinzugefügt. das erschien mir aber ein bischen umständlich, da man auch alle unterordner angeben musste, bis das ganze mit der Demos.bpg lief. gibts da eine einfachere variante? (sorry, hab mit komponenten einbinden bisher recht wenig gemacht) |
Re: 3D Punkte
Also ich bin ja auch kein GlScene-Nutzer, aber laut FAQ der Page sollte es reichen das Package einzubinden. Variants ... ja, was für eine Delphi-Version verwendest Du den? Klingt nun nach einer eher alten. Variants ist ein "Anpassungsfähiger Variablen-Typ" der IMAO mit D4/D5 eingeführt wurde und auch dort standardmäßig eingebunden wird (lange ists her...). Evtl. diesen einmal entfernen, sofern er nur als Unit eingebunden wird und nicht wirklich verwendet wird. Unter Version 4 von Delphi scheint GlScene wohl nicht zu laufen.
|
Re: 3D Punkte
Um GLScene zu installieren musst Du die entsprechenden Packages, die zu Deiner Delphi-Version gehören, kompilieren und installieren. Dazu benötigt Delphi jedoch den Pfad des ..\Source-Ordners und dessen Unterordner(leider). Bestimmte Packages verlangen zusätzlich noch DLL´s (bass.dll, ode.dll, ...). Diese sind ebenfalls in den Unterordnern zu finden. Einfach in den Windows\System32 Ordner kopieren.
Die Variants.pas ist, wie Phobeus schon sagte für variante Datentypen zuständig. Sie ist in Win32-Anwendungen ab Delphi 7 standardmäßig enthalten (eventuell auch ab Delphi 6, weiß ich nicht genau). Diese Anwendungen lassen sich aber auch mit allen vorhergehenden Delphi-Versionen kompilieren (falls sie nicht von Datentypen dieser Unit gebrauch machen), indem man einfach den Variants Eintrag in der uses-Klausel löscht. |
Re: 3D Punkte
ok, hab mir nun delphi 7 zugelegt und damit klappts ohne probleme. finde ich echt klasse, dass man nicht viele befehle braucht um etwas darzustellen. ich danke euch für eure hilfe, ist genau das, was ich gesucht habe :-D :-D :-D
|
Re: 3D Punkte
Hallo,
also als Autor von ![]() In der Hilfe gibts einen CrashKurs, der solche Fragen beantworten sollte. Weiterhin sind jede Menge Beispiele mitgeliefert, die die Benutzung veranschaulichen, zum anderen gibt es vorgefertigte Objekte wie TxorDXBall oder TxorDXMultiMap, mit denen man sich manuelles Erstellen erspart. Darum gehts nämlich gerade beim Wrapper xorDX8: Man erspart sich in vielen Details das zu tiefe Einarbeiten in DirectX. ![]() Es freut mich jedoch, dass Du für Dein Problem eine Lösung gefunden hast. MfG xor alias Schmorbraten ps: xorDX8 kann man selbstverständlich mit DirectX9 benutzen. Nur eben nicht die neu hinzugekommenen features. |
Re: 3D Punkte
die Variants.pas is ab Delphi6 standardmäßig mit dabei...
Delphi4 wird standardmäßig NICHT mehr unterstützt - jedoch könntet ihr euch eines der älteren Packages (Delphi2 - 4) von der Seite des "Ursprungsautoren" Mike Lischke ( ![]() und ihr habt Glück einen GLScene-Mitentwickler hier zu haben :F |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz