Announcement

Collapse
No announcement yet.

(DOWNLOAD) Realistic Procedural Desert

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    (DOWNLOAD) Realistic Procedural Desert

    This is something I've been working on recently, first I tried World Machine but I wasn't able to achieve the look I wanted so I switched to Blender. In blender I was able to procedurally generate a heightmap with distorted noise and then render it to a 4096x4096 PNG file. When first imported to UE4 the terrain is all blocky but with the smooth tool that can be fixed easily. The result is satisfactory, but there are a lot of shadow issues with the terrain and it's pretty much impossible to get the sharp edges of real sand dunes with this method.

    Let me know what you think, any advice or critique is appreciated!

    Here's some screenshots:



    Download the .blend file here: https://www.mediafire.com/?bxvm2o3r653b95t
    (Edit the heightmap until you're happy with it then render it out at the size you want by making a material that uses the heightmap as a texture.)

    #2
    [MENTION=34749]Dogsofknowledge[/MENTION] It's looking really nice! Could you give some insights on how you distorted the noise for the sand dunes. I'm working on a node based landscape tool and would like to see if we can model a similar noise function with it

    Keep up the awesome work and I'm looking forward to seeing what you create next
    Dungeon Architect | Prefabricator

    Comment


      #3
      Originally posted by Ali Akbar View Post
      [MENTION=34749]Dogsofknowledge[/MENTION] It's looking really nice! Could you give some insights on how you distorted the noise for the sand dunes. I'm working on a node based landscape tool and would like to see if we can model a similar noise function with it

      Keep up the awesome work and I'm looking forward to seeing what you create next
      Thanks, I just used the distorted noise texture in blender and set the basis to voronoi f1. With this method you can make heightmaps at resolutions up to 16k or bigger depending on how much time you want to spend rendering. In the provided blend file you can get a closer look at how it works.
      Last edited by Dogsofknowledge; 08-31-2016, 11:56 AM.

      Comment


        #4
        Currently experimenting with tessellation, it really improves the look of the sand but it's way too slow. I'm trying to set up distance based tessellation but I really have no idea how to go about doing that.

        Comment


          #5
          https://answers.unrealengine.com/que...h-distanc.html

          Haven't you got this to work? This should be the best approach. Also 4.13 have got some optimizations regarding this matter, where only the highest lod will produce tessellated triangles, but to futher optimize this to only affect the nearby triangles to the camera, the above technique still have to be implemented in the material.
          * Sharp and responsive Temporal Anti-Aliasing tips and tricks
          * Pitch-shift source effect (DSP) over the network (VOIP)
          * My Portfolio and Developer Blog

          Comment


            #6
            Originally posted by Konflict View Post
            https://answers.unrealengine.com/que...h-distanc.html

            Haven't you got this to work? This should be the best approach. Also 4.13 have got some optimizations regarding this matter, where only the highest lod will produce tessellated triangles, but to futher optimize this to only affect the nearby triangles to the camera, the above technique still have to be implemented in the material.
            The first problem is that I have no clue how to implement the setup on that page into my material, and there's a bug or something in 4.13 that breaks the landscape completely. In 4.13 for some reason only the highest LOD is rendered and the landscape is culled at any other LOD. It might be a problem with my material, but it doesn't happen in 4.12.

            Comment


              #7
              John Alcatraz reply had this image on the answerhub:

              http://puu.sh/jLVeU/aafc56ad06.png

              The important part is the Tesselation Multiplier connection, which tells the rendering pipeline how much the triangles have to be tesselated. Since the calculus use the current camera's world position the nearby triangles around the camera will be split up using a high Tesselation Multiplier, and in the distance this TMultiplier goes down to 0, where no tesselation will happen. Imagine a radial gradient fade which will be applied on the landscape around the camera.

              I'll update my engine soon to be 4.13 so i can test this on a landscape but if you see there's a bug that you can reproduce in 4.13 maybe you should open a file on the answerhub to report the error. Anyway, this should work in 4.12.x just use it for the time being.
              * Sharp and responsive Temporal Anti-Aliasing tips and tricks
              * Pitch-shift source effect (DSP) over the network (VOIP)
              * My Portfolio and Developer Blog

              Comment


                #8
                Originally posted by Konflict View Post
                John Alcatraz reply had this image on the answerhub:

                http://puu.sh/jLVeU/aafc56ad06.png

                The important part is the Tesselation Multiplier connection, which tells the rendering pipeline how much the triangles have to be tesselated. Since the calculus use the current camera's world position the nearby triangles around the camera will be split up using a high Tesselation Multiplier, and in the distance this TMultiplier goes down to 0, where no tesselation will happen. Imagine a radial gradient fade which will be applied on the landscape around the camera.

                I'll update my engine soon to be 4.13 so i can test this on a landscape but if you see there's a bug that you can reproduce in 4.13 maybe you should open a file on the answerhub to report the error. Anyway, this should work in 4.12.x just use it for the time being.
                Yeah, I tried copying that image but it just gets rid of all the tesselation without improving the FPS at all. I'll do some more testing in 4.13 and then post a bug report on answerhub.

                Comment


                  #9
                  The "distance" (offset) as well as the "fade length" values can be tweaked to suit your landscape dimensions and characteristics. Using the values from the image (eg. fade=1000) only a super tiny landscape will suit, but for larger landscape you might want to use values like 10k or higher for the offset value.

                  Anyway i did this little test, implemented the same graph with the fade value of 1000 and seem to be working just fine in 4.12 on a tiny landscape.

                  Attached Files
                  Last edited by Konflict; 09-02-2016, 03:04 PM.
                  * Sharp and responsive Temporal Anti-Aliasing tips and tricks
                  * Pitch-shift source effect (DSP) over the network (VOIP)
                  * My Portfolio and Developer Blog

                  Comment


                    #10
                    Originally posted by Konflict View Post
                    The "distance" (offset) as well as the "fade length" values can be tweaked to suit your landscape dimensions and characteristics. Using the values from the image (eg. fade=1000) only a super tiny landscape will suit, but for larger landscape you might want to use values like 10k or higher for the offset value.

                    Anyway i did this little test, implemented the same graph with the fade value of 1000 and seem to be working just fine in 4.12 on a tiny landscape.

                    Ok, I increased the fade value and it works fine now, but the FPS isn't any different so there's not really any point in doing all that.... Thanks so much for all of your help though, I really appreciate it!
                    Last edited by Dogsofknowledge; 09-02-2016, 07:40 PM.

                    Comment


                      #11
                      Originally posted by Dogsofknowledge View Post
                      This is something I've been working on recently, first I tried World Machine but I wasn't able to achieve the look I wanted so I switched to Blender. In blender I was able to procedurally generate a heightmap with distorted noise and then render it to a 4096x4096 PNG file. When first imported to UE4 the terrain is all blocky but with the smooth tool that can be fixed easily. The result is satisfactory, but there are a lot of shadow issues with the terrain and it's pretty much impossible to get the sharp edges of real sand dunes with this method.

                      Let me know what you think, any advice or critique is appreciated!
                      ...)
                      Good Job! it looks pretty good. specially colors.
                      i made a desert scene some months ago and i actually made it with world machine,i guess my reference was a lot different from yours!
                      Click image for larger version

