Announcement

Collapse
No announcement yet.

Spline Decals?

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

    #31
    What is the reason this isn't on the agenda? Can we hear from someone who would know?
    Our Ghosts of War - The World's First World War 2 Survival Game
    Twitter: @ourghostsofwar

    Comment


      #32
      Originally posted by PixelPerfectPolygons View Post
      What is the reason this isn't on the agenda? Can we hear from someone who would know?
      It is currently backlogged, but that is mostly because the focus of engine features comes from either:
      1. Community interest: Threads like this, answerhub reports, social media posts and votes on the issues page (it's at 0 votes right now) help determine that. Please keep giving feedback and make sure to specifically explain how you would expect the tools to work for the best results. The mesh editor is an example of a tool made from these kinds of requests.
      2. Large audience need: Generic tools that help out a large audience are prioritized highly. Sequencer, Niagara, Audio Engine and other tool overhauls fall into this category. This is probably the highest priority in general since it helps so many people.
      3. Epic Games project need: One of Epic's projects needed it, so it was ported over from the game into a generic engine tool. AnimDynamics, VR Forward Renderer and Behavior Trees were created for this. These get added a lot since the tool is already done and it's just a matter of porting and testing.

      If the community keeps up interest in a request, it gets more attention from our devs. I suggest you make sure to bump the threads every now and again to keep developer's eyes on the request.
      Twitch /unrealalexander| Twitter @UnrealAlexander
      How to report a bug? | Installation & Setup issues?
      Call me to a thread by posting this: [MENTION]Alexander Paschall[/MENTION]

      Comment


        #33
        We really need this for our project, please put it on the agenda. It would be extremely useful!

        Thanks

        Comment


          #34
          Problems with using a spline + mesh in UE4:

          1. Mesh clipping with the surface geometry i.e clipping with landscape surface usually where the landscape isn't flat.





          2. If landscape material happen to use tessellation then the entire mesh is clipping with landscape surface.





          3. Material on a mesh doesn't support soft opacity map. Only decals do. And so there are no soft falloff along the sides. The hard transition from mesh to landscape surface is very harsh.





          4. Sometimes can easily see the mesh is floating above the landscape surface.

          5. Spline meshes can't cross on each other without clipping through each other or floating on each other. That's not how it should be in games being developed in 2017.





          6. End of the spline ends up like this:





          7. Additionally, removing the foliage manually all along the splines by hand is an extra pain.





          Solution is Spline Decals!


          1. Decals are projected onto a selected surface type i.e landscape. Therefor they don't have clipping with the surface geometry whether it's a slope, or uses tessellation etc.
          2. Decals support soft opacity maps for smooth falloffs on the sides.
          3. Decals are perfectly projected on the surface, you don't see them floating anywhere.






          4. Decals provide much better visual consistency when crossing each other, they don't clip through each other, nor "float" on each other. They have a sort priority that let you decide which one is projected on the top.





          5. Extra feature, foliage is automatically removed along the spline based on the selected width.





          Now we're dealing with hundreds of roads in our project and the current situation is very counter productive. Landscape spline is a tool to use for things such as rock formations, street lamps, trash cans along a street and things like that, using it to create the roads themselves is not an expectation to have from it. This isn't affecting us only, I'm sure majority of people who need spline decals don't know this thread exists here and certainly don't know there's a ticket they should vote on. But I think enough people have stressed the importance of this feature.
          Last edited by Maximum-Dev; 05-04-2017, 04:57 AM.

          Comment


            #35
            You the point about put over the tess is a good example

            Originally posted by Maximum-Dev View Post
            Well that image have actually a missing feature that was in UDK individual Lens Flares effects (that every game in earth have since 2007 or before)
            Hevedy - Instance Tools: https://hevedy.itch.io/hevedyinstances
            Hevedy - Image Tools: https://hevedy.itch.io/imagetools

            Comment


              #36
              I agree with mostly everything, but there's one point in particular that I'd like to stress...


              Originally posted by Maximum-Dev View Post
              3. Decals are perfectly projected on the surface, you don't see them floating anywhere.
              Given that spline decals would most likely be based on Mesh Decals (I could elaborate on why), this is false.
              I'm gonna quote myself from this same thread:
              Originally posted by Chosker View Post
              also mesh decals cause some bad artifacts at great view distances, since based on distance they push themselves towards the camera to avoid z-fighting. yes I've seen the code, it's MeshDecals.usf line 104 (on UE4 4.15), which is this:
              Code:
              // todo: tweak or expose (cvar or per mesh/material setting), if needed the artist always can create a WorldPositionOffset adjustment in the shader (e.g. -0.1*CameraDirectionVector )
              Output.Position.z += 0.0001f * Output.Position.w;
              this results in mesh decals ending up wrongly being drawn on top of more and more stuff, the more you zoom out
              as the code shows, even on short distances they don't project perfectly into the surface (they always float a bit, and more as you go further away from it).
              if you've used mesh decals, you might have already found out that they behave really really bad over long distances
              Follow me on Twitter!
              Developer of Elium - Prison Escape
              Local Image-Based Lighting for UE4

              Comment


                #37
                and a couple extra comments:
                Originally posted by Maximum-Dev View Post
                4. Decals provide much better visual consistency when crossing each other, they don't clip through each other, nor "float" on each other. They have a sort priority that let you decide which one is projected on the top.
                this wouldn't work if the crossing comes from the same spline, i.e. an "8"

                also overlapping roads like that are really meh. I'd expect a crossroad!
                Follow me on Twitter!
                Developer of Elium - Prison Escape
                Local Image-Based Lighting for UE4

                Comment


                  #38
                  Originally posted by Chosker View Post
                  I agree with mostly everything, but there's one point in particular that I'd like to stress...



                  Given that spline decals would most likely be based on Mesh Decals (I could elaborate on why), this is false.
                  I'm gonna quote myself from this same thread:


                  as the code shows, even on short distances they don't project perfectly into the surface (they always float a bit, and more as you go further away from it).
                  if you've used mesh decals, you might have already found out that they behave really really bad over long distances
                  No. In the example I provided the material is "projected" on the surface. There is zero distance between the spline and the destination surface and the spline doesn't necessarily need to follow the landscape shape at all. That's why it's helping so much and saves a bunch of time.
                  Here you see the spline is floating 5 meters in the air but the projection on the ground is perfectly doing the job. (And it's set to affect terrain only, so anything going between the terrain and the spline isn't disturbing the material projection.





                  Please download any version of cryengine and check it out.

                  this wouldn't work if the crossing comes from the same spline, i.e. an "8"
                  It's working... better than those nasty results of Landscape Splines isn't it?





                  also overlapping roads like that are really meh. I'd expect a crossroad!
                  For dirt paths and trails it works fine. Crossroads are a bit out of the scope of a spline decal.
                  Last edited by Maximum-Dev; 04-28-2017, 05:10 PM.

                  Comment


                    #39
                    Originally posted by Maximum-Dev View Post
                    No. In the example I provided the material is "projected" on the surface. There is zero distance between the spline and the destination surface and the spline doesn't necessarily need to follow the landscape shape at all. That's why it's helping so much and saves a bunch of time.
                    Here you see the spline is floating 5 meters in the air but the projection on the ground is perfectly doing the job. (And it's set to affect terrain only, so anything going between the terrain and the spline isn't disturbing the material projection.
                    you're referring to the way CryEngine implemented it as if UE4 would implement it like that. What I'm describing is the behavior of the existing decal behavior in UE4 and extrapolating it to what I believe would be the natural step towards it being expanded into Spline Decals.

                    I can say that Spline Decals are a very very non-trivial thing to implement. We tried it at work (not me personally, but my co-workers) and deemed it too complex for many reasons.
                    Knowing that much already in the context of a UE4 implementation, I would strongly assume that if Epic ever does it it wouldn't be based on the real Decals (the box decals that actually project into the geometry - that's the non-trivial part), but would base it on the Mesh Decals (which aren't real decals, they use a different pipeline under the hood and don't project into geometry at all - they are basically a translucent material rendered in the deferred decal pass, with a few hacks like the code I showed in my previous post).


                    Originally posted by Maximum-Dev View Post
                    Please download any version of cryengine and check it out.

                    It's working... better than those nasty results of Landscape Splines isn't it?
                    mind you, I'm not doubting the feature in the CryEngine implementation, or how much better it is compared to the current solutions we're offered in UE4. I'm definitely one of those wanting this feature to exist, but I also want it to exist properly (unlike the Mesh Decals feature)

                    btw IIRC the CryEngine decals are still using the old technique (geometry decals, not deferred decals as UE4) where the decal duplicates the geometry (and topology) of whatever is under it. I wonder how this technique works with terrain LOD in CryEngine (this didn't fare well in UE3, decals would get swallowed by the landscape due to LOD)


                    Originally posted by Maximum-Dev View Post
                    For dirt paths and trails it works fine. Crossroads are a bit out of the scope of a spline decal.
                    I'd agree that a citybuilder crossroads like Cities Skylines would be out of the scope, but your self-overlap example is still not very pleasing IMO.
                    I'd say a good standard of quality would be KC: D (which is also based on CryEngine). yes it's not perfectly seamless but it feels natural enough

                    Click image for larger version

Name:	2704111-5731200400-E32cB.jpg
Views:	1
Size:	635.5 KB
ID:	1127058
                    Last edited by Chosker; 04-28-2017, 06:03 PM.
                    Follow me on Twitter!
                    Developer of Elium - Prison Escape
                    Local Image-Based Lighting for UE4

                    Comment


                      #40
                      [MENTION=540]Chosker[/MENTION], KC is using the same decal I showed above. In the picture you linked it's several splines that are overlapping and crossing on top of each other, it's just the colors are the same and the water puddle decal in the middle makes it natural. Soft opacity is also playing a big role otherwise with hard edges there's no way to get good results.

                      Comment


                        #41
                        Originally posted by Chosker View Post
                        I can say that Spline Decals are a very very non-trivial thing to implement. We tried it at work (not me personally, but my co-workers) and deemed it too complex for many reasons.
                        Knowing that much already in the context of a UE4 implementation, I would strongly assume that if Epic ever does it it wouldn't be based on the real Decals (the box decals that actually project into the geometry - that's the non-trivial part)...
                        Crytek must have had some magicians to have done it in 2005-2006.
                        *Sends magicians to Epic*

                        Comment


                          #42
                          yeah I guess the KC: D roads aren't automatically handling crossroads, and probably did a lot of touchups to get it looking as it does

                          well Crytek's strength has always been graphics ;D
                          it's the implementation that's completely different. Epic seems to have had strong reasons to implement decals as deferred instead of geometry, so I'm not sure they'd go back to that old implementation (though they could just port it from UE3, then use as a base to start the spline version)
                          still curious how the CryEngine version behaves with terrain LOD. either it gets swallowed by it (as happens in UE3) or they have to re-compute the mesh every frame (which in the context of UE3 would be really expensive)
                          Follow me on Twitter!
                          Developer of Elium - Prison Escape
                          Local Image-Based Lighting for UE4

                          Comment


                            #43
                            Originally posted by Chosker View Post
                            ...still curious how the CryEngine version behaves with terrain LOD. either it gets swallowed by it (as happens in UE3) or they have to re-compute the mesh every frame (which in the context of UE3 would be really expensive)
                            I don't know how it's done, I really don't know much about the technical aspects of implementing a feature, but as an artist with sharp eyes I didn't see anything going wrong in distance when terrain is LODing. It just works perfectly. I had a very sweet 5 years of Cryengining with it. Oh and BTW performance never had an issue even when placing a hundred roads.

                            Comment


                              #44
                              Originally posted by Alexander Paschall View Post
                              It is currently backlogged, but that is mostly because the focus of engine features comes from either:
                              1. Community interest: Threads like this, answerhub reports, social media posts and votes on the issues page (it's at 0 votes right now) help determine that. Please keep giving feedback and make sure to specifically explain how you would expect the tools to work for the best results. The mesh editor is an example of a tool made from these kinds of requests.
                              2. Large audience need: Generic tools that help out a large audience are prioritized highly. Sequencer, Niagara, Audio Engine and other tool overhauls fall into this category. This is probably the highest priority in general since it helps so many people.
                              3. Epic Games project need: One of Epic's projects needed it, so it was ported over from the game into a generic engine tool. AnimDynamics, VR Forward Renderer and Behavior Trees were created for this. These get added a lot since the tool is already done and it's just a matter of porting and testing.

                              If the community keeps up interest in a request, it gets more attention from our devs. I suggest you make sure to bump the threads every now and again to keep developer's eyes on the request.
                              Hey Alex,

                              I'm pretty certain the 5 votes on there are from people who have posted in here. The rest of UE4 userbase don't know about this thread/feature request so I don't know how anyone who needs this can vote for it unless I reach out to everyone and let them know this feature request exists. Voting system isn't an effective way of prioritizing tasks. Common sense indicates there's a large audience needing proper roads in their projects, and for that, they need spline decals. I've created a thorough comparison here to demonstrate why people need it. Let me know how many votes are needed and we'll give it to you.

                              Comment


                                #45
                                Originally posted by Maximum-Dev View Post
                                [MENTION=540]Chosker[/MENTION]Soft opacity is also playing a big role otherwise with hard edges there's no way to get good results.
                                Look into Clinton Crumpler's underground bunker asset; it uses dither temporal AA to avoid this and uses decals at intersections and stuff. It looks fine (in VR the depth effects of it floating slightly above the ground are a bit of an issue, but not in 2D).

                                Comment

                                Working...
                                X