<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Camera Projection Matrix in 3ds Max Forum</title>
    <link>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9788007#M21270</link>
    <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/676924"&gt;@10DSpace&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Let's say we have a scene with camera001.&amp;nbsp; The following will give us the transform for the camera.&lt;/P&gt;&lt;LI-CODE lang="general"&gt;$Camera001.transform
(matrix3 [0.803647,0.594875,0.0166065] [-0.283417,0.358047,0.88965] [0.523285,-0.719671,0.45634] [-30.7219,-47.907,50.5595])&lt;/LI-CODE&gt;&lt;P&gt;Note that the camera position is&amp;nbsp;[-30.7219,-47.907,50.5595] and that the camera is pointing in a direction opposite to the z unit vector of the matrix or&amp;nbsp; -1*&amp;nbsp;[0.523285,-0.719671,0.45634]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If we now&amp;nbsp; make the viewport view from camera001 we get the following (assigning it to the variable vm view matrix).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;vm = viewport.getTM()
(matrix3 [0.803647,-0.283417,0.523285] [0.594875,0.358047,-0.719671] [0.0166065,0.88965,0.45634] [52.3486,-36.5344,-41.4734])&lt;/LI-CODE&gt;&lt;P&gt;Taking the inverse of vm we get the camera transform.&lt;/P&gt;&lt;LI-CODE lang="general"&gt;vmI = inverse(vm)
(matrix3 [0.803647,0.594875,0.0166065] [-0.283417,0.358047,0.88965] [0.523285,-0.719671,0.45634] [-30.7219,-47.907,50.5595])&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 07 Oct 2020 01:59:21 GMT</pubDate>
    <dc:creator>leeminardi</dc:creator>
    <dc:date>2020-10-07T01:59:21Z</dc:date>
    <item>
      <title>Camera Projection Matrix</title>
      <link>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9787208#M21266</link>
      <description>&lt;P&gt;I am attempting to obtain the camera projection matrix from a free camera that I matched to the prospective view. However, the only script I found was viewport.getTM() which gave me a matrix for the active viewport's matrix, I believe, not a camera projection matrix. Is there a way to find a camera projection matrix within 3DS Max? Also, does anyone know what viewport.getTM() is actually giving me?&lt;/P&gt;</description>
      <pubDate>Tue, 06 Oct 2020 17:16:48 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9787208#M21266</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2020-10-06T17:16:48Z</dc:date>
    </item>
    <item>
      <title>Re: Camera Projection Matrix</title>
      <link>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9787442#M21267</link>
      <description>&lt;P&gt;@Anonymous&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sounds like you already may have read the Max docs which state that viewport.getTM() operates on perspective viewports and then goes on to say that the matrix 3 value that is returned from this function is the "&lt;STRONG&gt;affine&lt;/STRONG&gt;" camera or viewport matrix.&amp;nbsp; I had to look up "affine" myself for which I found,&amp;nbsp; the following,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;"Affine transformation&lt;/STRONG&gt;&amp;nbsp;is a linear mapping method that preserves points, straight lines, and planes. Sets of parallel lines remain parallel after an&amp;nbsp;&lt;STRONG&gt;affine transformation&lt;/STRONG&gt;. The&amp;nbsp;&lt;STRONG&gt;affine transformation&lt;/STRONG&gt;&amp;nbsp;technique is typically used to correct for geometric distortions or deformations that occur with non-ideal camera angles"&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;After which I said to myself, Huh?&amp;nbsp; But affine aside, the returned a matrix 3 value in max terms is best explained&amp;nbsp;here:&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;A href="http://docs.autodesk.com/3DSMAX/15/ENU/MAXScript-Help/index.html?url=files/GUID-D77C780A-4E8A-4528-949F-CC09AAE048DA.htm,topicNumber=d30e162398" target="_blank"&gt;http://docs.autodesk.com/3DSMAX/15/ENU/MAXScript-Help/index.html?url=files/GUID-D77C780A-4E8A-4528-949F-CC09AAE048DA.htm,topicNumber=d30e162398&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;But what are you trying to do with this information?&amp;nbsp; I ask, because I wrote a script recently to automatically construct a pyramid aligned with the camera focal point and the FOV at the camera's target distance.&amp;nbsp; It was written for target cameras but I could easily adapt it to a free camera if it would be useful to you.&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Oct 2020 19:06:10 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9787442#M21267</guid>
      <dc:creator>10DSpace</dc:creator>
      <dc:date>2020-10-06T19:06:10Z</dc:date>
    </item>
    <item>
      <title>Re: Camera Projection Matrix</title>
      <link>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9787650#M21268</link>
      <description>&lt;P&gt;A camera's 3 columns by 4 rows transform matrix only contains the location and orientation of the camera.&amp;nbsp; You can get it with:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;$camera001.transform&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The first row of the matrix is a unit vector of the camera's x axis in world coordinates.&amp;nbsp; The second row the y unit vector and the third row is the z unit vector.&amp;nbsp; The fourth row in the position of the camera.&amp;nbsp; Since the matrix has only 3 columns the result is an axonometric&amp;nbsp; projection.&amp;nbsp; A forth column would be necessary in the matrix to support perspective.&amp;nbsp; How to access other camera properties that provide perspective and data can be found &lt;A href="https://help.autodesk.com/view/3DSMAX/2017/ENU/?guid=__files_GUID_17350E60_DF84_4B3F_8A4D_772914FF2A1C_htm" target="_blank" rel="noopener"&gt;here&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Tue, 06 Oct 2020 20:56:18 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9787650#M21268</guid>
      <dc:creator>leeminardi</dc:creator>
      <dc:date>2020-10-06T20:56:18Z</dc:date>
    </item>
    <item>
      <title>Re: Camera Projection Matrix</title>
      <link>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9787877#M21269</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/822616"&gt;@leeminardi&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks, Lee for that clarification.&amp;nbsp;&amp;nbsp;It seems from your comments and the documentation that&amp;nbsp;viewport.getTM() and $camera001.transform both return matrix 3 values that give the x, y and Z unit vectors and camera position and should be the same thing (for cameras), unless I misunderstand.&amp;nbsp; But when I type each command in separately for a selected camera view, I get a completely different set of values in the 4 rows of each matrix.&amp;nbsp;&amp;nbsp;Do you have any insight into why?&amp;nbsp; &amp;nbsp;Is this to do with Local vs World Coordinate space?&lt;/P&gt;</description>
      <pubDate>Tue, 06 Oct 2020 23:14:57 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9787877#M21269</guid>
      <dc:creator>10DSpace</dc:creator>
      <dc:date>2020-10-06T23:14:57Z</dc:date>
    </item>
    <item>
      <title>Re: Camera Projection Matrix</title>
      <link>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9788007#M21270</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/676924"&gt;@10DSpace&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Let's say we have a scene with camera001.&amp;nbsp; The following will give us the transform for the camera.&lt;/P&gt;&lt;LI-CODE lang="general"&gt;$Camera001.transform
