|
![](/i/fill.gif) |
Alain napsal(a):
> Sylvain Dubé nous illumina en ce 2008/04/23 15:20 -->
>> Hi
>> I'm looking to simulate a doublet of lens. I have a problem with
>> photons when I
>> take the two lens separately. Photons are stopped in the interface.
>> For now, I'm trying to construct my doublet in one object but I don't
>> know if
>> it's the best way.
>>
>> For exemple, this is my lens
>>
>> #declare lentille = merge
>> {
>> intersection
>> {
>> cylinder{<0,0,16>,<0,0,1>,25.4}
>> sphere{<0,0,15-83.2>,83.2}
>> sphere{<0,0,71.1+3>,71.1}
>> hollow
>> pigment {Clear } interior { ior n1}
>> photons {target reflection off refraction on collect off}
>> }
>> intersection
>> {
>> sphere{<0,0,247.7>, 247.7}
>> cylinder{<0,0,7.7>,<0,0,-1>,25.4}
>> hollow
>> pigment {Clear } interior { ior n11}
>> photons {target reflection off refraction on collect off}
>> }
>> }
>>
>> In this way, are my ior conserved in each part?
>> Does there another solution?
>>
>> Thank you
>>
>> Sylvain
>>
>>
> "hollow" is totaly, completely and uterly useless in your case, as your
> lense don't contain any media.
>
> Make sure that there is a slighy gap between the two components to
> prevent any coincident surfaces. Also, make sure that the components
> never intersect as they do in your sample. It's unrealistic. The
> behaviour is also hard to predict.
>
> You don't need to use a merge, a simple union is good enough.
> It's beter to place the photons block in the union rather than to each
> individual component. If you use the same texture for all element, it's
> also beter to place your texture in the union and not in each component
> definition.
>
> What is your max_trace_level? It default to 5, and your doublet counts 4
> surfaces. If your photons ever encounter even 1 surface prior to
> entering the double lense, they won't get out. You must count 2 steps
> for each transparent object, one for any reflection and one for the
> surface that will receive the photons. If you are unsure, take a larger
> value than what you guessed, up to 256.
>
> Your solution may be as simple as adding:
>
> global_settings{max_trace_level 7}
>
> Make it the first line of your scene.
>
> I've tested your sample, after moving the elements so that they no
> longer overlap, and with max_trace_level of 6.
> The provided lense have a prety short focal lenght. Maybe your receiving
> surface was set to far away and the photons got to dispersed to still be
> visible...
>
If you move the objects slightly apart you will get a visible gap. I
think the refraction works this way: It remembers the objects it is in
and uses the IOR of the last object entered and not escaped. Not sure
how this applies to a union but merge will cause problems.
--
the ultimate time-killer:
+a0.0 +am2 +r9
Johnny D
Post a reply to this message
|
![](/i/fill.gif) |