SEUS PTGI E13 Dev News (Patreon)
Content
Hey, all! Here's what's going on with the development of SEUS PTGI E13.
The focus of this update is compatibility and robustness. I've talked before about some ideas I've had about making PTGI work well with mods and custom block models, and none of those ideas were all that great. However, I think I may have found one that is!
The idea revolves around using a resource pack along with PTGI. PTGI would then require the use of a resource pack to inform it about the blocks that are in the world. Of course, I'll include one that works with vanilla Minecraft's blocks.
The first really cool thing is that this approach removes the need to use geometry shaders or instancing for voxelization (the process used to store the information needed to perform ray tracing)! Since geometry shaders are quite slow on AMD graphics cards, AMD users stand to see some significant performance improvements. In my preliminary tests, performance on NVIDIA graphics cards seems to be about the same (the savings from avoiding geometry shaders about equals the performance draw of this new approach).
The second awesome thing is that precise control over voxelization is finally possible. If the resource pack is set up right, blocks should always properly voxelize. If you're using a resource pack with custom models that is not made to be compatible with this new system, or if you're playing with mods that add newly shaped blocks to the game, those blocks will simply not be voxelized, instead of writing garbage and corrupting the world.
Compatibility will also be greatly improved. Keeping PTGI compatible across Minecraft versions will be almost automatic, and any mods that add new blocks whose models inherit from the base game's models (like a mod that adds new types of stone or ores) will be handled automatically.
I'm pretty confident about the above all being possible. I'm a little more uncertain about the next features, but they're even more awesome.
All non "tile entity" blocks (at least in the vanilla game) will be able to be represented and rendered in ray tracing! That means stairs, fences, doors, trapdoors, levers, buttons, torches, end rods, and even more complex blocks like grass, brewing stands, and nether portal. Pretty much everything is possible! Until now, I've had to be careful which blocks to include, because each one I added made the ray tracing more expensive. This is not the case with this new system!
With some setup work by resource pack developers, custom models defined by resource packs will be able to be properly ray traced! There will be some limitations--like the inability to have separate elements reference multiple textures or have fine control over UVs and a limit to how many geometry elements will be drawn. But even with these limitations, this is a pretty exciting possibility!
There's still a lot of work to do and so much to explore with this new technique, but things are going well! Some steps to this are still conceptual and haven't been proven yet, so I cannot guarantee that this will work out, but the potential is totally worth it.
Anyway, I just wanted to let you know what I've been working on in case it takes a while longer to complete. I'll update you if anything awesome or horrible happens. Wish me luck!