Works AOK with opacity masks! Haven’t tested it with foliage or decals yet. Will report back when I do.
So first things first, it’s probably going to be on itch.io in early access tomorrow or the day after!! No discount off the 1.0 price (I really need the money) but you’ll of course have my ear on changes you’d like to see while it’s still in formative stages, and you’ll be the coolest kid on the block before the Marketplace brings it mainstream. Here’s the immediate schedule:
-
The first version going up will be likely just the material function and nothing else.
-
Over the following days and weeks I’ll be updating it with misc. cleanup, adding all the drag-and-drop higher performance stripped-down versions (hard shadows, no shadows, no heightmap channel selector, etc.), and fixing any problems the early adopters find/making workflow improvements they suggest. The higher performance versions won’t just be snipped wires, I’m actually modifying the code with early outs where applicable.
-
Following that I’ll put together the Content Examples style walkthrough with lots of practical and also surreal examples. I’ll probably whip together original textures for this in Substance Designer to keep it interesting. All content will be free for you to use in your own projects.
-
After that I’ll probably do video tutorials.
So, new stuff since last time! Here’s a plain old high quality shot showing just the soft shadow output on the final effect:
The height scale and shadow caster position are being modulated by sine waves. The banding you see is due to gif compression; the shadows are quite smooth in person and look closer to this:
Here’s an example of a surreal effect on a standard cube that would be very difficult and expensive to achieve with tessellation:
Here’s an example of the new dynamic LOD system in action:
There’s absolutely no visible “pop” as the effect turns off in the distance, because it’s interpolating the parallaxed UVs out on a per-pixel basis via on an artist-tweakable mipmap threshold.
I experimented with Tatarchuk et al’s suggested method of lerping into simple bump offset mapping (like the built in node). I found that this caused swimming artifacts at exactly the angles this material usually excels at, and made even nearby objects look weird around the edges. It also tended to flatten everything, which was distracting and caused a fringe of dancing pixels on otherwise properly silhouetted meshes.
I solved this by instead making the low-detail version not parallax at all. Rather it lerps to a UV offset that is a function of the tangent space view angle but not the heightmap, which I then clip by the same rules the regular silhouettes are calculated with. This turns out to be extremely cheap and yet more visually convincing in my opinion, plus it preserves outlines in difficult situations. The other method had a tendency to “push” the apparent surface toward the geometry’s surface.
Also someone on Twitter asked me to make a **** with it so I did this: