Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi 3D Punkte (https://www.delphipraxis.net/48292-3d-punkte.html)

Floesmaan 23. Jun 2005 09:31


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

PierreB 23. Jun 2005 09:41

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:
Units & DLL's.

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:

Floesmaan 23. Jun 2005 10:18

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? :)

PierreB 23. Jun 2005 10:24

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 ;)
http://www.dsdt.info/tutorials/direct3d/?page=downloads

Floesmaan 23. Jun 2005 10:35

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?

PierreB 23. Jun 2005 10:38

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.

Floesmaan 23. Jun 2005 10:53

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

windi 23. Jun 2005 11:30

Re: 3D Punkte
 
Sehr gut funktioniert auch die GLScene-Bibliothek. Hier muss man sich um das umständliche initialisieren nicht kümmern und es werden schon ne Menge vorgefertigte Objekte (Linien, Pfeile, Kugeln, Zylinder, Highfields, Actors, ...) mitgeliefert. Das ganze basiert jedoch auf OpenGL.
Falls Dir DirectX mehr zusagt, kann das Buch von oben genannten Martin Pyka nur empfehlen! Sind zwar paar kleinere Fehler drin, aber ansonsten wirklich Spitze! :)

PierreB 23. Jun 2005 15:10

Re: 3D Punkte
 
Zitat:

Sind zwar paar kleinere Fehler drin, aber ansonsten wirklich Spitze!
Könntest du das bitte etwas näher erläutern ? Ich habe dieses Buch und konnte noch keinerlei Fehler entdecken !? ;)

windi 24. Jun 2005 09:57

Re: 3D Punkte
 
Zitat:

Könntest du das bitte etwas näher erläutern ?
Da ich grad auf Arbeit bin und das Buch leider nicht hier hab, kann ich Dir keine genauen Textstellen nennen. Kann mich aber erinnern, dass teilweise in den den Quelltexten Fehler drin waren. Die, die man von der Webseite runterladen kann sind fehlerfrei, halt nur die im Buch ... :) Ich ja nicht, ob es mittlerweile ne überarbeitete Fassung davon gibt?! Hab noch eins der ersten Exemplare.

Phobeus 24. Jun 2005 13:55

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:
GLBegin(GL_POINTS);
  glVertex3f(0,0,0);
GLEnd();
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.

Floesmaan 24. Jun 2005 23:48

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)

Phobeus 25. Jun 2005 09:18

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.

windi 25. Jun 2005 11:51

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.

Floesmaan 25. Jun 2005 17:57

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

schmorbraten 5. Jul 2005 06:56

Re: 3D Punkte
 
Hallo,
also als Autor von xorDX8 muss ich an dieser Stelle doch mal meine Unit verteidigen.

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.

http://www.abernichtdoch.de/sub/xord...nshotsmall.jpg

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.

barf00s 5. Jul 2005 08:21

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 ( www.delphi-gems.com ) herunterladen... /!\ achtet jedoch darauf das für diese Versionen URALT sind /!\ ;)

und ihr habt Glück einen GLScene-Mitentwickler hier zu haben :F


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 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