POV-Ray : Newsgroups : povray.general : Cammera Question : Re: Cammera Question Server Time
7 Aug 2024 17:21:56 EDT (-0400)
  Re: Cammera Question  
From: Mr  Art
Date: 15 Aug 2001 07:02:19
Message: <3B7A8F2B.79822F45@chesapeake.net>
This works well if the object that you want the camera position to
follow is  not part of a complex, jointed structure. Take the example
of the FirstFinger on the hand. If the hand were attached to an arm, and
that arm attached to a body, and the body was climbing down a hill, the
position of the body and the angle and length of the arm and the angle
of the hand and the angle of the FirstFinger on that hand would most
certainly
define a position for a hypothetical fingertip on that finger. I would
not 
have to do any convoluted positional calculations to place a fingernail 
on that fingertip, it could just be included as part of the union{}. 
And as the body moved so does the fingernail. So if I replace the
fingernail 
with a lightsource{}, it gets positioned just as easily as the
fingernail 
did and follows the finger around as the body gets moved, just as the 
fingernail did. And I don't have to compute beforhand where I want to
put
the hand or finger that is attached, it just gets moved when the part it
is unioned with does.

Why should the camera be any different? Is there some fundamental
difference
between cameras and lightsources and other objects that makes this
change to the cameras
union-ability impossible? (Besides the obvious one: the parser wont let
me.)

Warp wrote:
> 
>   You can do something like this:
> 
> #declare ObjectTransformations =
>   transform
>   { // whichever combination of rotate and translate. Scale is not good.
>   }
> 
> camera
> { location CamLoc // Location of the camera when the object is at the origin
>   look_at 0
>   transform { ObjectTransformations }
> }
> 
> object
> { MyObject // centered at the origin
>   // possible scale and other non-moving transformations here
>   transfrom { ObjectTransformations }
> }
> 
>   This has the same effect as if you had written something like:
> 
> union
> { camera
>   { location CamLoc // Location of the camera when the object is at the origin
>     look_at 0
>   }
>   object
>   { MyObject // centered at the origin
>     // possible scale and other non-moving transformations here
>   }
>   transfrom { ObjectTransformations }
> }
> 
> --
> #macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
> rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
> ],13),8)-3,10>#end blob{N(array[6]{11117333955,
> 7382340,3358,3900569407,970,4254934330},0)}//                     - Warp -


Post a reply to this message

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