Announcement

Collapse
No announcement yet.

Decimate-like Functionality in Landscape Mode

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

    Decimate-like Functionality in Landscape Mode

    Would it be possible to implement some sort of attribute in Landscape mode that would allow us to control the vertex count "with minimum shape changes" (https://www.blender.org/manual/model.../decimate.html), such as 'ratio' does in decimate modifier in Blender? This would help tremendously when attempting to create low-poly terrain. I best I am able to achieve through the cross-product trick is this:

    Click image for larger version

Name:	lowpollluuuu.jpg
Views:	1
Size:	135.6 KB
ID:	1175485


    Unfortunately, this is sorta a one trick-pony. He can do spiky terrain nicely, but that is about it. Hills do not look good using this because of the amount of vertexes being used. For now I am only using it as a base layer for the map and using static meshes over it to achieve to overall look I am going for, but it would be nice if the landscape could be a tad bit more flexible. With that being said, UE4 is love, UE4 is life.

    #2
    Correct me if I am wrong but isn't that which you are describing TESSELLATION? I know you can use tessellation to increase detail tremendously.

    Comment


      #3
      Tessellation is both expensive and applied to the whole mesh afaik. Im assuming he would like to be able to increase/decrease the density of vertexes in any given place on the terrain.
      Stylized Low Poly Environment
      Stylized Low Poly Pine Forest
      Stylized Low Poly Buildings
      First Person Horror Template

      Comment


        #4
        Originally posted by Shirk View Post
        Tessellation is both expensive and applied to the whole mesh afaik. Im assuming he would like to be able to increase/decrease the density of vertexes in any given place on the terrain.

        You assume correct. I have been unable to figure out any other tricks that would help obtain that look without just using static meshes. It is not a big deal, but it would be an awesome to be able to have that control.

        Comment


          #5
          Ive always wanted a similar feature as well, to allow finer details when sculpting the terrain and as well as to smooth out large plateaus on their sides.
          Stylized Low Poly Environment
          Stylized Low Poly Pine Forest
          Stylized Low Poly Buildings
          First Person Horror Template

          Comment


            #6
            So sort of like ROAM patch terrain, except that it would be precalculated?

            Comment


              #7
              In one of the digital foundry videos they were discussing the tech behind RISE OF THE TOMB RAIDER. I think one of the interesting things were they used some form of TESSELLATION for the snow that Lara would walk through. Essentially only sub-dividing the areas which required more detail. I am not sure how it is done. My approach for static mesh terrain would be an aggressive LOD system but that probably wont work with very large meshes and probably wont work with terrain.

              I remember a while back I read an article for mobile development where they were discussing using Mipmapping to select areas required for the displacement but I don't really know enough on the technical side of this.

              Comment


                #8
                First of all the landscape is height map driven so this is not possible, and you can't create like in the pic total vertical walls with details.
                Second the vertex in the terrain are always in the same possitions, so you can't handle a style like in the picture, only if you use a external model.
                To this case a voxel terrain system should be better but in UE4 aren't nothing of that...

                *You can edit the density of the landscape.
                Last edited by Hevedy; 03-05-2016, 10:44 AM.
                Hevedy - Instance Tools: https://hevedy.itch.io/hevedyinstances
                Hevedy - Image Tools: https://hevedy.itch.io/imagetools

                Comment


                  #9
                  Originally posted by Hevedy View Post
                  First of all the landscape is height map driven so this is not possible, and you can't create like in the pic total vertical walls with details.
                  Second the vertex in the terrain are always in the same possitions, so you can't handle a style like in the picture, only if you use a external model.
                  you could tessellate the landscape based on the slope, so you tessellate cliffs to get more polys on them. it will not look like a hand-made low-poly mesh but it will be better than stretched polygons

                  for not having the same vertex positions, you can offset them in X and Y with a noise texture hooked into WorldPositionOffset. that would already allow you to achieve a much less uniform topology look as opposed to the default grid-looking vertex positions
                  Follow me on Twitter!
                  Developer of Elium - Prison Escape
                  Local Image-Based Lighting for UE4

                  Comment


                    #10
                    The problem I can see is that the current Tessellation level is based on distance, and also divided into discrete chunks (components) - both of which give landscape it's power and speed. Start adding additional methods to calculate the tessellation and you start incurring significantly more cost. I imagine that it would also be difficult to avoid introducing holes and split-vertices in the terrain, which you obviously don't want.

                    You can reduce the density of a Landscape, and you can modify the LOD levels too - but looking at what OP wants he might just be better off making a mesh in a 3D package and importing that. I doubt even a Voxel system would work very well for that style of terrain, you'd struggle to get the sharp edges. A static mesh would be infinitely faster, would give you finer control over the UV's and even per-poly collision would probably be faster too. Hell you could even divide it up into chunks and LOD each individually if performance is still a concern. Sometimes the old methods are the best

                    EDIT: Also worth adding that you can export the Landscape you've already made as an OBJ and import that into a 3D package like Max.

                    Comment


                      #11
                      TheJamsh: I reckon there's a way to make Tessellation not behave on a distance-based scale, a setting in the material itself.
                      Then if the Tessellation Factors allow an input like a texture you would be able to control *where* the tessellation happens. there's also the Retopologize tool, which might do exactly that, but more properly.

                      You make some fair points about the static meshes approach, but Landscape has a superior and much hassle-less workflow just because of sculpting and LOD.
                      Aside that, and LOD aside, a Landscape is faster than a static mesh (talking about a mesh with the same density). This simply because memory-wise, the Landscape is only a 2D array of Z positions, while a staticmesh is a list of XYZ positions / vertex normals / tangents.
                      Follow me on Twitter!
                      Developer of Elium - Prison Escape
                      Local Image-Based Lighting for UE4

                      Comment


                        #12
                        Oh sorry I meant the tessellation of the Landscape mesh itself, which is what the Landscape uses for LOD. Currently there's no way to change that (you can tweak the parameters, though).

                        Comment


                          #13
                          Originally posted by Chosker View Post
                          you could tessellate the landscape based on the slope, so you tessellate cliffs to get more polys on them. it will not look like a hand-made low-poly mesh but it will be better than stretched polygons

                          for not having the same vertex positions, you can offset them in X and Y with a noise texture hooked into WorldPositionOffset. that would already allow you to achieve a much less uniform topology look as opposed to the default grid-looking vertex positions
                          That looks like a good solution but I think that no collide with the player.
                          Hevedy - Instance Tools: https://hevedy.itch.io/hevedyinstances
                          Hevedy - Image Tools: https://hevedy.itch.io/imagetools

                          Comment


                            #14
                            Originally posted by Hevedy View Post
                            That looks like a good solution but I think that no collide with the player.
                            If you go for the WorldPositionOffset method, Landscape has a tool to re-compute the collision based on the WorldPositionOffset stuff from the material
                            On the paper, everything you need is all there
                            Follow me on Twitter!
                            Developer of Elium - Prison Escape
                            Local Image-Based Lighting for UE4

                            Comment


                              #15
                              Originally posted by Chosker View Post
                              If you go for the WorldPositionOffset method, Landscape has a tool to re-compute the collision based on the WorldPositionOffset stuff from the material
                              On the paper, everything you need is all there
                              This is very interesting! Where can we read more about this feature?
                              I was planning to do this manually by using the same math in material and physics calculation for the tank suspension to add fine grain details to landscape. So we don't have to ride over completely flat polygons anymore.
                              Youtube Channel

                              Comment

                              Working...
                              X