Hello all! Sorry for being away. IRL problems again. Also I took a long, ultimately failed detour on this that I can safely talk about now:
I got permission cleared from the author (which I didn’t realize I didn’t need!) of a very advanced, very fast displacement mapping algorithm, and spent a long time struggling with getting custom non-material-editor shaders to cooperate. At a certain point the number of caveats necessary snowballed to the point where it was unmanageable and I had to give up on that branch. I will add it in a free update should the material editor support multi-pass shaders in the future. When it does, we’re talking a realistic 2-4x speedup with no disadvantage beyond an extra draw call.
However I’m still confident the older algorithm (similar to Majority’s, which I assume is based on Tatarchuk’s work) is worthy of release, especially given my improvements. You can expect:
- Silhouette clipping at arbitrary UV coordinates
- Hard or soft shadows from a single light source via Blueprints, with the shadows output separately to process as you like
-
- Shadows are aware of not only the light source’s angle, but also its distance and width
-
- Shadows don’t assume a directional light source like in most implementations. It can be a point (noticeable difference on large surfaces) or even change its parameters per pixel!
- Custom Node texture object workaround which doesn’t prevent multiple POM instances in the same graph (this will probably fix terrain too, still need to test that)
- Better-than-binary post-raymarch solution finder
- Viewing angle driven iteration counts (toying with the idea of allowing custom exponents for the falloff)
- Dynamic LOD system which drastically improves performance
- As many operations as feasible kept outside custom nodes to allow for maximum optimization
- Built in heightmap channel selector, in case your heightmap is packed in with a normal map or the like
- No plugins, post effects, or additional render targets needed
- Lots of setup examples provided in the style of Epic’s content walkthroughs, including glitch effects!
- The ease and convenience that comes with an actively maintained package distributed through the Marketplace
- Your requested feature HERE??
Post release features will include the following if and when UE4 is updated to support them:
- Displacement-aware pixel depths
- 2-4x speed increase
- Eliminating the Blueprint workarounds to implement shadows
- Wider platform support (via better leveraging of the cross-compiler)
- Custom Node-free setup
- Shader-level antialiasing
- Anything else that comes up really. I’m going to use this too, and want it to be the best!
Stay tuned!