What is the reason this isn't on the agenda? Can we hear from someone who would know?
Announcement
Collapse
No announcement yet.
Spline Decals?
Collapse
X
-
Originally posted by PixelPerfectPolygons View PostWhat is the reason this isn't on the agenda? Can we hear from someone who would know?
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
-
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.
- 3 likes
Comment
-
You the point about put over the tess is a good example
Originally posted by Maximum-Dev View PostHevedy - Instance Tools: https://hevedy.itch.io/hevedyinstances
Hevedy - Image Tools: https://hevedy.itch.io/imagetools
Comment
-
I agree with mostly everything, but there's one point in particular that I'd like to stress...
Originally posted by Maximum-Dev View Post3. Decals are perfectly projected on the surface, you don't see them floating anywhere.
I'm gonna quote myself from this same thread:
Originally posted by Chosker View Postalso 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;
if you've used mesh decals, you might have already found out that they behave really really bad over long distances
Comment
-
and a couple extra comments:
Originally posted by Maximum-Dev View Post4. 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.
also overlapping roads like that are really meh. I'd expect a crossroad!
Comment
-
Originally posted by Chosker View PostI 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
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"
also overlapping roads like that are really meh. I'd expect a crossroad!Last edited by Maximum-Dev; 04-28-2017, 05:10 PM.
- 1 like
Comment
-
Originally posted by Maximum-Dev View PostNo. 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.
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 PostPlease download any version of cryengine and check it out.
It's working... better than those nasty results of Landscape Splines isn't it?
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 PostFor dirt paths and trails it works fine. Crossroads are a bit out of the scope of a spline decal.
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
Last edited by Chosker; 04-28-2017, 06:03 PM.
- 1 like
Comment
-
[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
-
Originally posted by Chosker View PostI 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)...
*Sends magicians to Epic*
- 1 like
Comment
-
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)
Comment
-
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)
- 1 like
Comment
-
Originally posted by Alexander Paschall View PostIt 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.
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.
- 1 like
Comment
-
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.
Comment
Comment