Pre-clustering is the optimization. Shoot a ray, hit a cluster, draw only the clusters facing the screen, and only the ones that are enough to fill the screen 100%, close to no overdraw. Done.
There is where ‘just chuck a bunch of polys in that model’ comes into play since you are only going to draw just-about enough to see what you can see, and nothing else.
It’s not necessarily optimized for performance such as it is ‘endless’ detail. Sure, it’s a bit of a cost-bump to get up/into it, but once you are in that compute-space, the upper-limit isn’t so bounded. And at some point, enough is enough if the detail is smaller than a pixel.
Hi folks, how do we do the equivalent of triplanar mapping with tesselation if we don’t have tesselation anymore? I will try Bump Offset and POM but not sure the results will be satisfactory.
I JUST stumbled upon this fact and I am baffled. I cannot comprehend how a replacement for this feature would work.
Can anyone point me towards tutorials or learning resources that help me understand how the new workflow looks like for the simplest usecases of tessellation and world displacement?
Say I have very simple geometry like planes, cubes, spheres, and I want to blend different textures with different bump maps driven by mask textures inside a material. How can I do that in UE5 when there is no tesselation / world displacement.
And it cannot mean having to create versions of these meshes with insane poly counts to make use of Nanite. After all I am talking about very primitive geometry.
I found another video using blueprint driven tessellation and geometry displacement, but that also would not allow to blend or mask different bump maps easily.
I cannot believe noone thought of an actual replacement?
Sorry if I missed something, I did not read the full 83 post thread.
Unreal 5.1 has WPO w/Nanite so the ‘replacement’ would be to jack up the tessellation on the source-mesh and let Nanite sort out culling and what-not.
You end up trading some complexity w/Nanite and somewhat larger source-meshes for a much cheaper solution (computationally) which is much-more performant than tessellation. Plus with what other benefits Nanite offers, it’s a nice ‘grab bag’ of (nanite) abilities to work with.
No, it’s not really 1:1 but if you make the source mesh dense enough, you ought to never notice and, as well, have a more evenly-tessellated mesh overall.
I fail to see how tessellation - the ability to tell a mesh to have more tris than it does during runtime - is even remotely linked to blending 2 textures…
And thats without even considering the fact that bump offset in ue4 - parallax mapping for anyone that doesn’t use the engine - is all predicated in not modifying the geometry by acting on a UV… so again, not sure what you actually need to do, but im not sure you are sure of it either?
Yes but it puts more load on modelling and bloats up storage consumption as even the most primitive meshes have to be tessellated if you want to work with bump maps.
I understand this has many advantages, but it is a tradeoff. And if you can live with the worse computational performance, one should be able to still make use of tessellation and displacement IMO.
Being able to affect the look of a 3D model through shaders alone makes it easier to blend different types of surfaces with different properties together on the same geometrical surface. Of course this can not only applied to diffuse maps but also to specular, roughness, normal and also displacement maps - all “textures”.
So now when you are working with more simple and primitive meshes that do not have a very dense topology, displacing vertices is not a viable solution. This is were formerly tessellation could be used.
Relying on Nanite as a replacement would mean having to work with meshes with an increased topology just to make it possible to work with vertex offset, even if the base geometry does not benefit at all. Imagine having a square plane which would normally need 2 triangles to model it, but now you have to up it by a lot more just so you can use it with Nanine WPO.
“Jacking up” tessellation in the source-mesh just takes a lot of freedom and simplicity away from what tessellation and displacement provided in previous versions. You could basically apply a height map to your geometry.
I am of course sure of what I want to achieve but not sure how I would get there with the new tools. Formerly, tessellation and displacement would work very well for this. I just asked how the new tools are intended to be used in order to have similar effects.
Maybe POM is a good alternative for a lot of use cases, but it’s not the same as it does not modify geometry. A mix of POM and vertex displacement sounds even closer, but would still require a somewhat dense vertex topology to allow for a decent level of detail, which would in turn again mean manual tessellation.
It couldn’t at all just a little while ago, and even now that it can it’s rather questionable how well it works since the whole nanite system is predicated on modifying geometry…
Shifting vertex that arent there is kinda impossible…
Realistically manual tessellation has always been a better choiche because of 2 reasons.
you actually control the vertex positions.
it has the same load in the end result.
The one point you have right is that the mesh is slightly more expensive to store.
But really, by how much?
It’s less than peanuts in most if not all cases.
Next, tessellation was/is a multiplier, and alwyas produced questionable slices by design.
The tris count would be multipled, but to add vertex to a square mesh like you posit, you’ have to crank that well past the maxmum that was allowed.
For instance the landscape with a 1m square needs around an 8 multiplier to even start to do anything visual via shader.
You can arguably achieve a better result with less tris manually by paying attention to how you split up the square for best possible vertex distribution.
On the rest, only you can possibly know what end result you want.
I just seriously doubt run time tessellation makes any difference to the end result - in all cases.
This is particulalry true for stuff that needs to LOD down.
Lod’s have to be particulalry crafted for things like water and terrain(snow) that needs to displace without creaing gaps - and, procedural tessellation never did that well…
It’s so jarring to me seeing people so upset about tessellation being removed when it was so annoying to work with. I remember when the UNIGINE’s Heaven Benchmark from 2009 and the Stonegiant tech demo from 2010 released, showcasing tessellation being used for almost everything, felt like it was going to be the next big graphical feature in games, and it went nowhere. Tessellation is barely used in any games except for water and landscapes. Nanite is so much easier to work with, has performance benefits, and uses less disk space. I wont be missing tessellation at all.
It really is, for what you get out the other end. Consider me one of the converted.
To my mind, WPO does the same thing (basically?) on a highly tessellated mesh, regardless of how that mesh was tessellated, either on-the-fly or ‘nanotized’ up-front.
Given 5.1 will support this, I’m in the ‘im-good’ category, esp-with improvements to the heightmesh (mipping-issue aside).
Even in landscapes is widely not used in production due to it’s cost. UE users love it because it’s a low effort way to make their landscape look detailed without the compromises that a real shipped product would have to make.
While I know there are some use cases that aren’t fully covered by alternatives, it’s definitely blown away out of proportion.
Half of gamers probably can’t even tell the difference between POM and tesselation.
Many studios have wanted to ship their games (UE or not) with tesselation, but had to cut it for performance reasons, get creative and find an alternative.
Hopefully Nanite landscapes - which we know they’re exploring - finally give us the no compromise detail we all want.
Regarding characters… Static LODs look just fine. Try to find a pointy polygon on Kratos in the new God of War, for example.
Exceptionally few games every shipped with character tesselation. I think one of the Hitman games did, because it smoothed out Agent’s forehead a bit. But it’d probably have been better just to have another LOD instead.
Water is a true loss, and one of the better applications for tesselation. But with Nanite support for WPO growing maybe that won’t be missed for long.
Procedural meshes are another area that suffered, but geometry scripting is thankfully bringing some of that back power. This is probably the most niche case, though.
Its not.
Tesselation on water causes all sorts of artefacts you have to counter when you use proper gerstner functions.
A properly LODing mesh with a vert every 10cm at LOD0 will give you better performance and a much better look.
Ofc its 34 tris per meter or something similar. But you budget that into the general scene cost.
Sure, its not as easy as setting a multiplier, and you have to work on the mesh.
The trade off is you don’t have to bash your brain in against the shader to get that to work without artifacts.
The high cost of water isnt due to tessellation or to the mesh, but to the WPO function combined to the transparency. And when on top of that your shader supports vector fileds, distance to nearest surface, etc, thats the real cost bump of it…
I can see procedural meshes needing to actually be created correctly, but the computation time in the end - between setting a tessellation multiplier and building it with the same end result tris count - shouldn’t really change all that much…
My point is that with water you need geometry that can displace in real time. You can’t hide it with occlusion and foliage. POM doesn’t work for more that a ripple. None of the other options really work. Either you tesselate or you use LODs.
Not saying UE4 handled it well, but it’s a reasonable application because the only real alternative is an array of 100s of LoD’ing ocean tiles that could’ve been a single seamless plane.
Few other applications of tesselation even get remotely that much justification though. I don’t really miss it. But I do understand why some do, and it does still have at least some minimal use.
I’m optimistic that the rest will forget about tesselation too within a few versions.
I don’t think you get how tessellation works.
A single plain would need a multiplier of a billion to get enough geometry to handle water. In short, it wasnt even possible with tessellation…
I don’t mean a plane of 2 tris, but a larger water plane instance than you could get by with if you had to handle LODs yourself. You shouldn’t be so quick to assume what others know especially since I’m one of the few who actually agrees that tesselation is past it’s prime.
Edit: or more accurately it never really had a prime…
One fairly recent example (not UE, but regardless) is Far Cry 5, which rejected landscape tesselation due to it’s cost but did use water tesselation. Many shipped games use it for water even if they don’t elsewhere.
Its essentially the same.
Even if you have a plane with 1m per vertex like the landscape, you need high multipliers to get to something decent.
At the core, every square can only be 2 tris or more.
And you likely still have to tile several tiles to get some credible water.
Loading in a single sheet means no culling.
No culling means less performance.
To get around that, you could use some distance based multiplying algorhytm somewhat, to lessen the cost of tessellation. But you still pay way too high an entry cost compared to a proper lod ready mesh used in conjunction to an HISM…
IN ue, at least, its always been more than prohibitive even when “done right”…
Do not we have a dedicated water-solution for this?
Between water and the height-mesh, we’ve got endlessly-self-tessellating meshes for water and landscapes (or other stuff if you are creative). Nanite w/WPO and opacity takes care of much of what’s left to render. Granted, skeletal-meshes and some other things are not ‘tessellatable’ but I’m looking bullish on the future.
It’s a new kind of rendering/pipeline paradigm. It’s annoying, sucks, we have to learn new things, but that in and of itself as a step is not unusual. It’s just a sign of the times.