Hey Greetings,
now there are 2 ways how we can tackle this issues
1.) Unreal slice function:- we can use unreal slice mesh function to make cut the 3d model in 2 halves, hide one section, and apply some material to the new faces that got generated after the slice.
pros:- 1.) really easy to implement
2.) Calculation of cost is cheap
3.) collisions can be changed dynamically
cons:- 1.) the uv generated for the the new faces may not always be what we expect, we can use texture projection techinique to overcome the issue, but the results are not " realistic" since we need different texture based on where the geometry is being sliced.
2.) if the geometry is very bumpy or if the layers are intersecting with each other, there is a possibilities of getting z overlap issue.
2.) Volumetric ray marcher:- as you suggested that you want similar results to MRI scans, This is 100% the way to go ,
the idea is to render a 3d geometry based on array of 2d textures
pros:- 1.) highly realistic
cons:- 1.) collision are not changed dynamically,although we can custom generate collision based on slices but the results are not 100% accuarate.
2.) making volumetric textures could be tricky
Now there is an other method known as "marching Cube algorithm" , that generate 3d models 100% accuarately based on the volume data but only cons is that implenting this approach is expensive.
reached my word limit.