|
The Problem
Developing a physically accurate chromatic dispersion shader for any platform faces a
number of technical challenges. At the outset, we run into the fact that the computer
has been designed to think of color as a vector consisting of three channels, such as
RGB, or HSV. The behavior of chromatic dispersion, however is based on the frequency of
a particular color of light, and thus the first step in this project must be to teach
the computer how to think in a frequency-based color space.
The second technical issue we run into is how to apply our new colorspace to a
refraction function in a shader. Several issues compound this problem. First, in
addition to the index of refraction being different for different materials, the amount
by which these materials disperse different wavelengths of light also varies. Second,
the relationship of wavelength to index of refraction is non-linear, which adds to the
complexity of using our new colorspace.
The third problem is applying the effect to caustics. All of the previous solutions
will need to be integrated into a caustics solution.
Finally, the entire process will need to be optimized for render costs and made artist-
friendly if it is to be considered a useful tool.
|
|
|