Finally, Parallax Occlusion Mapping!

Right, hopefully that works! Really looking forward to testing out your pom setup.
Any news on when you’ll submit it?

I hesitate to say outright because it’s so hard for me to keep to a schedule ; ; Especially since I’m in the middle of switching meds and it’s wrecking my ability to perform basic tasks let alone focus on work. Here’s what’s left to do at any rate:

  • Make the content/tutorial walkthrough
  • Fix the LOD system on Macs (I was relying on CalculateLevelOfDetail)
  • Work out the boring legal stuff

So not that much really! I’m also juggling multiple other graphics effect projects I haven’t talked about yet which should be out much faster than this one.

Oh one other thing I plan to do is create several leaner versions of the material function, so the user can just drag and drop the one they want rather than having a giant set of unused inputs all the time. This will also be more performant as well as more modding friendly, since the graph is complex enough without adding a forest of static switches.

Good news! I just confirmed on AnswerHub that I can sell this package on 3rd party sites! That means the day it’s ready I’ll have it up on my itch.io page for you to purchase! I can then use its customer tracking to email everyone who buys it with update links as they’re released. I’m tempted to put it up there as an early access thing even, if you don’t mind paying for it still unpolished.

I would love early access! Would you mind also making a short video tutorial on how it works and all the material hookups?

Will do! At least, I’ll make a video post-release. The 1.0 version will include lots of drag and drop working material examples as well.

release it… release it… release it… :slight_smile:

Sounds great! I would definitely buy early access. Keep us posted and I’ll be ready to buy as soon as it’s ready. :slight_smile: Thanks SF!

Good news: Aside from some minor cleanup I want to do, it’s done!! :smiley: I’m going to have it up for beta access + purchase as soon as I have an EULA put together (advice welcome on that!). I’ll put together a gif or two to show you the LOD system at some point this week as well.

Thinking of some branding to go with it, since this will be a product with rolling updates that may eventually include more than one displacement mapping method. How does “POM-Pom” sound?

Nice! Any idea how much it will cost ?

Great to hear! I’m ready to buy it as soon as it’s out, provided that the price isn’t silly.

Might be an odd question, but does this work fine in VR? The reason I ask is that per pixel depth information becomes somewhat important when you have proper depth perception.

30 bucks! I plan to rarely or never do sales by the way since I hate the “mark up then mark down” practices that plague marketplaces like this. I’m not going to say it’s 50 then charge you 30 as a “deal”. I may however take after Minecraft and bump up the price little bits in the long term as new stuff gets added. Existing owners get all that for free though of course!

Don’t have VR hardware to test on, but the depth buffer isn’t currently modified. I will be adding that feature once the promised Material Editor functionality which makes it possible is added. AFAIK the silhouettes are clipped from the depth buffer however, and the camera view rays are cast per pixel, so imagine it would still properly create a slightly different angle for each eye. If you’re using it for depths where the stereo separation isn’t a huge deal (bricks on the floor etc.) it might look fine.

By the way current supported platforms are and Windows. Will test HTML5 and soon. I don’t have consoles to test on, but I’ll start supporting those if I ever get them!

30 Bucks is totally fine for this awesome thing. Cant wait for the release :).

Great! That’s a very healthy business model I think, and a very fair price. We’re planning on doing the same when we finally release our game.

Another question! Alpha maps? for things like bullet decals? maybe even distortion of foliage if that’s even possible?

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:

Are you using, or do you plan on using the new Pixel Depth Offset attribute in v4.8? To actually modify the depth buffer so that decals can project correctly onto parallaxed surfaces:

No pixel depth offset (Decal basically floating):


Pixel depth offset (Decal correctly mapping to parallax surface):

I wasn’t planning on supporting 4.8 quite yet but as soon as it’s out of preview I’m definitely adding that feature! I’ve been looking forward to it.

Finishing up the EULA! I’m planning on allowing you to create and use as many copies of the software as you like, so long as only you use it. It’s a single “seat”. Sound fair? I’ll post the whole thing here in a few hours for critique.

And that puts me on track for a release tomorrow! :smiley:

Finally done this boringass license agreement. Posting here so y’all can tell me if you think the terms are reasonable. Let me know of any concerns or potential loopholes or typos ASAP please!

Also how’s everyone feel about the name “Displacer Best”?