General / 04 September 2021

Real-time Tools

Hello again everyone!

This time I'm gonna share some of the tools I developed over the past couple months. They are mostly per project based, as I'm looking into integrating unreal within a more traditional cg pipeline. Although these tools is considered obsolete by now, I've learned a lot by developing them myself before the fancier version came out :)

VR/Pano Cam Tool

During my final month as a student, I decided to make my thesis project as a VR thing. It was a hell of R&D since I'm losing my work (school) machine. The setup that I came up with is a simple blueprint that aligns 4 cameras each capturing a 90 degrees of the view.

One thing to note, this setup is pretty much obsolete right now since there are far more stronger GPUs in the market that can handle VR capture right of the bat. But if you want a more controlled VR renders then this can be a cheap way to do things.

Actor Tag (Simple Cryptomatte) Tool

This tool is something I developed before Unreal released their version of cryptomatte. The first tool version I built utilizes component tags in each actor. This simple blueprint will assign every actor that lives under it with a specific component tag. This was then combined with another material tag tool to automatically assign a flat shader into those assets. This way we can have a flat RGB render without the need to manually assign each actors.

This version is fairly limited as it needs material slots in order for it to work, and you will need to prepare the UVs beforehand if you wanted to export a complex RGB pass. Which is why I came up with the second tool. This one uses a custom stencil post process volume.

This method is much more flexible so long you have an active post process volume in the level. The blueprint will randomly assign actors in the scene with a generated stencil value ranging from 0 to 255. This was then used to render a separate depth masks that can be used in compositing later. 

There's definitely a lot easier way to do these stuff now, but they didn't exist yet when I developed them. All in all, it was a good learning process for me especially as I start growing into a more TD role. I guess that's pretty much it for now. I hope this post can help someone in any way and look out for my upcoming project release :)