Below is my initial food model. It was created in Maya using NURBS and then will be exported to a RIB file where I will add my shaders. Additional detail will be added using displacement maps. As discussed in the pixar paper, soft body dynamics were used to aid in the way the meat fell on the plate. I still have to apply this technique to the vegetables on the plate. foodModel

My initial shading concern was learning how the Renderman Shading Language handled implementing subsurface scattering effects. I based my implementation off of The Renderman Shading Language Guide.

In order to calculate subsurface scattering effects, the 3D data of the model is first baked to a point cloud in a .ptc file. From that point cloud, I created a diffuse point cloud. For efficiency, the point cloud is then converted to a brickmap. This brickmap is the input for my SSS shader. I began testing the process using the model provided with the Renderman Shading Language Guide.

A point cloud is a large group of points that can store any type of information from the scene for later calculations. For my subsurface scattering calculations, I stored an area value and radiance.

By using the utility ptfilter, I created a second point cloud from the first that calculated and stored the subsurface scattering diffusion data. Ptfilter has several material presets for SSS including skin, apple, chicken, marble, potato, and ketchup.

soldierPtC

However, point cloud files are quite large and inefficient. To reduce the memory load, the point cloud is converted to a brick map. Similar to a point cloud, a brick map stores data for later calculations, but it can have multiple resolutions, resulting in a smaller file size.

soldierLevelZero soldierLevelFive

The brick map is then used in my SSS shader when doing the final shading calculations.

soldierWithSSS

For the first food shader, I decided to begin with creating a grape shader.

The first layer of the shader is a diffuse color generated by using noise and a spline function to distribute a range of purple shades. My next goal will be to add a random distribution to add variation between the color of grapes in a bunch.

grapeFlatgrapeShadow

Next, a specular contribution is added based on the plastic model.

grapeSpecular

Based off of my previous process, I baked a point cloud based off of the area and radiance values.

Using ptfilter, a new SSS diffusion point cloud was created from the initial point cloud.

grapePointCloud

The SSS diffusion point cloud was converted to a brick map.

grapeBrickMap

Finally, the brick map was utilized in my grape shader. My initial result is not quite the effect I want and I believe it is because I haven't gotten my lighting setup quite right yet and that is impacting the subsurface scattering.

grapeInitialSSS

Comment