Voxelengine in Game Maker..?

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Voxel = Volumetric Pixel.
    Also meint er damit sicherlich 3D.
    Mit Voxeln habe ich mich noch nich befasst, aber ohne *dll sollte das nicht möglich sein.
    Generell: Dein Vorhaben scheint mir sehr komplex, ich denke du solltest nicht zuletzt aus Performancegründen auf einfachere Methoden zurückgreifen. Sprich: z.B. Einschlaglöcher durch einfache, mit einem Sprite überzogene Flächen.
  • Tja was heist Voxel genau.
    Im prinzip besteht die Landschaft aus ganz vielen Stäben die verschieden Farben und untersschiedlichen höhen im Raum sind.
    Klar mann könnte jetzt eine Höhenmap anfertigen (schwarz bis Weis) und in einer For schleife ganz viele Linine erstellen die ihren z wert mit draw_get_pixel() erhalten.
    Aber ob das nicht auf die Performance geht....
    Meine Signatur hat kein Visum für das GM Forum erhalten.
  • x-sascha schrieb:

    Tja was heist Voxel genau.
    Im prinzip besteht die Landschaft aus ganz vielen Stäben die verschieden Farben und untersschiedlichen höhen im Raum sind.
    Klar mann könnte jetzt eine Höhenmap anfertigen (schwarz bis Weis) und in einer For schleife ganz viele Linine erstellen die ihren z wert mit draw_get_pixel() erhalten.
    Aber ob das nicht auf die Performance geht....

    Nicht nur die Performance. Mit einer simplen Heightmap könntest du u.a. auch keine Tunnel darstellen.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Das mit der Höhen map ist nur ein ansatz.
    Dann nimmt man halt punkte, somit ist der raum darunter wieder frei.
    Ungefähr so meinte ich es
    hab es hier mal hoch geladen

    Aber ich kann gleih sagen das spreng auf höhere eben die Performance.
    Wenn man die dicht verändert, selbst nur um das 2 fache ruckelt das wie sau. Ok ich geb zu das basiert auf instancen.
    Mann müste das als model oder dieses komische grid_zeugs machen. aber damit kenne ich michnicht aus.
    Eigentlich müste es ja sosein um alleine ein Rechteck von 32x32 pixel zu füllen, bräuchte man dem entsprechen 1024 punkte. Hardcore , würde ich sagen.
    Also muss das irgend wie anders gehen
    In diesem sinne
    Meine Signatur hat kein Visum für das GM Forum erhalten.

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von x-sascha ()

  • *in der alten Externen kram*

    ahh, da ham wirs ja.

    Eine engine, schon ein bissl eingeschtaubt, aber sollte es tun. Ich zeige mal eben was dabei ist wie sie funtzt:

    Du findest erst mal ein "Conv Pic2Map.gmk". Dieses Program wandelt ein bild um in eine datei, die der gm schnell lesen kann. Sieht dann so aus: (vielen dank Schattenphoenoix, an dieser Stelle)
    ->map2.level

    Danach kommt "terrain.gmk" dran. Die dateien "boden.PNG" und "Wasser.PNG" sind texturen. Wenn due dieses Program startest, wirst du nach einer *.level oder *.map datei gefragt. Dies sind die datein die du mit dem "Conv Pic2Map" gemacht hast. Danach wird die Welt geladen, und fertig. Der wohl wichtigeste Script ist get_z(x,y) (auch der einzige). Dieser Script gibt die höher an der position x,y wieder. Den wird man überall gebrauchen.

    Sieht dann so aus:


    Alle dateien findest du unter gm-sd.bplaced.net/files/3dtest

    EDIT:
    Wenn du die Map ändern willst, weil du zb ein loch entsteht weil ne Bombe explodiert ist, musst du nur die "Conv Pic2Map.gmk" mit der "terrain.gmk" vereinen, und dann halt die highmap mit sufraces ändern (achtung, geht in 3d nicht unmittelbar). Ne eifachere, und sicherlich schnellere methode ist es, den 2d Array "grid" an den stellen ändern, an dem das loch sein soll.
    Wenn du diesen Voxel effekt haben willst, musst nur nicht ein model generieren lassen, dass eine fließende oberfläche hat, sondern viel mehr pro grid[x,y] einen stab machen.. wenn du dir so ein Projekt vor nimmst, sollte dies nicht der Weltuntergang sein :P


    MfG SDX

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von SDX ()