POV-Ray : Newsgroups : povray.newusers : Refraction in transparent objects? : Re: Refraction in transparent objects? Server Time
5 Nov 2024 07:15:45 EST (-0500)
  Re: Refraction in transparent objects?  
From: Tim Gosnell
Date: 19 Jun 2000 14:30:47
Message: <394E66D8.4356C04F@lanl.gov>
Thanks to all for the thoughtful responses to my inquiry; I have a few
thoughts/encouragements/ideas to offer on this problem:

First of all let me say how charmed I am by the capabilities and potential
that POVray exhibits and by the spirit of its developers and guardians in
making this tool available to everyone.   To me, this program represents a
rare coincidence of art, technology, and science where individual
practitioners possessing no more than modest personal resources can make a
difference.  At the same time, the collectivist character of the enterprise
is a wholly new strategy for creating new knowledge. It is a perfect
example of what I believe may evolve in other disciplines; it would be as
if a Nobel prize were awarded to an distributed activity that generated
brilliant results rather than to an individual.

I would also like to encourage the POV community to consider continuing
upgrades to the physical correctness of the algorithms. Mainly this is
because I believe the full range of applications of the program have yet to
be tapped; with continued advances in computing power the kinds of problems
amenable to POV solutions will only expand. I think this is important
because part of the intellectual excitement I feel about this program
involves the unravelling of what optical features have an influence on how
we perceive the world and which do not. What features must be modeled?
Must they be physically based? Can some be ignored?  Do some need only to
be represented empirically? Is there a visual analogue to psychoacoustics,
a subdiscipline pertinent to audio reproduction? At the very least, it is
as though the same process undertaken by Renaissance painters in their
attempts to accurately represent the world are being addressed again in a
totally new context.

As a solution to the problems that Bob,  Ron, and Warp bring up,  I should
mention that I use a profoundly capable (and profoundly expensive)
scientific nonsequential ray tracer as part of my work. It is not useful
for generating computer graphics, but includes the ability to model such
effects as angle-dependent Fresnel reflection, attenuation, multilayer
optical coatings, scattering, polarization, interference, and diffraction.
The way in which "coincident surfaces" are handled is simple and powerful:

Every surface is characterized by an "interface" modifier which allows one
to specify the result of a ray intersection with that surface. For example,
a block of glass would have a specification that included the index of
refraction outside the surface and the index of refraction inside the
surface. What counts as inside and outside can be determined naturally by
virtue of the topology of the object, or it can be defined by the existence
of a surface normal vector. Note that this differs from the POV-Ray
approach which attaches a refractive index to the interior of an object and
otherwise is ignorant of any surrounding/enclosing material. If in the
block example one wanted to insert into the interior a spherical ball with
a different index of refraction, one just gives an interface specification
that includes the ior of the glass block and the ior of the ball. In this
way, refraction of a ray hitting the block is determined by the interface
specification of that surface (e.g., ior=1 outside, ior=1.5 inside). If the
ray then strikes the interior ball, the interface specification ( e.g.
ior=1.5 outside, ior=1.3 inside) then gives the correct refraction (and
Fresnel reflectivity/transmission!). Any other surface properties
(roughness, etc) can be included as part of the interface specification. If
instead you *really* do want to model the effect of one transparent surface
pushed up against another, you would simple create two overlapping (or
nearly overlapping) surfaces each with their own interface specifications.
Implementing these ideas in POV-Ray would clearly require some new
functions ( I see a first attempt has evidently been made in pulling out
the "interior" command from the texture command), but I think this would
make understanding the program behavior--when transparent objects are
involved--a lot simpler.

I'd be delighted to help out in contributing to getting the physics set up
if this is attractive to the programmers.

Thanks to all again,
Tim


Post a reply to this message

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