-
Notifications
You must be signed in to change notification settings - Fork 51
Scene radiance
The isetcam scene structure is a simplified description of the scene spectral radiance. A complete description represents multiple parameters of the rays in every direction every point. For isetcam calculations only that arrive at the front lens surface are needed. This information - sometimes called the plenoptic function and sometimes called the light field - includes the angle of the incident rays.
The 3D scene rendering methods in iset3d work with this full set of rays. But many engineering analyses use an even simpler representation, as if each point in the scene send rays uniformly to all points in the entrance pupil. We can describe such a scene spectral radiance by the spectral power distribution at each visible point, with units of quanta/s/sr/nm/m^2. The scene structure stores the pointwise spectral radiance and the distance to each point. A simple scene representation is useful for many of calculations, such as stimuli at a distance or on a planar surface (e.g., test chart).
The iset3d methods extend the calculations to 3D spectral scenes, including non-uniform emissions (bidirectional reflectance distribution functions) from each point and the plenoptic function. Using these methods we can simulate light field cameras.
ISETCAM can read a typical RGB image and then convert the data into a scene radiance structure. The method for doing the conversion is sceneFromFile
.
It is impossible to create a true spectral radiance from an RGB image. The idea in sceneFromFile
is to create the spectral radiance that one would measure if (a) the RGB data are displayed on a monitor, and (b) the scene illumination is the monitor white point.
Renderings produced by two display models can differ substantially. Here is a comparison, created by the code snippets below.
d = displayCreate('LCD-Apple');
meanLuminance = 100;
scene = sceneFromFile('eagle.jpg','rgb',meanLuminance,d);
rgb1 = sceneGet(scene,'rgb'); imshow(rgb1);
d = displayCreate('CRT-Dell');
scene = sceneFromFile('eagle.jpg','rgb',meanLuminance,d);
rgb2 = sceneGet(scene,'rgb'); imshow(rgb2);
You can show the scene in a sceneWindow
ieAddObject(scene); sceneWindow;
ISETcam development is led by Brian Wandell's Vistalab group at Stanford University and supported by contributors from other research institutions and industry.