Technically speaking, I’m an artist.

Fake Sub-Surface

Sub-Surface Texturing

Our second project was to create an example of sub-surface texturing implemented in a class-based shader. We decided to base our projects around creating various internal organs, since they provide an interestingly complex surface. The organ I decided to re-create was the pancreas.

Fake Sub-Surface:

Sub-surface scattering is not something that comes easily in RSL code alone. Instead, you can fake sub-surface by essentially layering two different lighting calculations with a displacement. While this is fully capable of providing the sense of a multi-layered surface, it doesn’t fully illustrate the sub-surface effect.

Class-Based Shaders:


RSL has the capability of working in a more Object-Oriented way, known as Class-Based Shading. This enables both displacement and surface methods to be contained in one shader. In fact, as of RenderMan for Maya Version 1.0, class-based shaders are not even compatible, yet. For this reason, all of the tests using this method were rendered using Cutter.

Problems and Issues:

Displacement Map-


In order to realistically represent a pancreas, I tried a few different noise funcitons I knew offhand as displacement. After doing some research, I remembered that two of my friends from Atlanta had used Voronoi (Worley) noise for a couple of projects. Jeff Wyner’s and Stephen Winters’s sites were instrumental in helping me implement a more realistic displacement. 

Class-Based-

Class-Based shaders are not compatible with RenderMan for Maya v1.0. I spent a small amount of time trying to find a way to import these shaders and use them in Maya.  At this time, I still haven’t found a solution.

“Real” Sub-Surface Scattering-

Included in Renderman for Maya are several extra attributes for sub-surface. After troubleshooting for a while, I was finally able to get these attributes working. Unfortunately, my most recent attempt resulted in a missing object error.

Cutter Crash-


For some reason, in my attempt to get my class-based shader working properly, I began to get crashes in Cutter when rendering. This happened frequently, but not every time. The only temporary solution I found was to create a new RIB file and test my shader from there. However, after switching machines again, the error returned. I still haven’t found a solution to this.

Final Renders:


These are my best renders of the pancreas from my class-based Fake Sub-Surface shader. I don’t think this method works as much for the pancreas as it does for a vase. The reflections are too much like porcelin.