![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Severi Salminen
Subject: Re: Possibility to assign photons to certain material?
Date: 10 Feb 2004 06:52:45
Message: <4028c60d$1@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Tim Nikias v2.0 wrote:
> SNIP
>
>>I don't see why implementing it would make things
>>worse as you don't _have to_ use it allways - except that it needs to be
>>implemented ;) It would simply make POV-SDL more versatile. But maybe
>>POV-SDL will someday evolve to a form where this can be done easily.
>
> SNIP
>
> Just to comment on this lone part of the discussion: I don't think that
> making assumptions for the User is versatile. It often leads to places where
> the User has to guess/assume what the Programm is assuming and
> counter-effect that. POV-Ray, to me, was always about scripting what you
> need and want. If I want a special effect, like photons, I have to put it
> there, especially since photons can cause a load of data which would slow
> down rendering even if not in sight. I was always glad that POV-Ray "ships"
> with the most basic default settings, and assumes nothing, so that I know
> *exactly* what's happening, when I view the code.
You are totally correct and I agree that the user should allways have
the control. BUT:
Basically photon mapping is an effect in the same way as caustics,
specular reflection, reflection etc. It uses different method and might
cause considerable slowdown even when not visible, but it is still an
effect and it can replace caustics, for example. And if caustics can be
included in material definition, then why not photons as well? I simply
don't understand why photons should be treated differently than the rest
of the "effects".
And: if you assign photons to a material, why wouldn't you know what is
happening? Why would you need to assume anything? If you assign that
material to an object, that object will be used as photon target. Simple.
There are worse examples of guessing/assuming: using radiosity you are
making every object emit light unless you alter the default ambient
value. So not all default values are intuitive :)
> Oh, and "efficiency" has nothing to do with speed of PC's. If you don't need
> calculations for effect, don't do them. That's efficiency: save where
> possible.
Yes, but photons, for example might contribute to the visible part of
the scene even when the object itself is not visible. So efficiency
would be to test if the object affects to visible part and save the
calculations if not. I have to admit I don't know exactly how photon
mapping in POV-Ray works so it might be doing this kind of checking
allready.
PS. I'm not trying to complain, I just proposed a feature that might be
of some use to some people. To me, atleast ;-)
Severi S.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>>
>> But materials can't be targets, only objects can. The only way you
>> can implement this is to make every object somehow 'inherit' the
>> photon settings of its material. But this would not be obvious to the
>> user so it will just cause confusion in most cases.
>
>
> Materials can't be targets, true, but materials are allways assigned to
> certain objects, so yes, objects should inherit the photon settings. I
> thought this is obvious as there simply can't be an occurence of
> material without an object it is assigned to. And the whole point was to
> let material specify if an object needs photons. That is logical - same
> way as you might assign CAUSTICS keyword to certain material.
>
Just my thoughts on this. I think inheritance in this case is
a bad idea, especially if you combine it with 'target off'.
The properties of an object can then change with
the order in which the parts are added together.
Photons as a material property makes sense, but that would
probably mean a large rewrite of the code (if even possible).
Also it may break existing code.
Andrel
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Severi Salminen
Subject: Re: Possibility to assign photons to certain material?
Date: 10 Feb 2004 17:02:16
Message: <402954e8$1@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> Just my thoughts on this. I think inheritance in this case is
> a bad idea, especially if you combine it with 'target off'.
> The properties of an object can then change with
> the order in which the parts are added together.
I didn't quite follow you. Can you give an example?
> Photons as a material property makes sense, but that would
> probably mean a large rewrite of the code (if even possible).
> Also it may break existing code.
You can be 99.99% sure that it will never be implemented in present POV-Ray.
I believe it will be rewritten sooner or later anyway.
Severi
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Severi Salminen wrote:
>>Just my thoughts on this. I think inheritance in this case is
>>a bad idea, especially if you combine it with 'target off'.
>>The properties of an object can then change with
>>the order in which the parts are added together.
>
>
> I didn't quite follow you. Can you give an example?
Well, if you have an object which is partly glass
and partly some opaque material and you add 'target off'
to the latter part. Will the resulting object collect photons
(because of the glass part that switches it on, and
it is inherited by the total object) or not because
of the 'target of' in the other part. Will always the
first declaration take precedence or the last (or
even a middle one).
>
>>Photons as a material property makes sense, but that would
>>probably mean a large rewrite of the code (if even possible).
>>Also it may break existing code.
>
>
> You can be 99.99% sure that it will never be implemented in present POV-Ray.
> I believe it will be rewritten sooner or later anyway.
>
may I add 0.01% percent to that? Without looking into the
code I do not want to bet if it ever will. As I said, I
feel that a material property may make more sense but
it would require a exhaustive search through and deep into
all the objects to see whether there is any photon active
material in it. If that is feasible depends on the
datastructures (I guess).
Andrel
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <pgp### [at] triton imagico de>,
Christoph Hormann <chr### [at] gmx de> wrote:
> But materials can't be targets, only objects can. The only way you can
> implement this is to make every object somehow 'inherit' the photon
> settings of its material. But this would not be obvious to the user so
> it will just cause confusion in most cases.
Why? It "inherits" the ior and media of its interior, the pigment of its
texture, etc. There's nothing about photons that ties them specifically
to the object, it doesn't own the photons. Making them an aspect of the
material makes perfect sense to me. Glass objects have caustics...it's
an aspect of glass, not of the objects.
> Most likely not. For efficiency you will only use photons on those
> objects where the caustics are visible in the scene. Glass objects out
> of direct view that are only visible as reflections in other shapes for
> example will probably not use photons.
Even if they are out of direct view, their photons may be in view
directly, or in reflections. And for the case where they really don't
contribute, provide a mechanism for turning them off.
--
Christopher James Huff <cja### [at] earthlink net>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: <chr### [at] tag povray org>
http://tag.povray.org/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <402### [at] hotmail com>,
andrel <a_l### [at] hotmail com> wrote:
> > I didn't quite follow you. Can you give an example?
> Well, if you have an object which is partly glass
> and partly some opaque material and you add 'target off'
> to the latter part. Will the resulting object collect photons
> (because of the glass part that switches it on, and
> it is inherited by the total object) or not because
> of the 'target of' in the other part. Will always the
> first declaration take precedence or the last (or
> even a middle one).
The parts of the object that are glass will be photon targets. The parts
with the opaque material will not. You can't apply multiple materials to
a simple object, so there's no problem. (well, there may be a problem
with difference and intersection, but no more than there is now)
--
Christopher James Huff <cja### [at] earthlink net>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: <chr### [at] tag povray org>
http://tag.povray.org/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <402### [at] hotmail com>,
andrel <a_l### [at] hotmail com> wrote:
> Photons as a material property makes sense, but that would
> probably mean a large rewrite of the code (if even possible).
I highly doubt this. Actually, it would probably only require changes to
parse.cpp...
--
Christopher James Huff <cja### [at] earthlink net>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: <chr### [at] tag povray org>
http://tag.povray.org/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Ok, I seem to have misunderstood you somewhere.
I thought that because the photons are an object
thing now, you wanted to promote the photon setting
from any material in an object to the object itself.
Andrel
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Severi Salminen
Subject: Re: Possibility to assign photons to certain material?
Date: 11 Feb 2004 04:47:42
Message: <4029fa3e$1@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
news:402### [at] hotmail com...
> Ok, I seem to have misunderstood you somewhere.
> I thought that because the photons are an object
> thing now, you wanted to promote the photon setting
> from any material in an object to the object itself.
Oh, not at all. Sorry if I was unclear. If there was an object that is an
union of glass and wooden part, then the glass part should receive photons,
not everything. And if you, for any reason, don't want that glass part to
receive photons, then specify target off, or whatever. I just think it
should work just like caustics.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Christopher James Huff wrote:
>
> Why? It "inherits" the ior and media of its interior, the pigment of its
> texture, etc. There's nothing about photons that ties them specifically
> to the object, it doesn't own the photons. Making them an aspect of the
> material makes perfect sense to me. Glass objects have caustics...it's
> an aspect of glass, not of the objects.
I'd suggest you (and everyone else who thinks photons are just like
(faked) caustics) to read up how they work before stating such
conclusions.
The idea behind making photon settings part of the material certainly is
to make it unnecessary for the user to think about which *objects* he
wants how many photons for. But since doing so will not actually change
anything in the way POV-Ray distributes the photons this will not result
in any actual improvement of the output quality or the render efficiency
- it would just create the illusion for the user that he does not need
to care about which objects should have photons.
What would really be interesting is a way for POV-Ray to automatically
calculate the target values for the objects that receive photons based
on their importance for the render result. There have been various
attempts for importance based photon distributions, a good introduction
can (although focussed on global photons) be found in:
http://graphics.uni-ulm.de/Importance.pdf
Christoph
--
POV-Ray tutorials, include files, Sim-POV,
HCR-Edit and more: http://www.tu-bs.de/~y0013390/
Last updated 11 Jan. 2004 _____./\/^>_*_<^\/\.______
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |