Hey all! Sorry it's been a while, I've been wanting to share the progress I've made with E13, but I needed to really make sure that I didn't accidentally promise something that would turn out not to be possible. The pieces of the puzzle are finally coming together, so I can announce confirmed new features!
So, if you haven't read the last Dev News post, I've been working on a completely new approach to voxelization and representation of block shapes for ray tracing. This is definitely the most complicated system I've ever built! E13 will be the biggest update PTGI has ever seen, and here's what I can confirm will be working!

Voxelization based on a Resource Pack
In order for PTGI to get information about what blocks are in the world for ray tracing, you will now need to have a specific resource pack loaded. For the first E13 release, I will include a resource pack--that you should always have enabled when using PTGI--that will provide the necessary information for vanilla block models.
With this new method, geometry shaders are no longer needed for voxelization! AMD graphics cards are quite slow with geometry shaders, so this is good news for AMD GPU owners! Though, I can't state anything certain about what performance will be like when everything is put together.
You will be able to use resource packs that contain custom textures along with this just fine (loading the PTGI resource pack first, and the one with the textures you want at the top of the list). Any custom block models defined in the resource pack, however, will cause that block not to be voxelized (thus, not be visible in ray tracing). But, there's a solution for this!
Resource pack conversion tool
Since PTGI will now need a special resource pack, I'm working on a tool that will convert any resource pack to this special format. This means that resource packs with custom models will now be able to provide the correct models for PTGI to use for ray tracing! This tool will go through all of the models defined in the resource pack and convert them to a format that PTGI can use.
It will also bake an associated "shape data" file that will need to be placed inside SEUS PTGI's .zip file. This data is baked for the specific resource pack being converted, so it'll be important not to mix and match these! Eventually I'll have the tool do this for you.
You'll need to be careful not to feed it something that has many models with lots of elements in them, as it could slow down the shader, and the "shape data" file may potentially not be able to contain all of the model shape data.
Any block model properly ray traced!
Any block model in the world (that isn't a tile entity like chests, armor stands, signs, etc.) will now properly show up in ray traced reflections and lighting! That means stairs, slabs, fences, doors, trapdoors, torches, crops, levers--pretty much anything can be properly represented in the ray tracing now! And none of this is hand-coded, it's all automatically figured out by the Resource Pack conversion tool and PTGI! This means that there is the potential that blocks (that aren't tile entities) added by mods could work as well!
Sadly, we still have the limitation that only one texture can be rendered on a block seen inside ray tracing. So, block models that use multiple textures like grass block (dirt on the sides, grass on top), logs, grindstone, etc. will only map one texture to all of the geometry. Right now, the texture that PTGI uses is the particle texture. I don't think it's likely that I can overcome this limitation. But there are potential workarounds, like fusing these textures together into one .png and then editing the block model .json file to work with this little mini atlas texture.
Per-pixel emissive light sources
I'm migrating away from blocks either being light sources and fully glowing or not in favor of per-pixel light emission. That means that any block being a light or not will simply be based on textures. So, any block can give off any amount, color, or intensity of light!
Alpha testing in ray tracing
Blocks seen in ray traced lighting and reflections will now properly handle cutout transparency. That means that leaf blocks, doors, glass, grass, crops, etc. will now render properly! Stained glass will eventually properly show up and tint reflections and lighting, but that's not quite working yet.
Ray traced contact shadows
With how reliably PTGI can ray trace properly shaped blocks, I've added ray traced contact shadows. These are quite cheap, since they only need to trace a few blocks just to get that crisp contact shadow, but they make quite a difference!
Now, there are definitely some things to work out! A few blocks are not rendering properly, the resource pack conversion tool is still just a C# script in Unity, and the whole thing is young and unoptimized. This means you'll definitely see a performance drop. But, these new features bring a level of detail and complexity to your world as seen through the reflection of an iron block that I never thought would be possible!
Thank you for hanging in there while I've been working on this! I didn't post sooner, again, because I wanted to be sure that I could happily and proudly announce these features and be confident they're going to work. I'm incredibly excited for this new tech, and I hope you are too!
And, of course, thank you for your support!! As always, and especially when it's been a while since there's been an update, I wanted to remind you that you'll only be charged if you're a patron during the turn of a new month. If you'd rather just pledge when there's an update, download the update, and then unpledge, that's totally fine, I have charge up-front disabled for this reason! For more information on how this works, take a look at this page.