Announcement

Collapse
No announcement yet.

Landscape system, related features and issues

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

    Landscape system, related features and issues

    Hello,

    There are more than several landscape related threads spread across the board and I decided to pull it together in this thread and maintain it as the main landscape feedback thread to help improve the general experience with landscape system in UE4. There are many issues/requests accumulated and are forgotten I hope centralizing the focus in this thread helps getting some attention.

    Requested features that result in performance improvements:

    1. Texture arrays.
    2. Virtual texturing.
    3. Material editor dynamic branching.
    4. Improve material layering performance.
    5. Allow to define vertex density per landscape component. Some areas should have less than 1 vert per meter, some other areas might need more than 1 vert per meter.

    Features that improve artists efficiency with landscapes: These features greatly reduce the time taken to switch between layers, adjust brush radius and strength and let's the artist focus more on the painting process instead.

    1. Shortcuts for switching between layers when painting. i.e pressing 3 on the keyboard = select layer 3.
    2. Increasing/decreasing brush radius by holding down a key and moving mouse forward/backward.
    3. Increasing/decreasing brush strength by holding down a key and moving mouse forward/backward. (Preferably with an indicator showing the strength at mouse pointer instead of reading it from landscape tab).
    4. Shortcuts for switching between brush types.
    5. Ability to rotate brush alpha texture by holding down a key and dragging mouse forward/backward in 3D viewport, without needing to use Texture Rotation slider under landscape tab. Post.

    Features which increase landscape quality:

    1. Pen pressure support for landscape painting. Ticket.
    2. Improve landscape sculpt tools.
    3. Brush falloff curve editor.
    4. Vertical LoDs to preserve heights at far distance.
    5. Spline decals. Here's spline decals in comparison to spline meshes. Thread. Ticket.

    Features to increase landscape usability:

    1. Terrain editing in run time. Thread.
    2. Decals/Spline decals should affect landscape disaplcement. Allows for non destructive landscape editing. Has many other uses i.e spawn a decal upon explosion to create a hole like deformation on landscape surface.
    3. Expose terrain heightfield / normal map to material editor. Sample those in terrain's pixel shader. Weight maps too.
    4. Generate the dominant physical material map from the landscape material to better support procedural landscape texturing.

    Landscape related bugs:

    1. Grass Tool has a large unexpected performance hit in comparison to Foliage Painter. Ticket.
    2. Distance based Tessellation has major unexpected ShadowDepths cost when dynamic directional light affects tessellated surface. Ticket.
    3. CSM blocky shadowing on smooth surfaces, largely affecting landscape surface. Thread. Ticket.
    Last edited by Maximum-Dev; 07-23-2018, 06:25 PM.
    Artstation
    Join the support channel
    Gumroad Store

    #2
    Added bug report
    3. CSM blocky shadowing on smooth surfaces, largely affecting landscape surface. Thread. Ticket.
    to
    Landscape related bugs:
    Artstation
    Join the support channel
    Gumroad Store

    Comment


      #3
      I had some of those and a few more in this thread, 2 years ago.

      don't forget this one (source):
      - Expose terrain heightfield / normal map to material editor( You should be able to sample those in terrain's pixel shader. Weight maps too btw.)
      I requested exposing the normalmap 2.5 years ago, only got ignored. but sampling the heightmap and weightmaps would be great as well
      Follow me on Twitter!
      Developer of Elium - Prison Escape
      Local Image-Based Lighting for UE4

      Comment


        #4
        It is good to have those requests as one thread, because they depend on each other to some degree.

        I can only add this one to the list.

        Comment


          #5
          Good stuff! Added to op.
          Artstation
          Join the support channel
          Gumroad Store

          Comment


            #6
            not sure if you noticed but they added Virtual Texturing to the new roadmap
            Follow me on Twitter!
            Developer of Elium - Prison Escape
            Local Image-Based Lighting for UE4

            Comment


              #7
              ^ That has the potential to be extremely powerful indeed.

              Comment


                #8
                A few things:

                1. Virtual Texturing is said to be done for 4.17.
                2. Unless I am mistaken dynamic branching isn't necessarily a performance improvement due to the way how uniform attributes in shaders work. My knowledge on this is rather basic though so someone else should chime in probably.
                3. Layer weightmaps are already exposed, no? You can sample them for procedural grass placement.
                4. Currently (again, as far as I know), it is impossible to define different physical surfaces for procedurally mapped landscapes, you can only do so via layer painting. This probably falls outside the scope of "landscape features" and more into "material features", but having that ability would be grand.
                5. Another bug (a bit older but probably still there): https://answers.unrealengine.com/que...r-to-load.html (If you scale your landscape, procedural grass takes forever to load and completely destroys your fps)

                Comment


                  #9
                  Originally posted by DamirH View Post
                  A few things:
                  2. Unless I am mistaken dynamic branching isn't necessarily a performance improvement due to the way how uniform attributes in shaders work. My knowledge on this is rather basic though so someone else should chime in probably.
                  Dynamic branch has small static cost but if threads are coherant and cost of code that can be skipped is big enough then dynamic branching can be huge performance win. I just optimized mobile shadow performance by skipping all parts which are fully in static shadows, normal is pointing away of directional light(nDotL) or distance is bigger than max shadow distance. Only about 25% of pixels actually need shadows after these three conditionals. All conditionals are combined to get just one dynamic branch.

                  Comment


                    #10
                    1. Virtual Texturing is said to be done for 4.17.
                    It has appeared on new roadmap, which is a good sign, but I doubt it will make it into 4.17
                    Worth mentioning that virtual texturing should be integrated with landscape rendering properly.
                    2. Unless I am mistaken dynamic branching isn't necessarily a performance improvement due to the way how uniform attributes in shaders work. My knowledge on this is rather basic though so someone else should chime in probably.
                    I guess isn't necessarily a performance improvement is a correct way of describing it. It is quite situational. Dynamic flow control indeed puts additional strain on them registers, but if used with care, gives appreciable performance increase.
                    I have some sort of poor man's metrics in this post.

                    3. Layer weightmaps are already exposed, no? You can sample them for procedural grass placement.
                    I think OP meant being able to sample weightmaps with your own UVs, for POM and what not.

                    Overall, I'd vote for texture arrays (including a tool to make them from texture assets in content browser) to be prioritized, as a feature, that would provide best usability-performance improvement with least implementation efforts.(Surprised, there is no feature request on tracker for this one yet, so I created answerhub post. Make sure to cast some votes and hopefully it will make it onto the tracker )
                    Last edited by Deathrey; 05-23-2017, 09:10 AM.

                    Comment


                      #11
                      Originally posted by Maximum-Dev View Post
                      Hello,
                      ...

                      Requested features that result in performance improvements:

                      ...

                      2. Virtual texturing.

                      ...

                      "virtual texturing" inspired in MegaTextures initially released with idTech 4 engine?

                      I would find cool plugins designed especially for landscape editor. A - Maybe Speedtree like procedural plant generation. B - World Machine Like procedural landscape generator using nodes. Complete. C - Dynamic Weather system (seasons and meteorological phenomena).
                      lunybunny.com
                      lunybunny.com

                      Comment


                        #12
                        Artists should be let to choose what surface type the decal can be projected to i.e landscape surface only. Without that, decal is projected on everything within the volume and that makes decals useless for ground. Notice dude's feet.

                        Artstation
                        Join the support channel
                        Gumroad Store

                        Comment


                          #13
                          deferred decals inherently have this 'all or nothing' way of working
                          in your case I think the "preferred method" is to make your characters not accept decals (do you actually need them to?)
                          Follow me on Twitter!
                          Developer of Elium - Prison Escape
                          Local Image-Based Lighting for UE4

                          Comment


                            #14
                            Originally posted by Chosker View Post
                            deferred decals inherently have this 'all or nothing' way of working
                            in your case I think the "preferred method" is to make your characters not accept decals (do you actually need them to?)
                            While we can select every individual mesh we place in game world and uncheck "Receive Decals", it'd be more productive and time saving to select a decal and uncheck "Affect Static Meshes".
                            Artstation
                            Join the support channel
                            Gumroad Store

                            Comment


                              #15
                              Originally posted by Maximum-Dev View Post
                              While we can select every individual mesh we place in game world and uncheck "Receive Decals", it'd be more productive and time saving to select a decal and uncheck "Affect Static Meshes".
                              it would, but this goes against the concept of deferred decals and its technical implementation and limitations.
                              to add some sort of filtering system into the deferred decals would mean making it more expensive for everyone and everything (though I cannot pinpoint how much). ZoltanE describes it here: https://answers.unrealengine.com/que...to-accept.html
                              Follow me on Twitter!
                              Developer of Elium - Prison Escape
                              Local Image-Based Lighting for UE4

                              Comment

                              Working...
                              X