(English) Realtime layered media rendering – part 2

Although a quick presentation of the layered media rendering in realtime was done in a previous blogpost, the graphical demonstration was a bit ‘dry’. I’ll use here other 3D material to illustrate the shader.

Oat used a beating heart to demonstrate the ability to render various layers of human tissue.


Screenshot of the beating heart in Oat’s demo

The original video can be accessed here : http://www.chrisoat.com/movies/Oat_RenderingGooeyMaterials_SIGGRAPH2006.mp4

The inner layer of vessel and tissue is clearly blurred when the heart is expanding.

To show something close to it, I made a quick demonstration, using a free heart 3D model.

Heart 3D model used for the demo

The 3D model is properly UV-mapped, but isn’t animated.

Since I needed it only for a quick demonstration of the shader, I ‘animated’ by pulsating it with two sin() combined, giving it a  ‘beating heart’ look (!).

The thickness of the inner layer is updated accordingly.

I don’t have any map for the inner tissue with the original 3D model. I used a quickly drawn map with fake vessels to illustrate the shader.

You can see in the following screenshot the comparison between the original heart, staying still.

The heart on the right shows the blurring of the inner layer

The second one is beating, but without treatment for the multilayer setup.

The third one use the multilayer shader.

The two heart on the right have a different lighting from the heart on the left : the first one use Unity’s standard shader, while mine don’t take into account anything related to the ambient light, skybox or BRDF.

Here’s a link to a WebGL export of the above scene, in a zip file : https://www.dropbox.com/s/0cthjhq9y77fhp5/heart_layered.zip?dl=0