Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi 3D-Sachen programmieren (https://www.delphipraxis.net/904-3d-sachen-programmieren.html)

CalganX 23. Sep 2002 10:13


3D-Sachen programmieren
 
Hi,
ich versuche derzeit (mit Delphi) eine 3D-Welt/-Spiel zu erstellen. Ich habe angefangen mit 3D-GameStudio, dass funktioniert aber nicht wirklich... Dann habe ich es unter Delphi mit DirectX versucht, dass ist aber anscheinend auch nicht gut. Was also soll ich nehmen?

Chris

Luckie 23. Sep 2002 11:05

Falsche Sparte.

Ich verschiebe das mal ganz heimlich nach Multimedia.
Pssst nicht verraten. :wink:

Daniel B 23. Sep 2002 11:48

@Chris,

wie wärs damit: http://www.delphipraxis.net/viewtopic.php?t=1053



@Luckie,

denkst Du das es wichtig ist, jedesmal hin zuschreiben, das es die falsche Sparte war? Die Leute kriegen dies auch so mit.
"Sei Weise, verschieb Leise." ;)

Grüsse, Daniel :hi:

phlux 12. Dez 2002 19:13

Hi Chris!
Wenn du in 3D coden willst rate ich dir wirklich zu OpenGL, ist so mit am einfachsten zu realisieren unter Delphi, hier mal 2 gute Links. Musst natürlich viel arbeit reinstecken ;)

http://dgl.quellcodes.de/

http://www.sulaco.co.za/default.htm

Daniel B 12. Dez 2002 19:48

Hallöle,

Zitat:

Zitat von phlux
Wenn du in 3D coden willst rate ich dir wirklich zu OpenGL, ist so mit am einfachsten zu realisieren unter Delphi, hier mal 2 gute Links. Musst natürlich viel arbeit reinstecken ;)

Warum gehst Du davon aus, das jeder schon eine OpenGL-GraKa hat? Da siehts bei DirectX/DelphiX doch schon anders aus!

Grüsse, Daniel :hi:

phlux 12. Dez 2002 20:47

Hi Daniel B,

Zitat:

Zitat von Daniel B
Warum gehst Du davon aus, das jeder schon eine OpenGL-GraKa hat? Da siehts bei DirectX/DelphiX doch schon anders aus!

also, soviel ich weiß gibt es OpenGL schon fast länger als DirectX, zumindest zeitgleich (berichtigt mich bitte falls ich falsch liegen sollte). Zumindest kann jede aktuelle Graka OpenGL darstellen (das konnte schon meine alte Viper V330 zu ihrer Zeit '96). Es dürfte also kein Problem sein, für heutige Rechner, es sei denn du hast ne Ati Graka in deinem Rechner (Bürorechner z.B) die nur einen 2D Chip druff sitzen hat, dann siehts wirklich duster aus.
Ausserdem bevorzuge ich OGL weils einfacher zu initiieren ist, hier ist nochmal ein Beispiel für Delphi und DX:
http://www.neobrothers.de/
Da wird gezeigt wie DX mit Delphi geht, von DelphiX halte ich nicht wirklich viel, da man wenn mit etwas selbstgeschriebenen bessere (schnellere) Ergebnisse erreicht ;) , wer trotzdem DelphiX nutzen möchte sollte mal nach UnDelphiX googeln, das ist eine inoffiziele Version von DelphiX und wurde um einiges an der Performance verbessert :) .

OregonGhost 13. Dez 2002 16:23

Zitat:

Warum gehst Du davon aus, das jeder schon eine OpenGL-GraKa hat? Da siehts bei DirectX/DelphiX doch schon anders aus!
Das hängt gar nicht von der Grafikkarte ab, wenn man nicht gerade abgefahrene Extensions von OpenGL oder die Pixel-/Vertexshader von DirectX verwendet. So ist das nämlich nur eine Treibersache. Mit meiner vorletzten Karte, einer ATI Rage Pro mit 4 MB RAM von vor über drei Jahren hättest du auch mit OpenGL und DirectX arbeiten können.

phlux 13. Dez 2002 19:32

Trotzdem gibt es auch reine 2D Karten, so wie die die in meinem Rechner war als ich Praktikum hatte :)

Alexander 13. Dez 2002 20:05

Zumindest kann man unter Nt 4.0 mehr mit OpenGL anfangen, da Direct X nicht sehr gut unterstützt wird.
Aber es wird glaub ich nicht mehr an OGL weitergearbeitet, oder irre ich mich?

phlux 13. Dez 2002 20:48

doch bald gibts OGL 1.2 soll dann wieder mit DX gleich ziehn an effekten ;)

Alexander 14. Dez 2002 09:27

