RenderMan Volume Shader
From K-3D
Global Variables
The following table lists the set of global variables that can be used by volume shaders:
| Name | Type | Storage | Description |
| Ci | color | varying | Attenuated ray color |
| Oi | color | varying | Attenuated ray opacity |
| P | point | varying | Light ray endpoint |
| I | vector | varying | Ray direction (pointing toward P) |
| E | point | uniform | Position of the eye |
| Ci | color | varying | Ray color |
| Oi | color | varying | Ray opacity |
| ncomps | float | uniform | Number of color components |
| time | float | uniform | Current shutter time |
| dtime | float | uniform | The amount of time covered by this shading sample. |
Geometry of Shading
A volume shader is not associated with a surface, but rather attenuates a ray color as it travels through space. As such, it does not have access to any geometric surface parameters, but only to the light ray I and its associated values. The shader computes the new ray color at the ray origin P

