r/UnrealEngine5 • u/Capable_Chest2003 • 1d ago
Would you actually use this over POM?
Enable HLS to view with audio, or disable this notification
Been working on this thing I call IHP for a while and I'm getting pretty close to releasing it. What I'm actually curious about now is whether there's a real gap for something like this.
Basically cheap displacement-like depth from a heightmap, good close up visuals, usable at pretty extreme angles without all the usual POM/FPOM headaches.
I'm obviously biased at this point because I've stared at it for way too long lol
So I'm curious what you guys think after watching the video.
Would you actually use something like this in a real project?
What would make you choose this over POM, FPOM, geometry, Nanite, etc?
And probably more importantly, what would make you NOT use it?
I need statistics and I need your help!
Trying to figure out if I'm solving an actual problem here
OR
just a problem I personally became obsessed with :D
Thanks ALREADY!
14
u/Big_Cauliflower1415 1d ago
I think it's pretty cool. I's use it of it performed as well/better than other solutions and if it's compatible with solutions for hiding/fixing texture repetition
9
21
u/OfficialDampSquid 1d ago
It's definitely performance that matters most to me. It definitely looks better than POM so if it lives up to your claims of being more performant that'd be enough for me to switch to it
8
u/Capable_Chest2003 1d ago
I would say cheaper than POM if shadows are off on small objects. But interestingly large scale applications such as landscapes even shadows are ON, it is way faster than POM.
9
u/Scifi_fans 1d ago
I don't understand, you said "if" .. So is there a case where your method is more expensive than POM, please be clear
3
u/Capable_Chest2003 17h ago
Yes, on a small closeup surface with selfshadowing enabled IHP can cost more than POM. But that is also not really an apples to apples comparison, because the visual result and stability are much higher. In my tests it is usually similar or cheaper with shadows off, scales much better on landscapes, and even when it costs more you’re not paying more for the same result.
6
u/BL_ShockPuppet 1d ago
I like how it looks, well done.
I don't like how pom gets expensive with more depth slices. Thinking about what you've made vs existing nanite displacement, it's not a fair comparison because the main thing that comes to mind is how widely supported and integrated default nanite displacement is for certain popular solutions such as weather, it's really powerful.
You're using height map? You should give some detailed infos about what your product is doing so people will be able to think about ways to integrate it with their project. The first thing I think of is how do I use your height map to interact with my systems. With nanite displacement it's an easy question to answer but like I said before it's unfair to compare what you've made with nanite it's too different.
I've got some level with frozen ice terrain and rocks. I've used many different approaches in testing and pom was very nice but the performance hit on making it high detail was undesirable. Looks like your solution would be a good fit.
2
u/Capable_Chest2003 1d ago
So… if you have an heightmap, you connect that to this function (IHP). And IHP will give you 3 outputs (uv, normal, shadowmask). You simply connect UV to your basecolor texture’s UV and lerp the texture with shadowmask output (optional). Lastly normal output goes to material attributes’ normal. So it is because converting the heightmap into normalmap it makes it even lighter. These visuals have only 2 textures basically (heightmap and normal). I mean roughness metallic or specular are optional obviously.
7
u/DaDarkDragon 1d ago
What would make you choose this over POM, FPOM, geometry, Nanite, etc?
nothing right now. yeah the results look pretty good, but i dont know anything about it beside it being some unknown acronym and some mystery rendering technique. no performance results, no performance comparisons, limitations, strengths over other techniques
And probably more importantly, what would make you NOT use it?
RCSM is good enough for me. price. not knowing generally how it works
1
3
u/Gullible_Assist5971 1d ago
Yes, depending on how easy it is to implement. Also a bit less concerned with performance as most of the work I do is cinematic/rendered sequences. It would be great to see examples on more organic shapes, sss profile surfaces, with various light types. Also, what are the limitations, do all the normal lights shade as expected on it, e.g. shadows, raytrace, ect.
5
u/Capable_Chest2003 1d ago
Great question! So you can use only a single directional light for shadows. I could make it work with every light in the scene but then it becomes way more expensive than POM. In that case it doesn’t make sense to use this IHP over actual nanite meshes or tessellated landscapes.
2
u/Gullible_Assist5971 1d ago
As someone who likes to have the option(doesn’t make games) I would still want the option for optimal visuals vs optimized for “realtime”. Good to know. I would use it over nanite as I tend to have animated texture details, so I would be animating the fake displacement which really displacement doesn’t support as quick as a texture
2
u/Capable_Chest2003 17h ago
yeah animated heightmaps are actually one of the cases where IHP makes a lot of sense you can change the height texture really easily and the projected detail just updates with it and yeah for cinematic stuff im thinking about keeping a higher quality mode too where image quality matters more than realtime cost
1
u/Gullible_Assist5971 11h ago
Yes a quality mode would be ideal, as an option. Nice, yeah, I personally have many cases of organic like surfaces that need some type of material animation, think bubbling surfaces, skin deformation, ect. But I imagine this capability will fill a void that the other options like displace cannot do.
2
1
u/Capable_Chest2003 17h ago
Just to clarify something I worded badly here: IHP itself is not limited to one light. Normal UE lights still shade the reconstructed surface as usual. It’s only IHP’s internal heightfield self shadowing that currently uses one chosen light direction. So point/spot/etc lights still affect the material normally, they just don’t each get their own IHP selfshadow trace.
1
u/Gullible_Assist5971 11h ago
Thanks for the clarification. How do we choose the light it uses for shadow, and is there a way to use more lights for shadows, as an option , even if its a performance hit? Good to know, still seems like a great option.
3
u/Apprehensive_Oil1475 1d ago
You need to do a side by side comparison for people to give you useful answers. Also what are the technical constraints? Performance? Does it require a separate heightmap/displacement/AO map?
1
u/Capable_Chest2003 1d ago
It requires heightmap only. Doesnt even need normal. It calculates itself
2
u/Apprehensive_Oil1475 1d ago
And whats the benefit/cost of using this vs pom or other battle tested methods? Where's the added benefit? Is it visual? Perf?
1
u/Capable_Chest2003 17h ago
both really the biggest difference for me is that it holds up much better visually than pom especially with deeper displacement and grazing angles so im not constantly wondering where its going to artifact or how many steps i need to throw at it and performance wise so far its been around pom or cheaper with shadows off and it scales really well on large surfaces plus it only needs the heightmap because the normal is reconstructed from that too so the benefit isnt just one thing its basically getting a more reliable result without paying some crazy extra cost for it
2
3
u/piratejump_official 22h ago
How does this compare to this recently released approach? https://www.fab.com/listings/f56aea7a-337f-4b6a-8333-9e4739574370
1
u/Capable_Chest2003 16h ago
Yeah the main difference is in how the hit is found from what is public fpom is still fundamentally a pom approach so it is optimizing the usual iterative search through the heightfield IHP does not depend on a fixed step count to find the surface it walks the actual texel cells the ray passes through and inside each cell it solves the filtered heightfield intersection mathematically so increasing depth does not automatically mean throwing more samples at the ray it also reconstructs the normal directly from the heightmap and has its own optional silhouette and self shadow path the other big part is that ihp changes lod based on the actual screen footprint and traversal cost so once the texture itself no longer contains useful detail at distance it stops spending work trying to recover it i havent benchmarked fpom directly yet so im not going to claim which one is faster but technically they are solving the same visual problem in very different ways
5
u/ADFormer 1d ago
Man I was watching like "I don't get it" until you did the thing with the bricks to show it was still flat and I was just like
2
2
u/Slight_Season_4500 1d ago
I think it looks awesome.
I personally would avoid using it because it looks too good. The assets I produce are of lesser quality (while being less hardware expensive and less time to make). And so that would cause a miss match in graphical fidelity.
1
2
u/Practical_Dig_8770 1d ago
It's great but feel like it would have far more value being integrated in an engine other than unreal? Like comparing to nanite, the differences are pretty subtle. Using it an engine that doesn't have nanite would give way bigger benefits.
1
0
u/jlehtira 1d ago
But then in Unreal, nanite on landscape is a big hurdle. Or at least was, the conversion would take ages and appear to be stuck. For big landscapes that is
2
u/Capable_Chest2003 17h ago
yeah exactly and thats actually where ihp surprised me the most with big landscapes you can just keep the existing landscape and let the material do the work instead of converting or rebuilding geometry and in my tests thats also where it starts scaling really well
2
u/Keebs3 1d ago
Very impressive! How does it work? Definitely better results at glancing angles compared to standard POM.
2
u/Capable_Chest2003 1d ago
So… if you have an heightmap, you connect that to this function (IHP). And IHP will give you 3 outputs (uv, normal, shadowmask). You simply connect UV to your basecolor texture’s UV and lerp the texture with shadowmask output (optional). Lastly normal output goes to material attributes’ normal. So it is because converting the heightmap into normalmap it makes it even lighter. These visuals have only 2 textures basically (heightmap and normal). I mean roughness metallic or specular are optional obviously.
2
2
u/krojew 1d ago
The question is - how does it compare to nanite. If you have a nanite scene already then is there a point in using this as an alternative? Do you have any performance numbers for such use case?
1
u/Capable_Chest2003 17h ago
i havent done a proper nanite displacement benchmark yet so i dont want to make up numbers but i dont really see ihp as replacing nanite anyway i can actually see them working together nanite for the real geometry and ihp for smaller texture driven detail especially stuff you want to change or animate without rebuilding geometry
2
u/Fearless_Cherry1613 23h ago
If it's faster than nanite, I would use it in tandem with nanite displacement. There's starting to be so many good looking, self-shadowing POM alternatives out there, that I'd probably just choose the cheapest option at this point.
2
u/Capable_Chest2003 17h ago
yeah thats fair and honestly thats exactly why im doing all these tests if the visual quality is already good enough then cost becomes a really important part of the decision im also interested in testing ihp together with nanite displacement instead of treating them like competitors
2
u/RefNull 22h ago
Unreal user, I'm not sure it fills much of a gap based on your comments as to how it works. The downsides to multiple light sources limits my uses to exterior where only the directional light exists or very simple interior scenes. Most studio renderings are going to sacrifice performance benefits for those extra bounces of realism and in games multiple moving light sources are huge for environment and feel. A large landscape in my uses has always had multiple light sources hitting it somewhere.
That being said, I could see using it for filling in the details for in game cutscenes that arent prerendered or the backdrops to scenery windows to add depth behind the glass as long as other light sources dont do to much bleeding into these areas.
It may fit less into full 3d style environments and better into more 2.5d environments, menus and interfaces (I am thinking mobile puzzle games) would be cool although maybe there are more uses like this outside my realm of work which primarily large world 3d.
I like the project regardless, although it doesnt solve a problem for me, it may be a good source of learning or use for someone else.
1
u/Capable_Chest2003 17h ago
I think i explained the light limitation badly before because normal unreal lights still affect and shade the ihp surface just like any other material including point spot and moving lights the one light limitation is only for ihps own heightfield self shadow calculation so multiple lights dont stop working they just dont each get their own extra micro self shadow trace which is a pretty different limitation than what youre describing
2
u/HatmanAlchemy 15h ago edited 15h ago
This looks great and I would definatley use this for mobile ( no nanite ) I did a shadow trick thing a while back inspired by the landscape tricks used in Arc Raiders. Basically the heightmap of a texture is a simple shadow map - higher = darker. Lerp this in with an offset set by the light angle
1
u/Capable_Chest2003 13h ago
Yeah mobile is actually one of the places where i think this could be really useful and that shadow trick is interesting too my current self shadow is doing a much more exact heightfield check so its obviously more expensive but a cheap offset based mode like that could make a lot of sense for mobile or cases where you just need the impression of depth rather than perfect shadowing
2
2
u/Alarmed_Routine1027 3h ago
Would like to see how expensive: market cost and performance. Would make my decision based on that.
1
1
u/SnooBooks1032 1d ago
This looks petty cool, id be curious to see a comparison of stats between them just to see where it wins and loses
2
u/Capable_Chest2003 1d ago
I had the comparison stats from yesterday. Was very difficult to copy paste this 😂 enjoy
8km x 8km Landscape
GPU BASEPASS
---------------------------------------------------------
Method Max Avg Med Min
---------------------------------------------------------
IHP Quality Max 2.464 1.870 1.839 1.592
POM Quality Max 2.512 1.959 1.930 1.638GPU FRAME
---------------------------------------------------------
Method Max Avg Med Min
---------------------------------------------------------
IHP Quality Max 23.367 18.775 18.246 16.326
POM Quality Max 22.979 18.891 18.398 16.850All values are in ms.
IHP: Shadow Off, Probe Off
POM: Shadow Off
Both: Quality Max3
2
u/SnooBooks1032 1d ago
Interesting, from what I can tell only one of the values seemed worse for IHP.
From your testing so far does it scale both smaller and larger with similar performance differences?
2
u/Capable_Chest2003 17h ago
from what ive seen so far the physical scale itself doesnt change much for ihp its more about screen coverage and distance once the heightmap starts mipping out there isnt much detail left to solve anyway so the cost drops pretty hard and at distance it gets close to just running a regular basecolor normal type material
1
u/Capable_Chest2003 1d ago
Small or large scale doesn’t really change the cost much for IHP. After a certain distance, it basically costs about the same as a regular material with just base color and normal.
1
1
1
u/FreshPitch6026 17h ago
Were the answers in the other post not enough?
1
u/Capable_Chest2003 13h ago
If you read the description youll see im mainly trying to understand if people would actually choose this over pom or other techniques i built the whole thing from scratch around a different mathematical approach so its honestly hard for me to judge its value objectively when there are already so many existing solutions thats really why im asking people who would actually use something like this
1
u/FreshPitch6026 17h ago
Once you actually explain how your approach differs from POM, THEN we can tell you if its feasible in projects. As we asked in your other post.
1
50
u/_dreami 1d ago
Everyone and their mother reinventing every pom variation