POV-Ray : Newsgroups : povray.binaries.images : Skin Deep Server Time
1 Aug 2024 02:20:46 EDT (-0400)
  Skin Deep (Message 11 to 16 of 16)  
<<< Previous 10 Messages Goto Initial 10 Messages
From: Edouard
Subject: Re: Skin Deep
Date: 22 Mar 2009 18:10:01
Message: <web.49c6b7286a616ed14f2112bb0@news.povray.org>
Alain <ele### [at] netscapenet> wrote:
> Thomas de Groot nous illumina en ce 2009-03-22 04:06 -->
> > That is very good indeed!
> >
> > However (there always is a however it seems) what is missing now is the
> > shadow as it were of the finger bones. The fingers now seem empty wax
> > containers. You could try with the Poser skeleton maybe. I am not sure, as I
> > have never used it, but it should be complete and accurate.
> >
> > Thomas
> >
> >
> Acording to my own experience, when light diffuse trough the hand's skin like
> that, you have a hard time noticing the bones at all, maybe a prety slight
> darkening in the middle, but that's all.
>
> So, for the hand, ignoring the bones seems to be an acurate compromise.

I'l second that. I've shone a bright torch through my hand and gone "where are
the bones??".

The patch looks fantastic BTW!

Cheers,
Edouard.


Post a reply to this message

From: Thomas de Groot
Subject: Re: Skin Deep
Date: 24 Mar 2009 03:57:38
Message: <49c89272$1@news.povray.org>
"Alain" <ele### [at] netscapenet> schreef in bericht 
news:49c69d18@news.povray.org...
> Acording to my own experience, when light diffuse trough the hand's skin 
> like that, you have a hard time noticing the bones at all, maybe a prety 
> slight darkening in the middle, but that's all.
>
> So, for the hand, ignoring the bones seems to be an acurate compromise.

Amazing! So simple to verify and I never thought about it.

Thomas


Post a reply to this message

From: grammophone
Subject: Re: Skin Deep
Date: 25 Mar 2009 19:10:00
Message: <web.49cab8796a616ed1963e3a970@news.povray.org>
"clipka" <nomail@nomail> wrote:
> "Thomas de Groot" <tDOTdegroot@interDOTnlANOTHERDOTnet> wrote:
> > However (there always is a however it seems) what is missing now is the
> > shadow as it were of the finger bones. The fingers now seem empty wax
> > containers. You could try with the Poser skeleton maybe. I am not sure, as I
> > have never used it, but it should be complete and accurate.
>
> That, unfortunately, is a thing I expect to remain difficult with this lighting
> model, as it does not do a full volumetric simulation.
>
> Depending on the optimizations that will ultimately wind up in the code, adding
> bones would have either a too strong effect, or none at all.
>
> (Attached another shot in which we can see the candle a bit better)

There's my own effort for pseudo-sss a few years ago. It isn't a volumetric
implementaiton either, but it takes into account internal and external
obstacles. It should be slower than yours though, as it shoots many rays per
surface intersection.

An implmentation idea for faster and more realistic sss could be to piggyback on
the caustics photon mechanism.

Keep up the great work!


Post a reply to this message


Attachments:
Download 'fsss3.png' (58 KB)

Preview of image 'fsss3.png'
fsss3.png


 

From: clipka
Subject: Re: Skin Deep
Date: 25 Mar 2009 20:25:00
Message: <web.49cacb2e6a616ed1c1f399840@news.povray.org>
"grammophone" <eml### [at] ingr> wrote:
> There's my own effort for pseudo-sss a few years ago. It isn't a volumetric
> implementaiton either, but it takes into account internal and external
> obstacles. It should be slower than yours though, as it shoots many rays per
> surface intersection.

So does my current implementation: It picks a point just a little bit below the
surface and shoots rays randomly in all directions to pick sample points on the
object's surface (+) , from which in turn I do classic shadow ray tests to
measure the incoming light; the incoming light intensities are then shoved
through the BSSRDF formula (*), weighted to compensate for my choice of samples
(**), and then summed up.

(+ at the moment, no intersection tests with other objects are performed; I
guess it would be better to do this, but in some cases it may be just as wrong;
it'll never realistically capture the effect of bones in a finger, for instance)

(* the formula from 2001 Jensen et al. paper - the same that the Tariq & Ibarria
patch was based on; as a matter of fact my code is a heavily modified version of
theirs)

(** weighting is done based on distance, and the angle at which the probe ray
intersects the surface, to get an estimate of the area the sample "represents")


Of course there's a lot of potential for improvement:

- For sample points far away enough, I might just skip the test and assume that
they don't contribute (some adc_bailout like mechanism).

- For sample points moderately far away, I might re-use sample data collected
earlier sufficiently close (similar to the radiosity sample cache); or, as you
already mention, I might shoot photons at the object in advance, so I wouldn't
have to bother about shadow tests and instead just "collect" the photons close
enough to my sample points.

- I might actually skip the step of shooting rays to choose sample points, and
instead just "sum up" all sample points already collected on the same object's
surface, unless I find I don't have enough of them yet; using some spatial
subdivision structure with pre-calculated sums would help in this process.

- Maybe I could even do a caching of "final result data"

; for instance, I could cache already computed sample points, and when I need to
test another one, I might check whether I have any sample points in the cache
"sufficiently" close. In a follow-up paper Jensen actually suggested such an
approach, although the proposed algorithm isn't suited too well for POV-ray's
way of doing things.

> An implmentation idea for faster and more realistic sss could be to piggyback on
> the caustics photon mechanism.

I don't think it would provide any additional realism. I can use it to possibly
speed up the computation of incident illumination at my sample points, but I
can't shoot photons efficiently through the scattering material for any good
effect. There may simply be just too many scattering events (the paper speaks
of typically several hundreds in skin for a single photon).


Post a reply to this message

From: grammophone
Subject: Re: Skin Deep
Date: 6 Apr 2009 10:45:00
Message: <web.49da14606a616ed18012f7230@news.povray.org>
I think that we have rather created the same thing. I also do some sample
weighting for hemisphere integration, with more samples near the surface
normal, as these contribute more. The only difference seems that my internal
rays test all objects for intersection instead of the container only. So,
during internal ray shooting towards the "other side", i might indeed hit the
"other side" or a "bone". Light integration is then performed in both cases. In
the former case, it works like yours. In the latter, the bone is completely
hidden from lights, thus it would contribute the desired "blackness" to the
effect with its ambient color setting.

Yes, this is dirty! No computation takes place for the light scattered on the
bone. But i pose the approximation hypothesis that the light reflected from a
bone is usually quite less than the one penetrating the surface.

For a more complete approach, one could address the problem from the light too,
not only ray-traced from the eye. It has been many years since i have read
Jensen's papers, but when i proposed photons, i had his methods for computing
shadows and caustics in my mind. I remember that he discriminates classes of
low and high density photons, the former for ambient lighting, the latter for
caustics etc which seems appropriate here and is implemented by POV's caustics.
So, an SSS object could become a photon target the usual way in POV terms.
Photons deposited on the object's "other side" depict translucent areas, so,
translucency can be inferred just from photon collection on the surface.
Photons deposited in internal objects depict "bone" lighting. These should be
visualized as normal caustics seen through the surface's matte refraction, in
other words, via shooting eye rays into the surface with directions and weights
just as you do today, but with the exception that you should not do shadow tests
anymore, as this has been taken care of by the photon deposition.

"clipka" <nomail@nomail> wrote:
> - For sample points moderately far away, I might re-use sample data collected
> earlier sufficiently close (similar to the radiosity sample cache); or, as you
> already mention, I might shoot photons at the object in advance, so I wouldn't
> have to bother about shadow tests and instead just "collect" the photons close
> enough to my sample points.
>

Yes, that is what i thought too.

Thank you for your great work!

-emmanuel


Post a reply to this message

From: clipka
Subject: Re: Skin Deep
Date: 6 Apr 2009 11:40:01
Message: <web.49da221a6a616ed12b82b7c80@news.povray.org>
"grammophone" <eml### [at] ingr> wrote:
> during internal ray shooting towards the "other side", i might indeed hit the
> "other side" or a "bone". Light integration is then performed in both cases. In
> the former case, it works like yours. In the latter, the bone is completely
> hidden from lights, thus it would contribute the desired "blackness" to the
> effect with its ambient color setting.
>
> Yes, this is dirty! No computation takes place for the light scattered on the
> bone. But i pose the approximation hypothesis that the light reflected from a
> bone is usually quite less than the one penetrating the surface.

The problem is not so much the light coming directly from the bone.

The main problem is that in a highly scattering medium, the light does not
spread along a straight line, so testing for interfering objects via a "naive"
ray tracing approach is prone to error.

To take an extreme example, imagine a bright laser shining at a finger: With
your approach, the finger bone would cast a precise, sharp shadow on the
opposite surface, which of course would be far from realistic. Instead, a great
deal of light should be transported around the bone by diffusing through the
skin and flesh, illuminating the whole surface with a very low gradient.

And the problem not only manifests in the shadow cast on the opposite, but also
in the brightness of the non-shadowed areas: With your approach, the finger
bone would have no effect on these (because the only light source - the laser
dot - would be in direct line of sight). This is unrealistic as well; instead,
as the bone absorbs light, in reality there would be less light scattered back
to the surface.

The effect will probably not be as prominent with normal lighting, as it will
illuminate not single points but rather patches of skin, so the bone shadow
will be quite diffuse; however, it shows that the effect cannot be neglected,
and results must be expected to differ significantly from reality.

Of course just ignoring the bone isn't right either. So the best solution is yet
to be found.

> [photons]

That would solve the issue if it was only about light scattering back from the
bone, but as demonstrated that's not even the main problem.


> Thank you for your great work!

You're welcome. There's still an awful lot to do though.


Post a reply to this message

<<< Previous 10 Messages Goto Initial 10 Messages

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.