Difference between revisions of "3D Fundamentals Tutorial 3"

From Chilipedia
Jump to: navigation, search
(Video)
(Video)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
In this video we start from the canonical 2D rotation transformation matrix and extend it to 3D to derive rotation around the Z, Y, and Z-axes. We also jerk off said axes, using the left-hand rule of course (right hand is busy with the mouse).
+
In this video we start from the canonical 2D rotation transformation matrix and extend it to 3D to derive rotation around the Z, Y, and X-axes. We also jerk off said axes, using the left-hand rule of course (right hand is busy with the mouse).
  
 
== 2D Rotation ==
 
== 2D Rotation ==
Line 7: Line 7:
  
 
The tutorial video is on YouTube [https://youtu.be/cN97hkDrzcc here].
 
The tutorial video is on YouTube [https://youtu.be/cN97hkDrzcc here].
 +
 +
<div class="mw-collapsible mw-collapsed"><br />
 +
* How does sight (the Retina) work? How do we see 3D? [https://youtu.be/cN97hkDrzcc?t=0m26s 0:26]
 +
<div class="mw-collapsible-content">
 +
:* The retina is basically a 2D image sensor array
 +
:* It projects 3D space onto a 2D interpretation
 +
:* There are numerous cues to allow us to perceive 3D. One is rotating an image along various axes
 +
</div>
 +
* Applying 3D rotation to our cube [https://youtu.be/cN97hkDrzcc?t=1m46s 1:46]
 +
* Deriving the three 3D rotation matrices (around the x,y,z axes) [https://youtu.be/cN97hkDrzcc?t=5m16s 5:16]
 +
* Implementing rotation matrices in the <code>Mat3</code> class [https://youtu.be/cN97hkDrzcc?t=8m25s 8:25]
 +
* How to rotate around any orientation? Concatenate the matrices [https://youtu.be/cN97hkDrzcc?t=14m17s 14:17]
 +
* Switching between multiple 3D interpretations by your brain [https://youtu.be/cN97hkDrzcc?t=16m18s 16:18]
 +
* The order of concatenation in 3D rotation matters [https://youtu.be/cN97hkDrzcc?t=17m29s 17:29]
 +
<div class="mw-collapsible-content">
 +
:* The transformation is not  commutative and different orders result in different orientations
 +
:* Just pick one order and stich with it. As long as you're consistent, there is no problem
 +
</div>
 +
* Direction of rotation: the left hand rule again [https://youtu.be/cN97hkDrzcc?t=19m49s 19:49]
 +
* Wrapping angles in a [-pi,+pi) range [https://youtu.be/cN97hkDrzcc?t=21m09s 21:09]
 +
<div class="mw-collapsible-content">
 +
:* Angle data in radians are periodic (period = 2*pi)
 +
:* It's good practice to keep angle data in one fixed range (width 2*pi) as floating point data loses precision if they grow large
 +
</div>
 +
</div>
  
 
== Downloads ==
 
== Downloads ==

Latest revision as of 01:53, 28 April 2020

In this video we start from the canonical 2D rotation transformation matrix and extend it to 3D to derive rotation around the Z, Y, and X-axes. We also jerk off said axes, using the left-hand rule of course (right hand is busy with the mouse).

2D Rotation

For an in-depth explanation / derivation of the formula for 2D rotation, check out this video. There is also another video in the same series that deals with encoding transformations in matrices, and it can be found here.

Video

The tutorial video is on YouTube here.


  • How does sight (the Retina) work? How do we see 3D? 0:26
  • The retina is basically a 2D image sensor array
  • It projects 3D space onto a 2D interpretation
  • There are numerous cues to allow us to perceive 3D. One is rotating an image along various axes
  • Applying 3D rotation to our cube 1:46
  • Deriving the three 3D rotation matrices (around the x,y,z axes) 5:16
  • Implementing rotation matrices in the Mat3 class 8:25
  • How to rotate around any orientation? Concatenate the matrices 14:17
  • Switching between multiple 3D interpretations by your brain 16:18
  • The order of concatenation in 3D rotation matters 17:29
  • The transformation is not commutative and different orders result in different orientations
  • Just pick one order and stich with it. As long as you're consistent, there is no problem
  • Direction of rotation: the left hand rule again 19:49
  • Wrapping angles in a [-pi,+pi) range 21:09
  • Angle data in radians are periodic (period = 2*pi)
  • It's good practice to keep angle data in one fixed range (width 2*pi) as floating point data loses precision if they grow large

Downloads

The GitHub repository for the tutorial code is here.


See also