FansOfAll
Bruce
Bruce

patreon


The First POM Update (Work in Progress)

For the past couple months I've been working on and off on a brand new algorithm for parallax. It's technical name is Quadtree Displacement Mapping, although I'll stick to calling it a "POM" algorithm, since POM is such a ubiquitous name in the shader community. This new POM algorithm is based on the same accelerated ray-intersection that Octray uses to accelerate path tracing in the regular blocky world. Notice the similarity between "Quadtree" and "Octree", they are the same idea in 2 and 3 dimensions. One consequence of this is that the new algorithm should scale to high resolution textures (think 2048x) very well.

This new algorithm also does texel-accurate raytracing against the POM texture, which makes it appear like there are little blocks inside the texture. This can be smoothed out, although I haven't figured out how to do it yet, and so you'll have to bear with it for now. I think it looks kinda cool, blocky worlds inside blocky worlds.

I developed a prototype of the new algorithm a few months ago, however it has several bad bugs, and it's very hard to reason about, so for now I'm releasing a simpler version that I've managed to clean up. It doesn't have the efficiency of Quadtree POM, however it does have the texel-accurate visual characteristics. It also interacts with all the world space lighting, which is pretty difficult to pull off.

This implementation is very WIP, and there are several things I'm aware of that don't work or look ugly, so please be gentle with me. If you notice any obvious bugs, I probably already know about them, but can't fix them yet. I'm putting this update out because it's fun to play with and it will be a while until I can iron out all the crap.

One thing I strongly recommend is to disable all filtering when using POM, otherwise you will get a smudgy mess. POM presents a big challenge to filtering because it drastically reduces the scale of geometric complexity in the scene. This goes against the assumptions of current filtering implementations (even in other shaders). I have an idea that might fix this, but it's one of many on the list of interesting things to do.


Here are the resource packs I used in the screenshots:

- HardTop Vanillaccurate (2k and 512x)

- Stratum (512x)

- Vanilla Normals Renewed (16x)


OctrayRewrite v0.4.0 is now available in the downloads channel.

The First POM Update (Work in Progress) The First POM Update (Work in Progress) The First POM Update (Work in Progress) The First POM Update (Work in Progress) The First POM Update (Work in Progress) The First POM Update (Work in Progress) The First POM Update (Work in Progress) The First POM Update (Work in Progress) The First POM Update (Work in Progress) The First POM Update (Work in Progress) The First POM Update (Work in Progress) The First POM Update (Work in Progress)

Comments

This looks great 👌

HardTop


More Creators