(matrix3 [0.803647,0.594875,0.0166065] [-0.283417,0.358047,0.88965] [0.523285,-0.719671,0.45634] [-30.7219,-47.907,50.5595])&lt;/LI-CODE&gt;&lt;P&gt;Note that the camera position is&amp;nbsp;[-30.7219,-47.907,50.5595] and that the camera is pointing in a direction opposite to the z unit vector of the matrix or&amp;nbsp; -1*&amp;nbsp;[0.523285,-0.719671,0.45634]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If we now&amp;nbsp; make the viewport view from camera001 we get the following (assigning it to the variable vm view matrix).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;vm = viewport.getTM()
(matrix3 [0.803647,-0.283417,0.523285] [0.594875,0.358047,-0.719671] [0.0166065,0.88965,0.45634] [52.3486,-36.5344,-41.4734])&lt;/LI-CODE&gt;&lt;P&gt;Taking the inverse of vm we get the camera transform.&lt;/P&gt;&lt;LI-CODE lang="general"&gt;vmI = inverse(vm)
(matrix3 [0.803647,0.594875,0.0166065] [-0.283417,0.358047,0.88965] [0.523285,-0.719671,0.45634] [-30.7219,-47.907,50.5595])&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Oct 2020 01:59:21 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9788007#M21270</guid>
      <dc:creator>leeminardi</dc:creator>
      <dc:date>2020-10-07T01:59:21Z</dc:date>
    </item>
    <item>
      <title>Re: Camera Projection Matrix</title>
      <link>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9788047#M21271</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/822616"&gt;@leeminardi&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for the explanation.&amp;nbsp; I see that the inverse function actually moves the values around from different rows (it's not just about the z unit vector facing the wrong way -- all the rows are affected including camera position).&amp;nbsp; There is much I do not understand about matrix math.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But in practical terms, and to return to the OP's questions, with the availability of the camera transform matrix, as you pointed out via $Camera001.transform (without having to invert it) and all of the other camera properties available via maxscript (FOV, target position, etc.)&amp;nbsp; is there even any special reason to use viewport.getTM()&amp;nbsp; for a&amp;nbsp; camera?&amp;nbsp; &amp;nbsp;I can see the case for a viewport to produce an "eye view location" in the absence of camera, but it's not clear to me what the use case is for a camera.&amp;nbsp; Thanks again for your explanation.&amp;nbsp; &amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Oct 2020 02:55:51 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9788047#M21271</guid>
      <dc:creator>10DSpace</dc:creator>
      <dc:date>2020-10-07T02:55:51Z</dc:date>
    </item>
    <item>
      <title>Re: Camera Projection Matrix</title>
      <link>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9788902#M21272</link>
      <description>&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/822616" target="_blank"&gt;@leeminardi&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/676924"&gt;@10DSpace&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your responses. That gives more clarity into what I am trying to accomplish. Do you know if the $Camera001.transform function gives an equivalent 4x3 matrix as the camera projection matrix described here? &lt;A href="https://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/EPSRC_SSAZ/node3.html" target="_blank"&gt;https://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/EPSRC_SSAZ/node3.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am attempting to pull these properties from an unknown real-world camera position so that I can calibrate my pixel space from video. This is for graduate biomedical research into head injuries, so any help is super appreciated!&lt;/P&gt;</description>
      <pubDate>Wed, 07 Oct 2020 12:19:07 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9788902#M21272</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2020-10-07T12:19:07Z</dc:date>
    </item>
    <item>
      <title>Re: Camera Projection Matrix</title>
      <link>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9788935#M21273</link>
      <description>&lt;P&gt;@Anonymous&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You may find a recent thread on this forum useful to what you are working on:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/3ds-max-shading-lighting-and/dimensions-for-field-of-view/td-p/9769282" target="_blank"&gt;https://forums.autodesk.com/t5/3ds-max-shading-lighting-and/dimensions-for-field-of-view/td-p/9769282&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Briefly, some&amp;nbsp;&lt;SPAN&gt;research engineers wanted a way to&amp;nbsp; determine the dimensions (and aspect ratio which you are asking about)&amp;nbsp; of the field-of-view at the camera target distance for use with the spatial resolution of their optical (and often laser-based) diagnostics measurement set-up (e.g. mm/pix) for various camera positions.&amp;nbsp; &amp;nbsp; There is a maxscript that does what they wanted at the end of the thread that I wrote, that may be helpful to you.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Oct 2020 12:30:10 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9788935#M21273</guid>
      <dc:creator>10DSpace</dc:creator>
      <dc:date>2020-10-07T12:30:10Z</dc:date>
    </item>
    <item>
      <title>Re: Camera Projection Matrix</title>
      <link>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9789450#M21274</link>
      <description>&lt;P&gt;@10space&lt;/P&gt;&lt;P&gt;Since you asked about matrices here are a couple of points to keep in mind.&amp;nbsp;&lt;/P&gt;&lt;P&gt;If we know that matrix A = the product of B times C we can write this as:&lt;/P&gt;&lt;P&gt;[A] = [B]*[C]&lt;/P&gt;&lt;P&gt;Let’s say we know [A] and [B] but not [C].&amp;nbsp; How can we find [C]?&lt;/P&gt;&lt;P&gt;We CANNOT write [C] = [A] / [B]&lt;/P&gt;&lt;P&gt;but can write [C] = inverse([B]) * [A]&lt;/P&gt;&lt;P&gt;Where [B] * inverse([B]) = [I]&amp;nbsp; the indentity matrix (a square matrix with 1’s for the diagonal and 0’s elsewhere).&amp;nbsp; Some square matrices cannot be inverted. I won’t get into the details here as to why.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In 3ds Max we are working with 4 x 3 matrix (4 rows and 3 columns) which is not a square matrix.&amp;nbsp; To invert the viewport matrix “vm” of my post #5, an additional column must be added to make it square. The contents of the column are 0 0 0 1 and the full matrix for the viewport becomes:&lt;/P&gt;&lt;P&gt;[0.803647,-0.283417,0.523285,0] [0.594875,0.358047,-0.719671,0] [0.0166065,0.88965,0.45634,0] [52.3486,-36.5344,-41.4734,1]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I use Excel to sometimes invert a matrix.&amp;nbsp; Here’s the result for this example.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 815px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/828306i4123D195EFB5CB27/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The Maxscript invert function automatically adds the fourth column to enable the matrix inversion.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Bottom line, I think you can use the $Camera001.transform function or the inverse of the viewport transform matrix for the camera projection reference you cite.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A little off topic but an example of using matrices you might find interesting is a tutorial I put together earlier this year on &lt;A href="https://www.youtube.com/watch?v=MS1IVo1QB78&amp;amp;feature=youtu.be" target="_blank" rel="noopener"&gt;rigging a hexapod&lt;/A&gt;&amp;nbsp;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Oct 2020 15:37:40 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9789450#M21274</guid>
      <dc:creator>leeminardi</dc:creator>
      <dc:date>2020-10-07T15:37:40Z</dc:date>
    </item>
    <item>
      <title>Re: Camera Projection Matrix</title>
      <link>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9789687#M21275</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/822616"&gt;@leeminardi&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks very much for you patient explanation of the inverse function.&amp;nbsp; The Excel spreadsheet really helps to see that Inverting the Viewport matrix (after the addition of the 4th column),&amp;nbsp; results in the first 3 Columns of the viewport matrix becoming the first 3 Rows of the Camera matrix, which I interpret to be a re-orientation of the perpendicular x, y &amp;amp; z unit vectors/axes.&amp;nbsp; &amp;nbsp;But, I am still puzzled by why position in the 2 matrices is different because I had assumed that the viewport "Eye Level" position was supposed to be the same as the camera (nodal point?) position.&amp;nbsp; &amp;nbsp; But obviously that assumption must be wrong.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks also for the video too because that demonstrates a good use case for using matrices and unit vectors in solving animation problems.&amp;nbsp; &amp;nbsp; (I had previously believed that unit vectors and matrices were just punishment for bad behavior of some sort).&amp;nbsp; &amp;nbsp;They still make my head hurt a little, but after the pain subsided, I can see their utility now thanks to your video.&amp;nbsp; That's a pretty impressive set up for the hexapod.&amp;nbsp; &amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Oct 2020 17:18:33 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9789687#M21275</guid>
      <dc:creator>10DSpace</dc:creator>
      <dc:date>2020-10-07T17:18:33Z</dc:date>
    </item>
    <item>
      <title>Re: Camera Projection Matrix</title>
      <link>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9789786#M21276</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/676924"&gt;@10DSpace&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The attached Max file is what I used to evaluate the camera and viewport transforms.&amp;nbsp; &amp;nbsp;As noted earlier you can invert the viewport matrix to get the camera matrix.&amp;nbsp; I was wondering what might be the spatial relationship between the 2 matrices in addition to the mathematical relationship.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In addition to camera001, the file contains a point at the position vector noted in the viewport transform [52.3486,-36.5344,-41.4734].&amp;nbsp; I added red, green, and blue lines that are in the direction of the x, y, z, unit vectors of the viewport transform.&amp;nbsp; I could not see any spatial correlation between the camera and the viewport transform.&amp;nbsp; Perhaps you can see one!&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 651px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/828375i1E19CEB467EE42BE/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;After using matrices a bit in Max you will really appreciate their power.&amp;nbsp; The main disadvantage of using matrices for rigging is the potential for gimbal lock.&amp;nbsp; That's when you need to turn to quaternions (quats).&amp;nbsp; &amp;nbsp;Quat math causes my brain some pain but are the foundation for TCB rotational controllers.&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Oct 2020 18:14:24 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9789786#M21276</guid>
      <dc:creator>leeminardi</dc:creator>
      <dc:date>2020-10-07T18:14:24Z</dc:date>
    </item>
    <item>
      <title>Re: Camera Projection Matrix</title>
      <link>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9790089#M21277</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/822616"&gt;@leeminardi&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I see the error of my logic now.&amp;nbsp; I was (unreasonably) expecting the getViewTM() function to return for a Perspective Viewport the "eye" position &lt;U&gt;without inversion&lt;/U&gt;.&amp;nbsp; But in playing further with the example in the Max docs (see code below) even for a Perspective Viewport, you must use the &lt;STRONG&gt;inverse&lt;/STRONG&gt; of the getViewTM() function to derive a meaningful position.&amp;nbsp; &amp;nbsp;So, I first selected the camera view, hit "P" to change it to Perspective view and then ran the code below and a sphere was constructed and aligned to the camera nodal point proving that the "eye" position for a&amp;nbsp; Perspective Viewport does in fact correspond to the camera position for the same view.&amp;nbsp; &amp;nbsp;You just have to remember to always get the inverse of the&amp;nbsp;getViewTM() function for a meaningful/useful position.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;--/////////////////From Max Docs--\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\&lt;/P&gt;&lt;P&gt;--The following function returns as a Ray value the "eye" location and direction for the active viewport.&lt;BR /&gt;--The viewport needs to be a non-orthographic viewport.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;fn getViewDirectionRay =&lt;BR /&gt;(&lt;BR /&gt;-- The affine TM transforms from world coords to view coords&lt;BR /&gt;-- so we need the inverse of this matrix&lt;BR /&gt;local coordSysTM = Inverse(getViewTM())&lt;BR /&gt;-- The Z axis of this matrix is the view direction.&lt;BR /&gt;local viewDir = -coordSysTM.row3&lt;BR /&gt;-- get the view position from this matrix&lt;BR /&gt;local viewPt = coordSysTM.row4&lt;BR /&gt;return ray viewPt viewDir&lt;BR /&gt;)&lt;/P&gt;&lt;P&gt;r = getViewDirectionRay()&lt;/P&gt;&lt;P&gt;--Added section----------------&lt;BR /&gt;--Now make a sphere and align it with the "eye" location&lt;BR /&gt;s = sphere()&lt;BR /&gt;s.radius = 1&lt;BR /&gt;s.pos = r.pos&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks again, Lee for your wealth of information on the topic.&amp;nbsp; It really helped get my head around this stuff a little better.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Oct 2020 21:07:11 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9790089#M21277</guid>
      <dc:creator>10DSpace</dc:creator>
      <dc:date>2020-10-07T21:07:11Z</dc:date>
    </item>
    <item>
      <title>Re: Camera Projection Matrix</title>
      <link>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9790121#M21278</link>
      <description>&lt;P&gt;Really useless things, can't imagine someone doing any of mxs examples on this topic.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here's how you can get an idea about it:&lt;/P&gt;&lt;P&gt;Switch from some ortho to persp. view. Create targeted camera Ctrl+C (from view).&lt;/P&gt;&lt;P&gt;Back to persp. view.&lt;/P&gt;&lt;P&gt;Evaluate inverse$transform with camera selected&lt;/P&gt;&lt;P&gt;Take a look to cam. target distance&lt;/P&gt;&lt;P&gt;Take a look to cam Y (-) value&lt;/P&gt;&lt;P&gt;Open transform tipe-in, look at Dolly value&lt;/P&gt;&lt;P&gt;Hopefully cam target is on 0 Y value, you'll have same numbers&lt;/P&gt;&lt;P&gt;If not cam. distance is difference from cam Y (to 0) and target Y (to 0)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you move target alone it will not be at image plane center any more&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You can do the same with directional light, more fun...&lt;/P&gt;&lt;P&gt;Change FOV with cone falloff field&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But you don't have to create camera at all, renderer can't work without it and still we can render any view&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Oct 2020 21:28:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9790121#M21278</guid>
      <dc:creator>domo.spaji</dc:creator>
      <dc:date>2020-10-07T21:28:27Z</dc:date>
    </item>
    <item>
      <title>Re: Camera Projection Matrix</title>
      <link>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9790161#M21279</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/8285824"&gt;@domo.spaji&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;"Really useless things, can't imagine someone doing any of mxs examples on this topic."&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Both&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/676924"&gt;@10DSpace&lt;/a&gt;&amp;nbsp; and I learned something in this exercise.&amp;nbsp; Not so useless.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Oct 2020 21:58:43 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9790161#M21279</guid>
      <dc:creator>leeminardi</dc:creator>
      <dc:date>2020-10-07T21:58:43Z</dc:date>
    </item>
    <item>
      <title>Re: Camera Projection Matrix</title>
      <link>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9790182#M21280</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/8285824"&gt;@domo.spaji&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Really useless things, can't imagine someone doing any of mxs examples on this topic.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Useless to you perhaps, but not to others on this thread. You should learn some respect for the interests of others.&amp;nbsp; This is not the first time I have seen you intrude on a thread with negative, inflammatory and disparaging statements.&amp;nbsp; It's really a shame, because you could make your points (none of which were particularly useful, relevant or helpful to me in this case)&amp;nbsp; without any of that.&amp;nbsp; &amp;nbsp;I am not sure why you feel the need to constantly disparage others on the forums here but it is not really in the spirit of collaborative problem solving that I think is what best serves the forum.&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Oct 2020 22:15:39 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9790182#M21280</guid>
      <dc:creator>10DSpace</dc:creator>
      <dc:date>2020-10-07T22:15:39Z</dc:date>
    </item>
    <item>
      <title>Re: Camera Projection Matrix</title>
      <link>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9790258#M21281</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/676924"&gt;@10DSpace&lt;/a&gt;and &lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/822616"&gt;@leeminardi&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So thats all you get from my message?&lt;/P&gt;&lt;P&gt;Yeah, you are teachers, no more learning for you.&lt;/P&gt;&lt;P&gt;Don't sell me helping and serving stories... Offering answers and scripts on something you never heard before.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;One mayor thing about scripting - Things are first enabled in Max with all tolls and solutions, &lt;STRONG&gt;than&lt;/STRONG&gt; in Maxscript, &lt;U&gt;and &lt;STRONG&gt;if &lt;/STRONG&gt;&lt;/U&gt;in Maxscript. It's not other way around.&lt;/P&gt;</description>
      <pubDate>Wed, 07 Oct 2020 23:21:34 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9790258#M21281</guid>
      <dc:creator>domo.spaji</dc:creator>
      <dc:date>2020-10-07T23:21:34Z</dc:date>
    </item>
    <item>
      <title>Re: Camera Projection Matrix</title>
      <link>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9790311#M21282</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/8285824"&gt;@domo.spaji&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Let's keep this on learning please.&amp;nbsp; We all have something useful to share and learn.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Would you expand on what you meant by "&lt;SPAN&gt;Things are first enabled in Max with all tolls and solutions,&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;than&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;in Maxscript,&amp;nbsp;&lt;/SPAN&gt;&lt;U&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;if&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/U&gt;&lt;SPAN&gt;in Maxscript. It's not other way around."&amp;nbsp; &amp;nbsp;What is your "tolls" reference?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 08 Oct 2020 00:21:03 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-forum/camera-projection-matrix/m-p/9790311#M21282</guid>
      <dc:creator>leeminardi</dc:creator>
      <dc:date>2020-10-08T00:21:03Z</dc:date>
    </item>
  </channel>
</rss>

