Navigation

    Fuze Arena Logo
    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Users
    • Groups
    • Help
    • Discord

    Terrain Generator

    Work In Progress
    12
    21
    1687
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • mixaal
      mixaal F last edited by mixaal

      Hi,

      I currently work on the terrain generator, by adapting the following blogs:

      https://www.redblobgames.com/maps/terrain-from-noise/
      https://gist.github.com/nowl/828013
      https://pypi.org/project/opensimplex/

      Here's the current result:
      70367282_10158618025468765_4572301391661367296_o.jpg

      You can see more in the following video:
      https://www.facebook.com/michal.conos/videos/10158618015753765/

      Anyway would love to create my own skybox, but in order to do that I need somehting like :

      drawTriangle(v1, v2, v3, c1, c2, c3)

      v1, v2, v3 - traingle vertices as vectors
      c1, c2, c3 - triangle vertices colors as rgb vectors

      This function just adds triangle for batch processing and defers the drawing till drawObjects() is called.

      1 Reply Last reply Reply Quote 10
      • Martin
        Martin Fuze Team last edited by

        Very nice, I'm impressed! Looks like it's pushing the switch quite hard

        1 Reply Last reply Reply Quote 0
        • T
          TheDearHunter F last edited by

          Very impressive, will be very interested to see what comes of this, keep up the good work

          1 Reply Last reply Reply Quote 0
          • mixaal
            mixaal F last edited by mixaal

            Thank you :-) Well, not sure what comes out of this, I'm more engine/library writer rather than a game developer but who knows :) . But I shared this work so whoever is interested in it can re-use it as as. It would be nice to put the references to the original blog posts (included in code).

            @Martin I'd be interested in the profiling since it seems the interpreter when generating the terrain takes its time, but it's expected since there's quite some math behinf (opensimplex noise). But the drawing itself should go straight to switch gfx pipeline...

            The complexity is as follows: terrain is 256x256 heightmap array resulting in 255x255x2 triangles - which is around 130k. Typically I draw around 600 trees (the max is 1500). Each tree might have 100-200 triangles? (just guessing) resulting in additional 60k or 120k triangles. All in all I should be under 500k triangles which is not that much :)

            N 1 Reply Last reply Reply Quote 1
            • N
              Nisse5 F @mixaal last edited by

              @mixaal I would also like profiling. I've encountered some code that runs very slow and it's not clear to me if there's a specific task that is very slow or if it's a equally distributed slowness.

              1 Reply Last reply Reply Quote 1
              • mixaal
                mixaal F last edited by

                The current status includes grass, clouds and skybox, also cleaned-up the code a bit ;)

                Some clouds in the sky:
                clouds01.jpg

                Overcast:
                overcast.jpg

                In the highlands:
                in-the-heights.jpg

                1 Reply Last reply Reply Quote 8
                • Jongjungbu
                  Jongjungbu F last edited by

                  This looks so cool! Awesome job man.

                  1 Reply Last reply Reply Quote 0
                  • mixaal
                    mixaal F last edited by

                    @Jongjungbu Thanks a lot :) !

                    1 Reply Last reply Reply Quote 0
                    • Dave
                      Dave Fuze Team last edited by

                      Absolutely awesome beyond words. Just took a look at the code.. Think I've got some homework to be getting on with!

                      I think you should add a single, randomly placed, random object and the goal is to find it. (It should be ridiculously small)

                      1 Reply Last reply Reply Quote 0
                      • mixaal
                        mixaal F last edited by

                        Hi @Dave , Thanks for these words ! Good idea to make it a little more like a game rather than a demo. Will take a look at it !

                        1 Reply Last reply Reply Quote 0
                        • Jongjungbu
                          Jongjungbu F last edited by

                          Ridiculously small? @Dave
                          You are brutal!

                          1 Reply Last reply Reply Quote 0
                          • brillianceguy
                            brillianceguy F last edited by

                            Isn’t that why people talk about needles in haystacks? Because they’re fun to find, right?

                            1 Reply Last reply Reply Quote 0
                            • sys64738
                              sys64738 F last edited by

                              amazing work!

                              1 Reply Last reply Reply Quote 0
                              • Jonboy
                                Jonboy Fuze Team last edited by

                                So tell us Mixaal... what could we do to the terrain generator to help you on this quest - any limitations? what does it need. The truth is it is an early function and one very much open to expansion. At this stage no one is better qualified to comment than you. I am truly 'gob-smacked' (classic English phrase!) by what you have achieved so far.

                                1 Reply Last reply Reply Quote 0
                                • mixaal
                                  mixaal F last edited by mixaal

                                  Hi @Jonboy
                                  Thank you for your interest ! The limit I hit was the terrain size, anything bigger than 256x256 didn't finish (more precisely, didn't wait for it to finish), it might be that opensimplex noise uses quite a lot of math. So to put these into some RFE list:

                                  1. Be able to generate huge terrains 4096x4096 or even bigger
                                  2. Having something like ROAM in place, i.e. user generates the terrain and the terrain is drawn in an optimized way, the further you're the bigger patches are drawn:
                                    https://www.gamasutra.com/view/feature/131596/realtime_dynamic_level_of_detail_.php
                                    https://developer.nvidia.com/gpugems/GPUGems2/gpugems2_chapter02.html
                                    The latter one can be very efficient on modern GPUs when displaying large terrains
                                  3. Having simplex noise or perlin noise implementation in F4NS might speed up things a lot, the noise generation is handy not only for mountains but for any "map": water, clouds, maze, 3D fractals (rocks), etc.
                                  4. I almost forget! Be able to specify textures for the terrain.
                                  5. Sometimes be able to draw triangle on my own would be handy ;)
                                  1 Reply Last reply Reply Quote 1
                                  • Myddrak
                                    Myddrak last edited by

                                    Loving the terrain generator... I had a brief play and came across the same 256*256 limit.... Also something strange happens when the camera passing through zero on the Z axis...? (I started off at Z0 looking at Z0 and the image doesn't appear at all..... took me ages to work out what was wrong!)


                                    Full code is in the first frame... still amazed at what you can do with so little code!

                                    1 Reply Last reply Reply Quote 2
                                    • pianofire
                                      pianofire Fuze Team last edited by

                                      Talking of terrain generation have you seen this one from Japan:

                                      1 Reply Last reply Reply Quote 3
                                      • Dave
                                        Dave Fuze Team last edited by

                                        This is absolutely awesome... Mandelbrot set is so fascinating and to see it like this is incredibly exciting.

                                        1 Reply Last reply Reply Quote 0
                                        • mixaal
                                          mixaal F last edited by

                                          Hi @Myddrak

                                          Yes I assume this is a bug Fuze team is aware of since they have in their tutorial - 0.0001 shift for the camera Z-axis view as well ;-) I was wondering why and I bumbed into the same bug as you described here.

                                          1 Reply Last reply Reply Quote 0
                                          • ILoveFuze
                                            ILoveFuze last edited by

                                            I found a bug. When you hit the -- button the clouds seem to studder a bit.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post