3D Programmierung, DirectX, OpenGL

  • Hat vielleicht schon jemand Erfahrung im 3D Programmieren? Alle Gedanken zum Thema sind höchst willkommen :cool:


    Ein paar Fragen konkret:<ul>
    <li>Wie komm ich zu Figuren, z.B. aus 3DS Max oder so (ja, ich <i>bin</i> kompletter Anfänger was 3D angeht :) )</li>
    <li>Ist DirectX (Version 8.0 oder höher) oder OpenGL (1.1 oder höher) besser?</li>
    <li>Wie schauts mit Gegner AI aus? Gibts da irgendwo ein paar - möglichst leicht verständliche - Beispiele wie man mit sowas beginnt?</li>
    </ul>
    Das wars von meiner Seite, ich hoff ich bekomm ein paar Anregungen :)

  • Hallo!


    Ich weiß zwar nicht wie's bei dir mit Programmieren ausschaut, aber http://www.darkbasic.de/ ist auf jeden Fall einen Klick wert. Da kann man ganz einfach 3D Welten erzeugen.


    Es gibt aber auch "Allegro - A game programming library". Das mir auch sehr interessant ausschaut. Habs aber nocht nicht ausprobiert. Kenn mich damit auch nicht aus.


    http://www.talula.demon.co.uk/allegro/



    Ich hoffe das hilft dir ein wenig

  • DarkBasic soll laut irgendeinem test (hab vergessen wo, ich glaub im c't) eine ziemlich gute wahl sein. du hast schon Engine und sowas vorgefertigt (was ich glesn hab), musst halt nicht mehr von _0_ beginnen. wennst _das_ willst, kannst dein studium wahrscheinlich für ein jahr pausieren ;)

    -----BEGIN GEEK CODE BLOCK-----
    Version: 3.12
    GAT d-(+) s++: a- C++$>+$ U++>+++ P++>+++ L+++ !E W++>$ !N K? w(--)@ !O !M V? PS+ PE++(-)> Y+ PGP(+) t---(-) !5 X R- tv-(--) b++>$ DI+ D+(++) G(+) e>++++* h-- r++ y++
    ------END GEEK CODE BLOCK------ .

  • Ja stimmt :cool:
    Was ich sagen wollte: ich code zur zeit viel in Java, daher hab ich auch vorgehabt Java3D zu verwenden. Ich weiß das ist krank, aber wieso nicht: Man hat die Wahl zwischen einer DirectX und einer OpenGL Implementation, die Darstellung ist eigentlich recht flott und rennt außerdem nicht nur auf Windows. _Natürlich_ ist das ganze Interface 100% OO (wird aber intern optimiert)

  • Zitat

    Wie komm ich zu Figuren, z.B. aus 3DS Max oder so


    du implementierst einen modellloader...
    zB.:
    http://www.uni-karlsruhe.de/~uli2/index.html


    Zitat

    Ist DirectX (Version 8.0 oder höher) oder OpenGL (1.1 oder höher) b


    ich glaube darüber werden bücher geschrieben... von der geschwindigkeit sind beide ziemlich ähnlich, es gibt einige optische unterschiede, ich glaub in punto darstellung von farben usw..
    bei directX is halt schon alles dabei [directInput, directSound, netzwerk,...] eben alles was man so für ein anständiges programm[spiel?!] so braucht
    für opengl nimmst halt diverse bibliotheken [glut, sdl, fltk, qt, ... ] dafür kannst plattform unabhängig bleiben


    http://www.gamedev.net/reference/articles/article1775.asp
    [feb2002]
    http://www.xmission.com/~legalize/d3d-vs-opengl.html [may2001]


    zu darkbasic: ich habs net gekannt aber der absatz sagt schon viel drüber aus..

    Zitat

    Warum sollte ich DarkBASIC verwenden ?


    Die Leute, die bei weitem am meisten von Dark BASIC profitieren, sind jene die absolut keine Vorstellung haben was Programmierung bedeutet und auch keinerlei Intention besitzen dies herauszufinden.


    ein paar gute links...
    http://nehe.gamedev.net
    http://gamedev.net
    http://www.flipcode.com
    http://www.gametutorials.com
    http://www.dev-gallery.com/programming/


    viel spass!

  • Zitat

    Original geschrieben von martin

    <ul>
    <li>Ist DirectX (Version 8.0 oder höher) oder OpenGL (1.1 oder höher) besser?</li>


    </ul>


    imho ist opengl übersichtlicher zu programmieren... hab schon mal ein bisschen was gemacht mit opengl und das war eigentlich nicht so schwer. bei directx bin ich eher gescheitert (mit viel mühe wärs vielleicht gegangen aber das wars mir nicht wert)


    dafür ist (leider) directx etwas moderner... also wennst was mit den neuen 3d funktionen machen willst (pixel/vertex shader) dann musst eh directx nehmen (zumindest bis opengl 2.0 herauskommt :D)

  • stimmt schon, directX is halt sehr windows-spezifisch
    ich denk auch das opengl leichter zu lernen ist, for allem mit der glutAPI geht anfangs eigentlich recht schnell was weiter, man muss sich nicht um die ganzen win32windowhandles kümmern, sondern registiert irgendwelche callback functions...blabla
    eigentlich ganz lustig

  • Auch wenn die aktuelle DX Version sehr gut ist, vor allem was "advanced features" betrifft, finde ich OpenGL geeigneter zum lernen. Und wenn man die Konzepte und Ideen hinter 3D Grafik verstanden hat, ist es ein leichtes einen neue API zu lernen.


    An einfache 3D Modelle kommt man relativ einfach:
    http://www.google.com/search?q=free+3d+models


    Um sie dann zu benutzen nimmt man entweder einen fertigen Loader oder man schreibt selber einen. Fertige loader bieten nicht immer das was man braucht, in solchen Fällen muß man sich halt selber was zusammenbasteln.


    Mit AI kenne ich mich nicht aus, aber bei
    http://www.flipcode.com
    http://www.gamedev.net
    http://www.gamasutra.com


    müßte es tutorials geben.


    -Egladil