![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Margus Ramst wrote:
>
> You have to remember that the photon patch doesn't currently work with
> media, so laser beams won't be visible (I have absolutely no knowlege about
> the device you're after, but wouldn't it require visible laser beams in the
> ablation zone?)
> As for light intensity - Nathan knows better, but I'd imagine photon mapping
> (which is basically backward raytracing) should produce no intensity falloff
> when reflecting off a perfect mirror - just like in standard raytracing.
>
> Margus
Well that pretty well blows that idea all to heck. I forgot about the
lack of media intereaction. Now for my next trick...
Thanks Margus.
--
Ken Tyler
mailto://tylereng@pacbell.net
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) |
Ken wrote:
>
> Margus Ramst wrote:
> >
> > You have to remember that the photon patch doesn't currently work with
> > media, so laser beams won't be visible (I have absolutely no knowlege about
> > the device you're after, but wouldn't it require visible laser beams in the
> > ablation zone?)
> > As for light intensity - Nathan knows better, but I'd imagine photon mapping
> > (which is basically backward raytracing) should produce no intensity falloff
> > when reflecting off a perfect mirror - just like in standard raytracing.
> >
> > Margus
>
> Well that pretty well blows that idea all to heck. I forgot about the
> lack of media intereaction. Now for my next trick...
>
> Thanks Margus.
>
> --
> Ken Tyler
>
> mailto://tylereng@pacbell.net
It will probably be easier to model using colored cylinders anyway.
--
Ken Tyler
mailto://tylereng@pacbell.net
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) |
Indeed. You'd probably have to use the SuperPatch's trace function, tho.
Here's a macro (by Ron Parker) that might help. I don't remember if R has to
point from the surface or toward the surface, you'll have to test it.
//Returns the mirror vector of R at surface normal N
#macro v_mirror(R,N)
#local nN=vnormalize(N);
#local par=vdot( R, nN );
#local perp=R-par*nN;
vnormalize(par*nN-perp)
#end
Ken wrote in message <375E5F95.FBA2A85B@pacbell.net>...
>
>It will probably be easier to model using colored cylinders anyway.
>
>--
>Ken Tyler
>
>mailto://tylereng@pacbell.net
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) |
Margus Ramst wrote:
>
> Indeed. You'd probably have to use the SuperPatch's trace function, tho.
> Here's a macro (by Ron Parker) that might help. I don't remember if R has to
> point from the surface or toward the surface, you'll have to test it.
>
> //Returns the mirror vector of R at surface normal N
> #macro v_mirror(R,N)
> #local nN=vnormalize(N);
> #local par=vdot( R, nN );
> #local perp=R-par*nN;
> vnormalize(par*nN-perp)
> #end
Thanks for the tip. I doubt I will use the "Super Patch" as the new version
is still unavailable and my need for completing this in a timely manner is
great. My much older (12/98), outdated, and inefficient version of the "Super
Patch" is corrupt so no longer works plus it is not available anywhere on the
net for download. I asked yesterday when I could have a copy of the new version
of the "Super Patch" and was told to "bugger off" (so to speak :).
--
Ken Tyler
mailto://tylereng@pacbell.net
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) |
On Wed, 09 Jun 1999 07:30:49 -0700, Ken wrote:
> Thanks for the tip. I doubt I will use the "Super Patch" as the new version
>is still unavailable and my need for completing this in a timely manner is
>great. My much older (12/98), outdated, and inefficient version of the "Super
>Patch" is corrupt so no longer works plus it is not available anywhere on the
>net for download. I asked yesterday when I could have a copy of the new version
>of the "Super Patch" and was told to "bugger off" (so to speak :).
You were not. I was joking, as I thought you were. Furrfu. I really
don't know when it will be online, it depends heavily on what else is
going on in my life. Nevertheless, every time I mention it I get asked
when it's going to be back online, despite the fact that I've said more
than once that I really don't know.
If you're intersecting a ray with a planar mirror, trace isn't really
necessary because the operation is so simple. Here's a macro to find
it, borrowed somewhat from the POV source.
#macro IntersectPlane( _PlaneNormal, PlaneOffset, RayInitial, _RayDirection )
#local PlaneNormal=vnormalize(_PlaneNormal+<0,0,0>);
#local RayDirection=vnormalize(_RayDirection+<0,0,0>);
#local NormalDotDirection = vdot(RayDirection, PlaneNormal);
#if ( abs(NormalDotDirection) < 0.00001 )
#error "Ray parallel to mirror"
#end
#local NormalDotOrigin = vdot( RayInitial, PlaneNormal );
#local Depth=(PlaneOffset - NormalDotOrigin) / NormalDotDirection;
RayInitial+Depth*RayDirection
#end
Of course, this assumes you haven't done anything with the mirror, like
rotating or scaling it. If you've done that, you'll have to fix the
normal and offset appropriately.
Translate is
#declare Offset=Offset+(Normal*Translation);
Rotate is trickier - you have to multiply the normal vector by the
transpose of the rotation matrix. If you rotate before you translate,
though (and you probably will) you can no doubt find an easier way to
find the new normal. Hope this all helps.
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) |
On 9 Jun 1999 13:18:03 -0400, Ron Parker wrote:
>Of course, this assumes you haven't done anything with the mirror, like
>rotating or scaling it. If you've done that, you'll have to fix the
>normal and offset appropriately.
Wicked thought - just find three points on your plane (this is easy
enough, especially if you start with an axis-aligned plane.) and
transform each of them as you transform the plane, then recalculate
the normal and offset from them.
#local Normal = vnormalize(vcross( c-a, b-a ) );
#local Offset = vdot( a, Normal );
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) |
Ken wrote:
>
> It will probably be easier to model using colored cylinders anyway.
>
I agree. Even when media interaction is impelmented, you will probably
still get better results in much less time using MUCH less memory if you
fake it.
-Nathan
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) |
Ron Parker wrote:
> > I asked yesterday when I could have a copy of the new version
> > of the "Super Patch" and was told to "bugger off" (so to speak :).
>
> You were not. I was joking, as I thought you were. Furrfu. I really
> don't know when it will be online, it depends heavily on what else is
> going on in my life. Nevertheless, every time I mention it I get asked
> when it's going to be back online, despite the fact that I've said more
> than once that I really don't know.
I was taking yet another friendly swipe when I mentined the above.
> If you're intersecting a ray with a planar mirror, trace isn't really
> necessary because the operation is so simple. Here's a macro to find
> it, borrowed somewhat from the POV source.
>
> #macro IntersectPlane( _PlaneNormal, PlaneOffset, RayInitial, _RayDirection )
> #local PlaneNormal=vnormalize(_PlaneNormal+<0,0,0>);
> #local RayDirection=vnormalize(_RayDirection+<0,0,0>);
> #local NormalDotDirection = vdot(RayDirection, PlaneNormal);
> #if ( abs(NormalDotDirection) < 0.00001 )
> #error "Ray parallel to mirror"
> #end
> #local NormalDotOrigin = vdot( RayInitial, PlaneNormal );
> #local Depth=(PlaneOffset - NormalDotOrigin) / NormalDotDirection;
> RayInitial+Depth*RayDirection
> #end
>
> Of course, this assumes you haven't done anything with the mirror, like
> rotating or scaling it. If you've done that, you'll have to fix the
> normal and offset appropriately.
>
> Translate is
> #declare Offset=Offset+(Normal*Translation);
>
> Rotate is trickier - you have to multiply the normal vector by the
> transpose of the rotation matrix. If you rotate before you translate,
> though (and you probably will) you can no doubt find an easier way to
> find the new normal. Hope this all helps.
I think I have a simple yet elegant solution in the works. Since
I have abandoned the photon technique in favor of simply connecting
cylinders from each mirror surface to the next John Van Sickles
connect the dots macro handles it well and I know how to use it
from previous experience.
Thank you for taking the time to offer assistance.
--
Ken Tyler
mailto://tylereng@pacbell.net
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) |
Ken wrote in message <375E5F29.BC0C8694@pacbell.net>...
>Margus Ramst wrote:
>>
>> You have to remember that the photon patch doesn't currently work with
>> media, so laser beams won't be visible (I have absolutely no knowlege
about
>> the device you're after, but wouldn't it require visible laser beams in
the
>> ablation zone?)
>> As for light intensity - Nathan knows better, but I'd imagine photon
mapping
>> (which is basically backward raytracing) should produce no intensity
falloff
>> when reflecting off a perfect mirror - just like in standard raytracing.
>>
>> Margus
>
>
> Well that pretty well blows that idea all to heck. I forgot about the
>lack of media intereaction. Now for my next trick...
You could fake the media with a bajillion tiny, mostly transparent cubes
arranged throughout the area.
Mark
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) |
Mark Wagner wrote:
>
> Ken wrote in message <375E5F29.BC0C8694@pacbell.net>...
> >Margus Ramst wrote:
> >>
> >> You have to remember that the photon patch doesn't currently work with
> >> media, so laser beams won't be visible (I have absolutely no knowlege
> about
> >> the device you're after, but wouldn't it require visible laser beams in
> the
> >> ablation zone?)
> >> As for light intensity - Nathan knows better, but I'd imagine photon
> mapping
> >> (which is basically backward raytracing) should produce no intensity
> falloff
> >> when reflecting off a perfect mirror - just like in standard raytracing.
> >>
> >> Margus
> >
> >
> > Well that pretty well blows that idea all to heck. I forgot about the
> >lack of media intereaction. Now for my next trick...
>
> You could fake the media with a bajillion tiny, mostly transparent cubes
> arranged throughout the area.
>
> Mark
Were I selling my customer the equipment that this image will represent
I might consider such an approach. Since it is instead intended more to
illustrate a process I feel I could do better using other means and
methods than those you describe.
Thank oyu for your suggestion anyway.
--
Ken Tyler
mailto://tylereng@pacbell.net
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |