|
![](/i/fill.gif) |
Robert McGregor schrieb:
> I've been playing with the SSLT stuff the last 2 days and I noticed that in the
> Jensen SSLT SIGGRAPH paper there's a third RGB Diffuse Reflectance parameter
> (like a color_map for highlights, yes?) used to fine tune the material.
Which of the two papers are you referring to here? The 2001
Jensen/Marschner/Levoy/Hanrahan paper ("A Practical Model for Subsurface
Light Transport"), or the 2002(?) Jensen/Buhler follow-up ("A Rapid
Hierarchical Rendering Technique for Translucent Materials")?
The 2001 paper had no such parameter: The scattering and absorption
coefficients and the refractive index are essentially the only
parameters in the model presented there. (I'm deliberately ignoring the
phase function, as Jensen et al. themselves presumed isotropic
scattering when they went on to measure the parameters of real-world
materials.)
The 2002 paper does indeed mention a "diffuse reflection coefficient"
with reference to the 2001 paper, Rd, but in the 2001 paper that was
actually the /result/ of the SSLT computations (or, rather, with the
formula referred to in the 2002 paper, even just an approximation).
The 2002 paper does indeed take this diffuse reflection coefficient as a
parameter, but not in addition to the scattering and absorption
coefficients appearing in the BSSRDF formula, but to reparameterize the
whole smash, in order to compute the scattering and absorption
coefficients from parameters that are more intuitive (said diffuse
reflection coefficient, as well as the "mean free path" per color
component).
The diffuse reflection coefficient, in that reparameterization, would be
equivalent to the product of the pigment color and POV-Ray's the
"diffuse" parameter.
> So that
> would just mean extending the existing diffuse component of a finish to use a
> full RGB color vector instead of an assumed grayscale color vector
> as it is currently, which makes a lot of sense to me (and a second vector for
> the backlit stuff that Clipka did).
The diffuse colorization is what is currently in the pigment (which, as
you will certainly agree, is much more flexible than just a color
vector). Note that the pigment does not affect highlights or reflections
unless used with the "metallic" keyword. Even then, they can be
"decoupled" by using multi-layered textures.
> Regardless, accurate simulation of different physical materials requires
> different mathematical models to handle the various cases. I know what (and
> who) Phong is, but I'm not really sure what model POV-Ray's "specular"
> represents (just a guess - Cook-Torrence?).
No, it's actually just the Blinn-Phong model.
> So, why limit POV-Ray to "phong"
> and "specular?" Why not just take into account several shading models for
> various materials, just like the high-dollar Hollywood boys do? (and they're
> pretty damned convincing most of the time)
Maybe because someone needs to implement the whole stuff? And maybe the
people using it are not high-dollar Hollywood boys who know exactly when
to employ what model?
And last not least, maybe it's also because the syntax to this day is
not particularly inviting to add more alternative highlight models.
> That simply means making available various *combinable* shading models for
> various materials. Blinn/Phong for plastics, Lambert for simple
> non-reflective surfaces, Cook-Torrance for metals, Oren Nayar for rough
> surfaces, and Ward-anisotropic for objects with anisotropic reflections like
> brushed metal, fur, hair, etc. That's the utmost in flexibility as far as I can
> see.
I guess I do agree that it would be nice to have additional highlighting
models, and maybe even be able to combine them.
However, given that the average user will use just /one/ of these many
models, I would consider it a waste of memory (and a bit of computing
time, too) to combine all of these side by side in each and every single
texture finish.
I would therefore rather suggest to have a texture finish support
exactly /one/ highlight model (let the user pick which one), which
experienced users can then combine by using multi-layered textures.
Post a reply to this message
|
![](/i/fill.gif) |