1
$\begingroup$

This question already has an answer here:

For a 3D scene in the world coordinates, its View Reference Point $\mathrm{VRP}$ is at $(5,2,1)$, and a viewer is looking towards point $A=(1,1,1)$. Construct a transform matrix which will map world coordinate points to a right-handed $(UVN)$ viewing space, so that VRP is the origin, the line joining $\mathrm{VRP}$ to $A$ is the positive $N$ axis, and the view-up Vector is $(0,0,1)$.

I have calculated the translation matrix:

$$ T= \begin{pmatrix} 1 & 0 & 0 & -5 \\ 0 & 1 & 0 & 2 \\ 0 & 0 & 1 & -1 \\ 0 & 0 & 0 & 1 \\ \end{pmatrix} $$

I have calculated the rotation matrix:

$$ R= \begin{pmatrix} -0.6 & -0.8 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ -0.8 & 0.6 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ \end{pmatrix} $$

But what would the final transformation matrix $M$ be? My lecture slides tell me it would be rotation matrix multiplied by translation matrix, with the last column multiplied by $-1$ except for the $1$. This would equal:

$$ M = R \times T = \begin{pmatrix} -0.6 & -0.8 & 0 & -1.4 \\ 0 & 0 & 1 & 1 \\ -0.8 & 0.6 & 0 & -5.2 \\ 0 & 0 & 0 & 1 \\ \end{pmatrix} $$

But this answer here: Building view transform matrices

just adds them together somehow. Which one is correct?

$\endgroup$

marked as duplicate by Julien Guertault, Nathan Reed, joojaa, trichoplax Aug 5 '17 at 21:34

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • $\begingroup$ As this question is being closed as a duplicate of the first half, I've copied and pasted the wording from here to there, with minor adjustment to make it fit as a second half. You may need to make minor edits if I've accidentally changed your intention. $\endgroup$ – trichoplax Aug 5 '17 at 21:33
0
$\begingroup$

Thanks for notification me, In my previous answer, I just combine the translation matrix and the rotation matrix, actually, It's the result translation matrix(T) multiply rotation matrix(R).

The rotation is a 3x3 matrix, we can extend the matrix to a 4x4 matrix with adding a dimension, the 4x4 rotation matrix is:

enter image description here

And the translation matrix is:

enter image description here

So, now we can calculate the transform matrix by translation matrix multiply(T) rotation matrix(R):

Cause the matrix multiply formula is too big for the 4x4 matrix, we just look at the 1st row, In the transform matrix(M), the M11 element equals to T11*R11+T12*R21+T13*R31+T14*R41, cause T12, T13, R41 is 0, so, the M11 equals to R11 right? And in the same way, M14 equals to T11*R14+T12*R24+T13*R34+T14*R44, only R44 equals to 1, so, the M14 equals to T14. so, I just simply put them together in my last answer. For the reason why we put the translation matrix on the left, you can check on the book that I gave you in my previous answer on page 91(translating first and then rotating).

$\endgroup$
  • $\begingroup$ Great, so we both agree we have to multiply the rotation and translation matrices. I'm going to have to check with my lecturer though which order to do it. He also multiplies the last column of the final transformation matrix (M) by -1 (except for the 1 in M44). Thanks anyways. $\endgroup$ – S.A Mar 29 '17 at 10:09
  • $\begingroup$ Can you share the result after checking with your lecturer. Thanks. $\endgroup$ – Craig.Li Mar 29 '17 at 10:12
  • $\begingroup$ Yeah, once I get it sure. $\endgroup$ – S.A Mar 29 '17 at 12:03
  • $\begingroup$ As this question is being closed as a duplicate of the first half, I've copied and pasted this answer from here to there, with minor adjustment to make it fit as a second half of your original answer there. You may need to make minor edits if I've accidentally changed your intention. $\endgroup$ – trichoplax Aug 5 '17 at 21:34

Not the answer you're looking for? Browse other questions tagged or ask your own question.