Difference between revisions of "Advanced C++ Programming Tutorial 5"

From Chilipedia
Jump to: navigation, search
(Video Timestamp Index)
(Video Timestamp Index)
Line 26: Line 26:
 
* Testing in <code>game.cpp</code> [https://youtu.be/iNCx0yIeCNc?t=13m00s 13:00]
 
* Testing in <code>game.cpp</code> [https://youtu.be/iNCx0yIeCNc?t=13m00s 13:00]
 
* Implementing basic transformations in Matrix form as static functions [https://youtu.be/iNCx0yIeCNc?t=15m16s 15:16]
 
* Implementing basic transformations in Matrix form as static functions [https://youtu.be/iNCx0yIeCNc?t=15m16s 15:16]
:* Scaling & Identity Matrices
+
<div class="mw-collapsible-content">
:* Flipping the y-axis
+
:* Scaling & Identity Matrices [https://youtu.be/iNCx0yIeCNc?t=17m13s 17:13]
:* Rotation
+
:* Flipping the y-axis [https://youtu.be/iNCx0yIeCNc?t=18m01s 18:01]
 +
:* Rotation [https://youtu.be/iNCx0yIeCNc?t=18m56s 18:56]
 +
</div>
 
* Testing in <code>game.cpp</code> [https://youtu.be/iNCx0yIeCNc?t=21m25s 21:25]
 
* Testing in <code>game.cpp</code> [https://youtu.be/iNCx0yIeCNc?t=21m25s 21:25]
 
* Basic matrix operations: Matrix multiplication [https://youtu.be/iNCx0yIeCNc?t=23m06s 23:06]
 
* Basic matrix operations: Matrix multiplication [https://youtu.be/iNCx0yIeCNc?t=23m06s 23:06]
 
* Implementing & testing the Matrix multiplication method [https://youtu.be/iNCx0yIeCNc?t=25m52s 25:52]
 
* Implementing & testing the Matrix multiplication method [https://youtu.be/iNCx0yIeCNc?t=25m52s 25:52]
 
* Recap: concatenating transformations by multiplying transformation matrices [https://youtu.be/iNCx0yIeCNc?t=30m10s 30:10]
 
* Recap: concatenating transformations by multiplying transformation matrices [https://youtu.be/iNCx0yIeCNc?t=30m10s 30:10]
 +
<div class="mw-collapsible-content">
 
:* This is the beauty of matrix operations: one single concatenated matrix holds all the transformation information
 
:* This is the beauty of matrix operations: one single concatenated matrix holds all the transformation information
 
:* Concatenating matrices cuts down the number of vector operations needed at runtime
 
:* Concatenating matrices cuts down the number of vector operations needed at runtime
 +
</div>
 
* What about translation? [https://youtu.be/iNCx0yIeCNc?t=31m20s 31:20]
 
* What about translation? [https://youtu.be/iNCx0yIeCNc?t=31m20s 31:20]
 
</div>
 
</div>

Revision as of 06:29, 14 April 2020

Hot take: the Matrix is a mediocre film at best. It's a pretty great way to encode transformations though, so let's matrix it up!

Topics

Part 1

  • Matrix form
  • Matrix by vector multiplication
  • Matrix encoding of scaling, rotation, and flipping
  • Matrix multiplication
  • Concatenating matrix transforms

Part 2

  • Augmented 3x3 matrix for encoding translations
  • Matrix multiplication order matters!
  • Porting pipeline to use matrix transforms
  • Bug hunting!

Video Timestamp Index

Tutorial 5.1


  • Matrices: what are they, what are they good for? 0:44
  • Basic Matrix operations: Matrix by Vector multiplication 3:05
  • Creating a templated _Mat2<T> Matrix class 7:16
  • Matrix data stored as 2D array T arr[2][2]
  • Implementing the Matrix by Vector multiplication method 9:21
  • Testing in game.cpp 13:00
  • Implementing basic transformations in Matrix form as static functions 15:16
  • Scaling & Identity Matrices 17:13
  • Flipping the y-axis 18:01
  • Rotation 18:56
  • Testing in game.cpp 21:25
  • Basic matrix operations: Matrix multiplication 23:06
  • Implementing & testing the Matrix multiplication method 25:52
  • Recap: concatenating transformations by multiplying transformation matrices 30:10
  • This is the beauty of matrix operations: one single concatenated matrix holds all the transformation information
  • Concatenating matrices cuts down the number of vector operations needed at runtime
  • What about translation? 31:20

Tutorial 5.2

  • Timestamps WORK-IN-PROGRESS

Links

  • GitHub Repo (advmath)
  • Note that the code for this tutorial can be found on the <starfield> branch of the repo not in <master>

Homework

None! (or check out 3D Fundamentals you lazy fucks!)

See also