3
\$\begingroup\$

I wrote a ray tracer that implements various BRDF models (Oren Nayar, Lamber, Torrance Sparrow and so on). Now I'm trying to implement a BRDF from measured data. I choose the Cornell database data available here:

http://www.graphics.cornell.edu/online/measurements/reflectance/spraypaints/index.html

I want to use them because there's a representation of the data as spectrum with 31 sample (my ray tracer use spectral data for light calculation and then convert them to CIE XYZ and then RGB values for the final image rendering).

Which is the correct way to use this data? Which sample technique must be used?

\$\endgroup\$
3
  • \$\begingroup\$ I will update my answer if your question becomes more specific, but I think pursuing implementation details merits a whole new question. \$\endgroup\$
    – MickLH
    Commented Jan 19, 2016 at 23:14
  • \$\begingroup\$ Thanks @MickLH, thanks for the reference. So for some implementation details do you want that I open a new question? \$\endgroup\$ Commented Jan 19, 2016 at 23:15
  • \$\begingroup\$ Yes, but I might not be the one to answer it! Alternatively, we could chat in realtime. This question can become a list of good approximation techniques, while a question involving the name of the algorithm is probably better for implementation details. (Think of the people using google.) \$\endgroup\$
    – MickLH
    Commented Jan 19, 2016 at 23:22

1 Answer 1

2
\$\begingroup\$

There is no canonical "correct way" to approximate general functions. Sorry.

With that said, the very source you linked to has suggested the Lafortune representation. This representation has been described as "...compact and works well for hardware rendering..." in chapter 18 of GPU Gems.

Implementation details appear to be out of scope for this question.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .