model view transformation

I am still confused by model-view transformation.

Is the eye-coordinate space a Euclidian space? In other words, does the eye-coordinate space have orthogonal basis with (1,0,0), (0,1,0), and (0,0,1)? Or basis are distorted when perpespective view is used? The reason why I am asking is sometimes it is hard to track relationship among positions of models after rotate and transform.

To make question clear, let’s say, after I changed to model-viw mode, I used only rotation and transform. Then, is the model-view matrix exactly same as muliple of the rotation matrix and the transform matrix?

Thank you for any help.

Luin

[This message has been edited by Luin (edited 03-24-2000).]

Yes it is.

When using perspective projection, the only things that happen is that the objects far away from the camera are smaller the reason is :

Have you seen a view frustum. If you have the redbook you can see one. It’s can kind have the shape of a pyramid with the top cut.

Let’s say you chose an angle of 45 degrees. then the visible objects are those that their coordinates fits in the region define by those equations:

left = -tan(45) * distancefromcamera * ratio(width/height)

right = tan(45) * distfromc * ratio

top = tan(45) * distafromc;

bottom = -tan(45) * distafromc;

this form a pyramid.

for the final 2D mapping on the screen, you can see it a taking the pyramid and crushing in into a box that fits the viewport you defined.

What happens is that objects that are far away are smaller.

without a drawing, it might sound a bit weird, but think about it, you’ll see it makes all the sense in the world.

But, what could happen for your problem is that you write you rotation and transforms in the wrong order:

Might not have answered your question, but I hope it made clearer how the perpespective projection acts on you objects.

>What happens is that objects that are far away are smaller.

So for perspective projection case, model-view matrix already contains this effect,.

>But, what could happen for your problem is that you write you rotation and transforms in the wrong order:

You are right! Very helpful.

I now realized that, to set up my own world coordinate and calculate my own matrix, I used wrong order of matrix multiplication.
Thank you very much!

Have a nice day.

Luin

[This message has been edited by Luin (edited 03-26-2000).]