I’m very tempted to buy it and use it, but before I do I’d like to ask a few questions:
performance. you say it’s cheap compared to tessellation.
can you provide a performance comparison with numbers? how about a comparison with the regular parallax mapping (or iterative parallax mapping)
how much faster is it? is it still true if you stress it?
how much of that LOD are you forced to use on big/complex scenes?
the usual limitation: lights.
how many simultaneous lights does it support?
do you have to do anything for it to use “the nearest lights” (usually can’t be done automatically on a deferred renderer, and Epic suggests tricks like material parameter collections)
is the self-shadowing happening for multiple lights?
I hope you’ve resolved / worked around the limitation of lighting. otherwise I think I’ll just resort to using iterative parallax mapping, which with the depth buffer altering of 4.8, should also produce self-shadowing if I’m not mistaken
For the performance, cryengine offers like two different POM sahders, POM and SPOM, the second one is of course a bit more performance hungry, using the POM shader for terrain gives me like no impact at all on my FPS.
I tested the free pom shader from the other thread on my whole terrain, on a GTX 780 Ti OC Verion, my FPS counter was still at 120 FPS. You wrote that you are using the same algorithm like they do, so
i guess the perfromance will be simillar?
It would be so nice to have a working pom with a low impact on the performance, the woodland level in cryengine is using POM for the landscape and all trees, the trees are looking so much better with POM! Just amazing.
I’m not a pro when it comes to work on shaders but isn’t it possible to use your pom shaders with a kind of radius, fo example all trees in my scenen are uisng POM but only the one in a radius of X are really uisng POM, the others are downgraded to the normal map?
Why is everyone waiting for a 4.8 release when it’s still in preview? lol. Epic doesn’t even recommend using previews on your project because in possible instability or corruption.
Hello, I did buy it yesterday but it keeps crashing / reseting my Graphiccard (Unreal 4.7.6 - Windows 10 - AMD R9 290X - PC is otherwise Rockstable - Preview seems to work, but as soon I use the Material → crash)
I’ve read all you have here and on your site, but there are still some things I don’t quite get. So, sorry if my questions sound dumb, but:
Is this a material function that I can use inside of my own materials? Or is it some sort of hard-coded shader/material, akin to those in Cryengine?
Can I simply use your POM without silhouette clipping and shadowing for best performance?
I really want it, preferably on the Marketplace, since I have 30$ in store credit there.
This will vary drastically depending on your settings and the detail of the assets you’re using. I’ll do a best case side-by-side comparison after a couple more optimization updates. Comparing the performance to simple parallax or iterative parallax is apples to oranges because this effect is much much more detailed and flexible.
Parallax Occlusion Mapping actually wins biggest against tessellation in the most stressful cases. It’s a lot easier to do some raytracing than to render at least 1 polygon per pixel!
This will depend entirely on the scene and a lot of subjective elements, which is why I try to keep things artist tweakable.
The material itself goes through the usual PBR pipeline and is unlimited. The self-shadowing effect is limited to 1 light. Outside tech demos you honestly probably wouldn’t notice the subtle shadowing from a second light let alone any further ones.
Material parameter collections are the way to go here. You can select the shadowing light however you like via Blueprints.
Epic’s promised some forward rendering features which I plan to incorporate as they become available. Predicated on that: Yes!
I’d be surprised if it did, but either way support for 4.8’s pixel depth offset is definitely on the list.
I suspect what that really means is your framerate was very high and being capped at 120FPS, and enabling POM wasn’t taxing enough to bring it below that cap.
That feature is already included! And yes it makes a huge difference. You can tweak this via the “Mip Threshold” parameter. Higher values mean you can get farther away before the effect fades out.
Should work! I plan add a triplanar example material soon in fact. You’ll have to carefully align things so as to not break the illusion of course.
Strange, send me an email with details of how you’re using the material and I’ll help you out there.
Just had a customer tell me all the included sample materials look fine on their Rift DK2! I assume the performance hit is roughly doubled like with most things rendered in stereo.
Everything is done in the Material Editor and all the guts are provided, though the loops needed to be implemented via HLSL in the Custom code nodes.
In the 0.3 update coming this week you’ll be able to toggle these features. Though you may be surprised to know that activating silhouette clipping actually makes it run faster! I specifically coded in early exits so it doesn’t waste time calculating pixels that are just going to be clipped.
Working hard to get it Marketplace ready! The $30 introductory price wasn’t an accident
The 4.8 pixel depth value allows actual altering of the depth buffer, so you get self shadowing as per the standard deferred rendering, from multiple light sources, also get proper shadows cast onto parallaxed surfaces, so no floating shadows. The main issue is preventing depth value swimming as the camera moves around. Causing shadows and such to move. Im sure someone with more math knowledge than me can resolve this.
Hm, so I tried this in 4.8 preview and the depth offset works for shadow receiving but not for shadow casting, whether on other objects or the occluder itself. It always casts shadows in the shape of the original mesh, and from the original position. For example: This flat square surface will a flat square shadow on itself, shadowing the entire object sans the edges, since its pixels are effectively behind its occluding surface:
Check out those accurate intersections! These shots are all with self-shadowing off, so it has the potential to look even better!!
As pointed out, you do run the risk of shadows swimming at oblique angles, but this can be avoided with artist tweaks, and will probably also get improved in future updates.
Yeah ends up being you do need an engine change to make self shadowing work without it casting a shadow of the original object as pointed out by RyanB in the other Parallax thread. So I think your self shadowing code will remain for a while. I have been trying to figure out the engine changes, but so far no luck.
There’s been rather terrible news this week (for me, not for you). RyanB just pushed a parallax occlusion mapping solution that does everything mine does (at least) into the main engine. It’s going to be a built in node.
As such I have no viable option but to cancel Displacer Best.
I can’t compete with the resources Epic can throw at this. I knew there was going to be an open source alternative, but it was going to be a 3rd party install with a much smaller featureset and limited support. No one is going to choose to pay for mine when a 1st party equivalent is automatically included in everyone’s installation.
I honestly feel really, really burned by this. I asked Epic specifically if such a feature was in the pipeline for the express purpose of avoiding this exact situation and I never got an answer. I invested an enormous amount of time into this project and my work has been rendered materially worthless with very little warning, which stings as a solo indie dev struggling to get any income at all.
Anyone who emails asking for a refund will get one. I can’t in good conscience keep your money after promising updates.