DavidBrainard / RenderToolbox3

Matlab toolbox for managing graphics rendering for psychophysics
MIT License
11 stars 4 forks source link

Scale BatchRender() outpus into known units #25

Closed benjamin-heasly closed 11 years ago

benjamin-heasly commented 11 years ago

Once we finish Issue #8, we will be able to scale renderer outputs into known units!

The catch is that PBRT, and maybe Mitsuba, output scaling depends on some non-radiometric factors. See [[ScalingTest]].

A new utility can scale multi-spectral data into known Radiance units: scaled = MultispectralToRadiance(unscaled, sceneDocument, hints) Should have access to enough data to determine the correct scaling for multispectral data. The sceneDocument would be a Mitsuba .xml document or a pbrt-xml document. This would contain all the information that the renderer saw. The hints struct would provide easy access to some information, like image dimensions. hints could also contain a custom scale factor determined by a user.

benjamin-heasly commented 11 years ago

I'm implementing separate utilities, to match the convention of other BatchRenderer/ functions: MitsubaDataToRadiance() and PBRTDataToRadiance().

benjamin-heasly commented 11 years ago

A new utility should calculate renderer-specific scale factors and store them with setpref(). It can use the RadianceTest scene to provide renderer data. It can use the new RTBRadiometricUnits to find the scale factor from raw data to expected radiance units.

This would be a "run once" utility that users should invoke.

Let's call it ComputeRadiometricScaleFactors().

benjamin-heasly commented 11 years ago

6ef28ceb0295ed6fa870fca8e0afb34105554c48 contains new functions to scale renderer outputs into physical radiance units: