Ergebnis 1 bis 15 von 15

Thema: 3D Engine

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    Users Awaiting Email Confirmation

    oO 163 Zeilen Code für einen simplen Würfel ohne Textur (also mit Standart-lambert-grau-textur) und ohne alles?
    Ich weiß nicht, vielleicht bleibe ich doch bei 2D... Warum sind solche Dateitypen immer so kompliziert?

    PS: Gemeint ist eine Maya-ASCII Datei

  2. #2
    Zitat Zitat von Schattentier Beitrag anzeigen
    oO 163 Zeilen Code für einen simplen Würfel ohne Textur (also mit Standart-lambert-grau-textur) und ohne alles?
    Ich weiß nicht, vielleicht bleibe ich doch bei 2D... Warum sind solche Dateitypen immer so kompliziert?

    PS: Gemeint ist eine Maya-ASCII Datei
    Also 163 Zeilen Code ist nicht viel wenn es darum geht, erstmal ein Fenster mit OpenGL Rendercontext zu öffnen. Danach benötigt es aber wesentlich weniger Zeilen, um Dinge darzustellen.
    Und für Modelle baust du dir sowieso eine Lade-Routine welche die Polygone ausließt und in OpenGL-Polygone neu aufbaut. Das geht dann mit einer Schleife und ein paar Zeilen. (Jedenfalls theoretisch, ob es praktisch so gut aussieht weiß ich nicht. Aber Vertices auslesen und per OpenGL setzen lassen ist nicht das Thema. Schwieriger könnte es werden, das Modell korrekt mit Texturen zu versehen)

    Bezüglich der Zeilenlänge - eine Textur auf ein Polygon zu bekommen ist eine Sache von ein paar Zeilen. (Eine Laderoutine für den Texturloader (kann man im Internet vorgefertigte Codeschnippsel finden), ein paar Zeilen zum Wandeln der Bitmap-Daten in OpenGL-verwendbare Texturen und schließlich beim Erstellen des Polygons noch eine zusätzliche Zeile pro Vertex, in welchem Verhältnis der Punkt zur Textur erscheint. (0 - 1 wäre dabei die komplette Textur dargestellt, 0 - 0,5 logischerweise die halbe ) )
    Aber das bekommst du alles Stückchenweise mit, wenn du die Tutorials durcharbeitest. Wie gesagt, einen guten Monat hat es mich wohl gekostet bis ich anständig Grafiken mit OpenGL darstellen konnte.

  3. #3
    Zitat Zitat von Schattentier Beitrag anzeigen
    oO 163 Zeilen Code für einen simplen Würfel ohne Textur (also mit Standart-lambert-grau-textur) und ohne alles?
    Vor langen Quelltexten darf man sich bei 3D Programmen nicht fürchten. Die Länge ist auch gar nicht so schlimm, wenn man die Intensität bedenkt. Wenn man eine Spiele Engine schreibt, muss man sich mit den unterschiedlichsten Themen und Funktionen auseinandersetzen. Das heißt, man arbeitet mit viel mehr unvertrauten Funktionen/Komponenten als beispielsweise bei normaler Anwendungsentwicklung. 100 Zeilen in einer guten Spiele Engine lassen sich nicht einfach so herunterschreiben. Und falls doch, sind sie vermutlich nicht sonderlich gut. Fertige Quelltexte aus dem Netz sind auch nur gut, wenn man überhaupt etwas zum Laufen bringen will (dafür braucht man am Anfang fertige Beispiele). Sobald man etwas Großes und Eigenes schreibt, muss man viele Teile neu schreiben.

    freundliche Grüße, Rolus

  4. #4

    Users Awaiting Email Confirmation

    Zitat Zitat von Rolus Beitrag anzeigen
    100 Zeilen in einer guten Spiele Engine lassen sich nicht einfach so herunterschreiben. Und falls doch, sind sie vermutlich nicht sonderlich gut. Fertige Quelltexte aus dem Netz sind auch nur gut, wenn man überhaupt etwas zum Laufen bringen will
    Die 163 Zeilen bezogen sich nicht auf eine Grafik Engine aus dem Netz, sondern auf eine normale Maya ASCII Datei von Alias|Wavefront Maya 7, in der ich nur einen Würfel ohne Textur (sprich: mit der Standart-Lambert-Grau-Textur) angezeigt habe. Es ist also nur die Maya Datei, durch die ich mich mit meinem Programm durcharbeiten muss..

  5. #5
    Naja, eine Datei aus einem speziellen Format zu laden, ist grundsätzlich bei den meisten Formaten ein ziemlicher Aufwand, auch ohne die Anzeige. Die ist danach verhältnismäßig einfach.

    Eine Engine ist ja auch mehr als "Lade eine Datei und zeige sie an". Das wäre ein simpler Modelviewer. Letztendlich ist das nur ein sehr kleiner Teil und viele Engines kennen verschiedene Methoden, um Objekte zu laden oder sogar zur Laufzeit zu generieren. Worauf es ankommt, ist eher, dass verschiedene Objekte richtig platziert, animiert, ausgeleuchtet und mit Effekten versehen werden.

  6. #6
    Zitat Zitat von Schattentier Beitrag anzeigen
    Die 163 Zeilen bezogen sich nicht auf eine Grafik Engine aus dem Netz, sondern auf eine normale Maya ASCII Datei von Alias|Wavefront Maya 7, in der ich nur einen Würfel ohne Textur (sprich: mit der Standart-Lambert-Grau-Textur) angezeigt habe. Es ist also nur die Maya Datei, durch die ich mich mit meinem Programm durcharbeiten muss..
    Dann musst du dich in dem Fall über das MAYA-Dateiformat beschweren.
    Aber mal ehrlich, Maya ist für professionell Anwendungen gedacht. Das heißt, die Möglichkeiten sind riesig, es können massenhaft Dinge verändert, animiert, mit Texturen und optionen verändert werden etc. Und jetzt bedenke, jede Änderung muss irgendwo gespeichert und dokumentiert werden. Jedes Material, jeder Vertex, die Normalen, eventuelle Animationsstufen, eventuelle Subsurfaces und deren Unterteilungsgrad, Lichtquellen, Partikel etc, alles muss irgendwo gespeichert werden. Dazu sind unzählige Variablen nötig.
    Dass du da auf 163 Zeilen kommst, ist noch nichtmal viel, würde ich sagen.

    Anders sähe es aus, wenn du einfach schlicht die Koordinaten der Vertices speichern würdest, und diese in OpenGL ausließt und zu einem Polygon zusammensetzt. Das ist dann eine Zeile pro Polygon = 6 Zeilen für den Würfel.
    Wenn du aber Wert auf eine Maya-Datei legst, dann enthält diese vermutlich noch etliche der oben genannten Inhalte, die alle irgendwo festgehalten und gespeichert sind. Da bläht sich dieses ganze Format natürlich auf.

    Ich habe übrigens gerade testweise eine Cinema 4D Datei meines Audi R8 ins 3DS-Format gebracht und bin auf stolze 80 MB gekommen. Soll heißen, das sind gut einige tausend - hunderttausend Zeilen.
    Wenn du also die Ansprüche hegst, in deiner Engine komplette Maya-Objekte laden und anzeigen zu können, hat deine Lade-Prozedur einiges zu leisten und du einiges zu schreiben. Von daher würde ich für den Anfang einfach die Anforderungen niedriger setzen.

  7. #7

    Users Awaiting Email Confirmation

    ok =) stimmt, wo du recht hast, hast du recht... ich werde erst mal kleiner anfangen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •