Hey all, was wondering how someone would approach making an effect like this?
My first thought was the built in boolean operation, but that doesn’t allow for animation. I could swap a full mesh out with a boolean’d one, but then I’d lost any inbetween frames. I’d also considered spheremask operations on the mesh, but that wouldn’t provide the inside faces.
If anyone could point me in a good direction it’d be much appreciated!
I’d also considered spheremask operations on the mesh, but that wouldn’t provide the inside faces
Real time boolean operations are expensive, but if your mesh is not too complex, and there isn’t too much going on otherwise in your scene it might be doable.
If not, consider a sphere mask operation but change the shading of the backside facing to a simplified shader based on the new world position and normal the face would have had.
Can be be made even better by reducing the possible visible inside surface as much as possible (by making the walls and floors relatively thin)
the new world position can easily be found by moving from the current world position towards the spheremask center over the distance to the center subtracted by the radius.
The normal just points at the center.
If you need a different shader for the backside faces, you can split up the mesh.
Thanks, this was really helpful! Since it’s a very simple mesh I’m working with, I tweaked the method a bit. Now using twosidedsign to determine the inside faces made by the spheremask and adding emissive to make it look like a solid surface.
Think my next step is to try and fake some shading!