Name:	Terrian.jpg
Views:	1
Size:	220.0 KB
ID:	1114741

                      i didint use tesselation, it was slow and unnecessary i used POM instead.

                      Click image for larger version

Name:	POM_Far.jpg
Views:	1
Size:	150.0 KB
ID:	1114742
                      Click image for larger version

Name:	POM.jpg
Views:	1
Size:	68.8 KB
ID:	1114743

                      also use a sand texture for specular and roughness it can make the sand feels a lot better
                      Click image for larger version

Name:	Specular.jpg
Views:	1
Size:	179.9 KB
ID:	1114744

                      i didn't finish the scene as it was just a little test but here is my last result
                      after adding cloud and playing with post process a bit.
                      Click image for larger version

Name:	Terrian.jpg
Views:	1
Size:	54.6 KB
ID:	1114745

                      Comment


                        #12
                        i also used multiple Diffuse and Normal map, painted them over different places on terrian as you can see in the last picture the top of peak is quite different and a lot smoother compare to lower parts.

                        i got my sand textures from here:
                        http://www.textures.com/download/soilbeach0087/32630
                        Attached Files
                        Last edited by m-motion; 09-07-2016, 10:39 AM.

                        Comment


                          #13
                          Originally posted by m-motion View Post
                          Good Job! it looks pretty good. specially colors.
                          i made a desert scene some months ago and i actually made it with world machine,i guess my reference was a lot different from yours!


                          i didint use tesselation, it was slow and unnecessary i used POM instead.

                          also use a sand texture for specular and roughness it can make the sand feels a lot better


                          i didn't finish the scene as it was just a little test but here is my last result
                          after adding cloud and playing with post process a bit.
                          Nice result, did you use a third party macro? Thanks for the tip though, I'll see if I can get a POM material working.

                          Comment


                            #14
                            no I didn't used any micro, its actually super easy to make a desert.
                            1.use a PerlinNoise generator
                            2.set feature size to 0.6
                            3.set noise type to "Stephen's Experimental"
                            4.set persistence to a low value (lower than 0.35)
                            5.add a clamp node and clamp your perline noise "from 0 to 450"
                            and that is it . with only two node.
                            you add more filters and generators to make it more like what you want
                            Last edited by m-motion; 09-07-2016, 02:24 PM.

                            Comment


                              #15
                              Originally posted by m-motion View Post
                              no I didn't used any micro, its actually super easy to make a desert.
                              1.use a PerlinNoise generator
                              2.set feature size to 0.6
                              3.set noise type to "Stephen's Experimental"
                              4.set persistence to a low value (lower than 0.35)
                              5.add a clamp node and clamp your perline noise "from 0 to 450"
                              and that is it . with only two node.
                              you add more filters and generators to make it more like what you want
                              Awesome, thanks a lot! I don't actually have WM working now, I lost the download email for it and I'm waiting for the support team to reply. Once I get it working I'll try this

                              Comment

                              Working...
                              X