| Hardcoded shaders
| !!! Temporarily disabled for further optimizations !!! Some Pixie shaders are hardcoded in the source distribution. Such shaders often execute faster or have access to capabilities that other shaders can not. Currently, the set of such shaders is quite small. As I identify performance bottlenecks in the shading pipeline can not be helped, I will add shaders that go around them. quadlight This is a light source shader that behaves like a rectangular area light source. The following two definitions should be identical: AreaLightSource "arealight" 1 Patch "bilinear" "P" [65 -52.5 0 65 52.5 0 -65 -52.5 0 -65 52.5 0] LightSource "quadlight" 1 "P" [65 -52.5 0 65 52.5 0 -65 -52.5 0 -65 52.5 0] They both define a rectangular area light source. Quadlight accepts the following parameters:
lightcolor | color | (1,1,1)
intensity | float | 1
numSamples | float | Copied from numarealightsamples attribute
P | point[4] | (-1,-1,0),(1,-1,0),(-1,1,0),(1,1,0)
Notice that the rectangle that defines the arealight is given in the P argument. This light source also generates raytraced shadows for objects marked with Attribute "visibility" "transmission" "..." spherelight This is a light source shader that behaves like a spherical light source. The following two definitions should be identical. AreaLightSource "arealight" 1 Sphere 1 -1 1 360 LightSource "spherelight" 1 "radius" 1 They both define a spherical area light source. Spherelight accepts the following parameters.
from | point | (0,0,0)
radius | float | 1
numSamples | float | Copied from numarealightsamples attribute
intensity | float | 1
lightcolor | color | (1,1,1)