Wie kann ich einen Boden/Himmel erstellen [3D]

    • GM 8
    • Wie kann ich einen Boden/Himmel erstellen [3D]

      Hallo, ich hab vor kurzem auch den Gamemaker entdeckt und mir die verschiedene Tutorials angeguckt.
      Ich hab inzwischen mehr oder weniger etwas in 3D hinbekommen, genauer gesagt, ein kleines Häuschen, in dem ich eben alle neu erstellten 3D Objekte teste etc.
      Nun wollte ich etwas mehr Style in die Welt einbringen und zwar, wollte ich einen Garten um das Haus basteln, nur jetzt komm ich zu meinem Problem, ich hab schon mehrmals versucht den Boden und den Himmel zu ändern, aber bisher ohne Erfolg.
      Hab' ein Bild hochgeladen, damit ihr verstehst wie ich das meine, in Probleme erklären bin ich nicht so gut.


      Könnte mir das jemand ausführlich erklären? Denn ich kenne mich noch nicht so gut aus. :(

      LG
      WolfvE
      Bilder
      • meinproblem_01.JPG

        116,34 kB, 1.152×864, 359 mal angesehen

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

    • das ist ganz easy.
      Boden gleich

      GML-Quellcode

      1. d3d_draw_floor(0,0,0,1024,1024,0,background_get_texture(boden_texture),1,1)

      für die 1,1 hinten must du je nach dem wie groß deine texture ist eine andere zahl eingeben. 1 steh dafür das die textur ein mal in der x und y richtung wieder holtwird.
      das heist bei 2,2 würdes du die Texture also 4 mal sehen. 2 horizontal und vertikal.

      Himmel / Sky box.
      Für den himme gint es mehrer ansätz.
      1. Du machst eine kugel.
      aber die bessere variante ist.
      du machst 4 wände für alle 4 himmelrichtungen.
      Mit einem einfachen malprogramm machst du dir eine simple Himmel texture.
      Zb hier ist meine


      HINWEIS. Bedenke das die farbe von ganz oben eine Line auch unten sein muss. Da du sonst im Himmel eine Fehlerhaft line hast.
      und 2 das die Farbe von ganz oben gleichzeitig die Raumhintergrund farbe ist. damit du keine 5 textur als Deckel für den Skykasten drauf machen must.
      die farbe ist in diesm fall "Rot:161 G:199 B:255"

      Um nun die Skybox zu zeichen würd ich diese in deiem Player Draw Event machen. SO das sich die Skybox immer mit deinem Spieler verschiebt und sie wie in jedem 3d spiel immer nur in der entfernung zu sehen ist.
      Des weiteren würd es sonst so aussehen als ob man in einem kasten ist.

      GML-Quellcode

      1. d3d_draw_wall(x-1600,y+1600,600,x-1600,y-1600,-200,background_get_texture(skyline_nacht),4,1);//links
      2. d3d_draw_wall(x+1600,y-1600,600,x+1600,y+1600,-200,background_get_texture(skyline_nacht),4,1);//rechts
      3. d3d_draw_wall(x-1600,y-1600,600,x+1600,y-1600,-200,background_get_texture(skyline_nacht),4,1);//vorn
      4. d3d_draw_wall(x-1600,y+1600,600,x+1600,y+1600,-200,background_get_texture(skyline_nacht),4,1);//hinten

      Hiermit zeichnest du 4 wände an allen 4 himmelrichtung. von -1600 bis +1600 und eine höhe von -200 bis +600.
      Also sind die seiten wände 3200x800 groß. Das seiten verhältniss ist als 4:1 Darum wird die Texture auch 4 mal neben ein ander drauf gelegt.
      Tip. Wenn du nebel "fog" = true machts, mach dei nebel farbe der Himmel texture gleich zb so

      GML-Quellcode

      1. d3d_set_fog(1,make_color_rgb(161,199,255),500,1000)

      Nun wird natürlich dein Himmel auch im Nebl nicht mehr zu sehen sein. also must du vor dem Himmel code den nebel kurz wieder ausschalten.
      Das gesamt ergebniss ist dann so. Der himme list weiter hin zu sehen aber alle anderen objekt veschwinden dann im Nebel

      GML-Quellcode

      1. d3d_set_fog(0,make_color_rgb(161,199,255),500,1000)
      2. d3d_draw_wall(x-1600,y+1600,600,x-1600,y-1600,-200,background_get_texture(skyline_nacht),4,1);//links
      3. d3d_draw_wall(x+1600,y-1600,600,x+1600,y+1600,-200,background_get_texture(skyline_nacht),4,1);//rechts
      4. d3d_draw_wall(x-1600,y-1600,600,x+1600,y-1600,-200,background_get_texture(skyline_nacht),4,1);//vorn
      5. d3d_draw_wall(x-1600,y+1600,600,x+1600,y+1600,-200,background_get_texture(skyline_nacht),4,1);//hinten
      6. d3d_set_fog(1,make_color_rgb(161,199,255),500,1000)



      Hinweis 2.
      Bedenke das alle texturen nur dann fehler frei funktionieren wenn sie du gewisse maße einhälst.
      4x4 8x8 16x16 32x32 48x48 64x64 128x128 256x256.
      da sind zwar noch ein haufen dazwischen aber diese standart texture größen, wofür mir jetzt nicht das wort ein fällt " must da dabei einhalten.
      Also niemals rechteckig sondern nur Quadratische texturen
      Meine Signatur hat kein Visum für das GM Forum erhalten.
    • Ah, dankeschön für deine Hilfe :)
      Guter Service hier :D


      €: Eine Frage hätt' ich noch, bei der Sache mit dem Himmel, der erscheint ja wie du gesagt hast nur an den Seiten (sprich_ Himmelsrichtungen) aber auf dem Bild mit dem Turm, das du als Beispiel gezeigt hast, ist der Himmel überall, wie bekomm ich das hin?

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von WolfvE ()

    • Der code von x-sascha zeichnet eine sogenannte skybox (diese muss nicht zwingend eckig sein) um die ganze szene herum. die ist schon überall weil die vier wände entsprechend aufggestellt sind. Ich persönlich mache skyboxen lieber mit einer kugel, bzw. eher einer halbkugel in die ich ggf. noch ebenen für wolken einbaue.
      Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
      GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x
    • Eine Frage hätt' ich noch, bei der Sache mit dem Himmel, der erscheint ja wie du gesagt hast nur an den Seiten (sprich_ Himmelsrichtungen) aber auf dem Bild mit dem Turm, das du als Beispiel gezeigt hast, ist der Himmel überall, wie bekomm ich das hin?

      Das habe ich eigentlich oben erklärt. Die vier wänder rings herum haben ja die Texturte, die oben zu sehen ist. Da die von fast weiß in einne hellen blauton wechselt. muss man einfach nur die Hintergrund farbe des obersten Blauton der Texture anpassen. Quasi ist die Box oebn offen. Nur alles was außerhalb der box ist hat den Himmerfarbton. Somit verschwimmt die Texture mit der Room Hintergrundfarbe.
      Steht aber alles oben so weit ich das weis.
      Ich weise nur noch mal darauf hin das bei solchen farbverlaif texturen für zb den Himmel der Die Farbe der oberen Pixelzeil auch unten gemalt werden muss. Denn lange war mir das Problem nicht erklärbar. Bis mir aufgefallen ist, das es ander option "Interpolate between Pixel" liegt. Dietexture hat also oben oder unten versucht die beiden Farben zu vermischen, wo bei eine Häslieg linie enstanden ist. Somit sah es wie im Comic aus under der Skyboxkasten hatte an allen ekcne und Kanten linien.


      Skybox und Halbkugel von WIN
      Ja klar. Das geht natürlich auch. Das hängt immer davon ab welche Texturen man zu verfügung hat. Die Halbkugel ist bei einfachen sich wiederholenden Texturen , natürlich ideal.
      Wenn ie texturen aber etwas abwechslung haben sollen ist ide Sky box auch was nettes.
      Spielt aber schluß endlich keine Rolle.

      Wichtig ist nur das sich dir Skybox oder die Halbkugel immer mit dem Spieler mit bewegt sowohl x/y als auch z achse. Sonst sieht man, das man in einer Kugel oder Box ist.
      Meine Signatur hat kein Visum für das GM Forum erhalten.

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