Difference between revisions of "Advanced C++ Programming Tutorial 5"
From Chilipedia
(→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
- 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]
- Matrix data stored as 2D array
- 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
- 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
- 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!)