na dann ist wirklich OGL besser, der einzige Vorteil von DX ist, dass es einfacher sein soll

phlux 14. Dez 2002 11:17

nein

chuckylein 2. Jan 2003 16:43

auch wenn dieses thema hier alt ist, ich antworte einfach ma :)

Ich kann sowohol OpenGL als auch DirectX. OpenGL ist meiner meinung nach leichter und auch nicht wirklich schwer zu erlernen. übung macht den meister.

Es gibt schon lange OpenGL 1.4... 2.0 folgt bald und das ist sogar programmierbar was DirectX nicht kann ;) Alle Effekte in OpenGL sind auf ALLEN Grafikkarten darstellbar. Unter DirectX gibt es Effekte, die nur für spezielle grafikkarten sind. Weiterer punkt ist die portabilität. wers lernen will geht am besten auf: http://nehe.gamedev.net

CalganX 2. Jan 2003 17:24

Hi,
ich bin derzeit dabei ein wenig OpenGL mit der Komponente GLScene zu programmieren. Das ganze ist aber nicht ganz so einfach, da ich bisher kein ordentliches Tutorial gefunden habe...

Chris

phlux 2. Jan 2003 17:44

Wenn du meine zwei Links weiter oben mal angeguckt hast findest du noch viele Tutorials, leichte sind da bestimmt auch dabei :)

OregonGhost 2. Jan 2003 18:33

@chuckylein:
Was meinst du mit "OpenGL ist programmierbar"? Diese allgemeine GPU-Sprache von OpenGL 2.0? Wenn ja, dann gibt's sowas zum einen in DirectX auch (HLSL = High Level Shader Language), zum anderen kann man dazu prima nVidias Cg (C for Graphics) nehmen, das für alle Grafikkarten und 3D-Schnittstellen gedacht ist, ein Cg-Programm kann also ohne Änderungen in OpenGL UND Direct3D verwendet werden, wobei hinter Cg ein ähnlicher Ansatz steht wie hinter der OpenGL Shading Language.

Zitat:

3DLabs [...] is seeking to close OpenGL's gap with Direct3D by embracing programmability
Soviel dazu ;c)

Übrigens laufen OpenGL Fragment-Programme, die den DirectX-Pixelshadern entsprechen, nur auf mindestens DirectX8-Hardware, eine Emulation wäre viel zu langsam. OpenGL stützt sich nur nicht auf spezielle Hardware (DirectX8 Pixelshader waren für nVidia, DirectX8.1 Pixelshader für ATI Hardware gedacht).

chuckylein 2. Jan 2003 22:34

ich will mich nicht als Besserwisser hinstellen, aber Vertex und pixelshader werden bei DX auch erst ab einer DX8 fähigen Graka unterstützt ;)

DoomIII

soviel dazu. weitere werden folgen.

lass mich raten: du machst D3D? ;)

ansonsten insgesamt isses schnuppe ob man opengl oder D3D macht. aber ich würde ogl bevorzugen, da es leichter zu erlernen ist (und du für delphi mehr findest..)

OregonGhost 3. Jan 2003 13:17

Zitat:

Zitat von chuckylein
ich will mich nicht als Besserwisser hinstellen, aber Vertex und pixelshader werden bei DX auch erst ab einer DX8 fähigen Graka unterstützt

Natürlich, denn es handelt sich um ein DX8-Feature, wenngleich es für Vertexshader eine beschränkte Emulation gibt.

Dein letzter Punkt mag generell stimmen, für mich trifft er aber nicht zu da ich Visual-C++-Programmierer bin ;c) (und, wie du annahmst, D3D-Programmierer - ich habe aber auch schon mit OpenGL gearbeitet und fand den Code, der dabei rauskommt, eher unsauber.)

Carmack bleibt bei OpenGL, weil er sich damit sehr gut auskennt und die meisten id-Spiele auch unter Linux laufen sollen. Da er im Moment noch auf OpenGL 1.3 geht, hätte er genauso gut (eigentlich besser) Direct3D nehmen können, weil OpenGL 1.3 per Standard keine Shader o.ä. unterstützt, sondern nur per Extensions, während Direct3D wie gesagt bereits die High Level Shader Language implementiert hat.
Das ARB gibt ja schließlich selbst zu, dass es selbst für OpenGL 2.0 schwierig wird, zu Direct3D 9 aufzuschließen, und OpenGL 1.3 kommt ohnehin nur an Direct3D 7 an wg. der Fixed Function Pipeline.

Aber wie dem auch sei, so lange beide Schnittstellen weiterentwickelt werden, kann jeder verwenden, was er lieber mag. Ich empfehle dennoch, beides mal auszuprobieren, dann weiß man wenigstens, warum einem die eine Schnittstelle besser liegt...


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