Brauche Hilfe bei meiner 3D-Engine(C++)



  • Hallo,Zusammen.
    Ich bin dabei anzufangen in C++ eine eigene 3D-Engine zu Programmieren.
    Ich werde mal von ganz vorne anfangen.
    Ich habe bereits ein Buch über das Erstellen von 3D-Engines gelesen.
    In diesem wurde erwähnt,dass es für den Bau einer 3D-Engine zwei Möglichkeiten gibt:
    Erstellen von...
    1.*dll(Dynamic Linked Library)
    2.*lib oder *a(Static Library)

    In dem Buch wurde der Weg der Dynamischen Bibliothek gewählt.
    Das heißt:
    Ich hab keine Ahnung wie man eine 3D-Engine mit einer Statischen Bibliothek erstellt.

    Ich habe aber vor,eine 3D-Engine mit einer Statischen Bibliothek zu programmieren.
    Weshalb ich die Statische Bibliothek wähle?
    Da diese,im Gegensatz zu einer Dynamischen Bibliothek,direkt in ein späteres Projekt hineinkompeliert wird.

    Ich hatte aber schon so eine Idee,wie ich meine 3D-Engine programmiere.
    Ich werde sie gleich beschreiben,und jetzt brauch ich eure Hilfe:
    -Falls das möglich/nicht möglich ist,bitte schreiben!
    -Verbesserungsvorschläge wie es funktionieren könnte,bitte schreiben!
    -Wenn das,das ich vorhabe überhaupt nicht funktionieren kann,bitte mir Tutoriale über das Erstellen von 3D-Engines mit Statischen Bibliotheken nennen,oder sogar netterweiße selber machen!

    Ok ich fang dann mal an:
    In dem Quellcode der Statischen Bibliothek wollte ich nur die Ressourcen Dateien der Engine includen.
    In diesen Ressourcen ist dann z.B: der Render-Vorgang,oder das Laden von 3D-Objekten mit Funktionen beinhaltet.
    So könnte man in seinem Projekt die Statische Bibliothek und die Ressourcen in den Projekt-Optionen als Pfad angeben und dann beim Programmieren die Funktionen der Engine aufrufen.

    Ok,das wars.
    Hoffe auf Antworten:)



  • Welche IDE nutzt du?
    Bei Code::Blocks erstellst du einfach ein statisches Lib Projekt.
    In die Header Dateien schreibst du alle Deklarationen, in die Source-Dateien die Definitionen.
    Wie normal auch.



  • ja benutze code:blocks.
    weiß auch wie man ein projekt erstellt und willst du mir also damit sagen,dass es funktioniert?
    Also,wie ich es beschrieben hab.



  • Ja.
    Einfach nur statische Bibliothek erstellen im P-Manager auswählen und gut ist.



  • Ok,danke.
    Und tja,um eine 3D-Engine zu schreiben,muss man die Befehle,der Grafik-API kennen.
    Ich will für diese API DirectX9 verwenden,aber kann keinen einzigen Befehl.
    Hab auch schon ewig gesucht aber nichts gefunden.
    Deswegen wollte ich noch fragen,ob jemand Webseiten oder Videos dazu kennt.



  • Steht das nicht in dem Buch?
    Ansonsten würde ich dir eher zu OpenGL raten, wenn es plattformunabhängiger sein soll.



  • Nicht direkt,da man eigentlich DirectX Kenntnisse schon besitzen sollte.
    Und zu Opengl:Wo kriege ich da ein gutes Tutorial her?



  • http://www.opengl.org/wiki/Getting_started#Tutorials_and_How_To_Guides
    Sektion OpenGL 3.0 and above.
    Brauchst aber eine Lib, die dir Fenster etc. erzeugt.
    Rate dir zu SFML 2.0.

    Edit: Übrigesn: http://scientificninja.com/blog/write-games-not-engines



  • Danke,dann mach ich mich mal an die Arbeit...



  • Hi,

    ich hab diese Links irgendwann mal gefunden, hab sie mir aber nicht genau angeschaut. Demnach weiß ich auch nicht in wiefern die sich decken. Aber für den Anfang sollten die reichen:

    Einige Tutorials für den Anfang mit DirectX 9 (spätere Tutorials nur mit Premium Account):
    http://www.directxtutorial.com/LessonList.aspx?listid=9

    DirectX:
    http://www.two-kings.de/tutorials/dxgraphics/

    DirectX 10, 11 und OpenGL 4.0:
    http://www.rastertek.com/tutindex.html

    Kannst ja mal rein schauen. Vielleicht kannst du damit etwas anfangen.

    gruß Christopher



  • coder++ schrieb:

    Nicht direkt,da man eigentlich DirectX Kenntnisse schon besitzen sollte.
    Und zu Opengl:Wo kriege ich da ein gutes Tutorial her?

    Warum sollte man das? DirectX ist nur bei Windows-PC und Xbox-Spielen relevant. Alle anderen Plattformen nutzen OpenGL. Und OpenGL funktioniert auch auf Windows.



  • danke an alle die geholfen haben.
    werde mich jetzt noch zwischen directx und opengl entscheiden.



  • [quote="Ethon"][quote="coder++"]Nicht direkt,da man eigentlich DirectX Kenntnisse schon besitzen sollte.
    Und zu Opengl:Wo kriege ich da ein gutes Tutorial her?[/quote]

    Warum sollte man das? DirectX ist nur bei Windows-PC und Xbox-Spielen relevant. Alle anderen Plattformen nutzen OpenGL. Und OpenGL funktioniert auch auf Windows.[/quote]

    Ich meine in dem Buch sollte man diese Kenntnisse besitzen.


Anmelden zum Antworten