|
![](/i/fill.gif) |
Thorsten Froehlich wrote:
> It is rather complicated, but without it there would be cases for which
> there is more than one solution which way the camera could be pointing.
I suppose this is when look_at lines up with sky. I guess new rules of
rotation could be defined, and as they'll be arbitrary, there is the
risk of a small war about which rule is the true and only way. As most
advanced user can probably set up their direction/right/up vectors
without resorting to sky/look_at, I understand it could be considered
wasteful.
> Further, the look_at vector is of no use when actually creating camera rays
> because it does not contain enough information on its own together with the
> location. That is why up, right and sky have defaults.
>
> The key about understanding, or even trying to understand how the various
> camera parameters interact (and have to interact to work together at all in
> certain cases), is to understand that many are redundant ways to specify the
> same information:
>
> All you need is the up, right and direction vectors to create every possible
> perspective camera specification that uses a combination of up, right,
> direction, look_at, angle, sky and location.
I understand that. And I guess that all transformations boils down to
changing these vectors. Oh, and location too.
> To make it even more
> complicated, other camera types need to make use only of certain aspects of
> these parameters (i.e. the vector length), or they need additional
> parameters (like the spherical camera).
>
> So don't worry - without seeing the source code in action step by step, I
> would never have understood what exactly is happening and why.
I just tried to read the Parse_Camera function, but I know too little
about C and how parsers work to understand precisely what it is doing
:'-(. I'll do some experiments in sdl to further my understanding.
Many thanks for your answers,
Povingly,
Philippe
Post a reply to this message
|
![](/i/fill.gif) |