WEBVTT 1 00:00:05.673 --> 00:00:09.870 Game Basics Production Mechanism of Game Contents 1 (Affine Space) 2 00:00:09.870 --> 00:00:12.200 GCC Academy 3 00:00:27.280 --> 00:00:30.730 Hello, this is Lee Deukwoo of Game Math 4 00:00:30.730 --> 00:00:34.680 During this time, we'll learn about affine space 5 00:00:34.680 --> 00:00:37.280 We're going to talk about two things today 6 00:00:37.280 --> 00:00:39.380 First, we'll talk about what an affine space is 7 00:00:39.380 --> 00:00:42.360 and why it is formed 8 00:00:42.360 --> 00:00:45.410 Then we'll talk about the elements 9 00:00:45.410 --> 00:00:46.944 that form up the affine space 10 00:00:47.103 --> 00:00:50.924 The Concept of Affine Space 11 00:00:51.983 --> 00:00:55.137 I'm first going to explain about the affine space 12 00:00:55.137 --> 00:00:58.737 Before that, I'll explain about why 13 00:00:58.737 --> 00:01:00.519 we need the affine space 14 00:01:00.519 --> 00:01:03.369 When we implement computer graphics 15 00:01:03.369 --> 00:01:06.599 we can't leave out the function of movement 16 00:01:06.599 --> 00:01:10.249 Implementing computer graphics without the movement function 17 00:01:10.249 --> 00:01:13.899 is actually a state with 18 00:01:13.899 --> 00:01:17.199 a very important function left out 19 00:01:17.199 --> 00:01:21.399 But in the concept of linear transformation that we talked about 20 00:01:21.399 --> 00:01:24.879 we weren't able to implement this movement 21 00:01:24.879 --> 00:01:29.529 It's because for the concept of movement 22 00:01:29.529 --> 00:01:33.400 the origin itself has to move 23 00:01:33.400 --> 00:01:36.300 But for the concept of vector that we learned 24 00:01:36.300 --> 00:01:39.900 it always started from the origin and continued somewhere else 25 00:01:39.900 --> 00:01:42.279 It was the concept of an arrow 26 00:01:42.279 --> 00:01:43.947 Therefore, for this concept of linear transformation 27 00:01:43.947 --> 00:01:46.947 we can't be separated from the origin 28 00:01:46.947 --> 00:01:50.680 so we can't implement these kinds of transformations 29 00:01:50.680 --> 00:01:53.830 If we were to make a matrix 30 00:01:53.830 --> 00:01:56.720 that actually implements these movement functions 31 00:01:56.720 --> 00:02:01.470 we need to design a linear transformation like the following 32 00:02:01.470 --> 00:02:06.519 But a matrix that can satisfy this doesn't exist 33 00:02:06.519 --> 00:02:09.469 When we multiply a linear transformation 34 00:02:09.469 --> 00:02:14.569 the multiplied value must only be added to x 35 00:02:14.569 --> 00:02:16.759 and then only to y 36 00:02:16.759 --> 00:02:21.709 but there's no linear transformation that satisfies this 37 00:02:21.709 --> 00:02:25.070 Therefore, we weren't able to implement the movement function 38 00:02:25.070 --> 00:02:30.160 with the original linear transformations that we had 39 00:02:30.160 --> 00:02:34.310 But here, if we apply a little bit of 40 00:02:34.310 --> 00:02:37.599 the translation that we mentioned last time, 41 00:02:37.599 --> 00:02:40.949 then it would be a different method 42 00:02:40.949 --> 00:02:44.749 It's not a normal method, but it would be a different method 43 00:02:44.749 --> 00:02:47.320 where we can implement the movement function 44 00:02:47.320 --> 00:02:50.420 I'll briefly explain about that method 45 00:02:50.420 --> 00:02:52.620 Let's first look at translation 46 00:02:52.620 --> 00:02:54.470 As we mentioned earlier, 47 00:02:54.470 --> 00:02:57.559 one axis stays there 48 00:02:57.559 --> 00:02:59.909 and the y-axis is translated this way 49 00:02:59.909 --> 00:03:02.559 That's what translation is 50 00:03:02.559 --> 00:03:06.059 How can this be related to movement? 51 00:03:06.059 --> 00:03:09.160 In the two dimensional translation, 52 00:03:09.160 --> 00:03:13.560 let's look at just the x value first 53 00:03:13.560 --> 00:03:17.860 It's two dimensional here, but we'll first look at 54 00:03:17.860 --> 00:03:20.440 only the one dimensional value, the straight line 55 00:03:20.440 --> 00:03:22.190 The y-value underneath here 56 00:03:22.190 --> 00:03:25.290 Take a look at this red standard basis vector 57 00:03:25.290 --> 00:03:28.800 on y=0 58 00:03:28.800 --> 00:03:31.052 Next, look at this vector of 1, 59 00:03:31.052 --> 00:03:34.952 blue and located on y=1 60 00:03:34.952 --> 00:03:37.880 and parallel to the standard basis vector 61 00:03:37.880 --> 00:03:40.980 When we translate one unit, 62 00:03:40.980 --> 00:03:44.430 the bottom standard basis vector stays the same 63 00:03:44.430 --> 00:03:47.330 but this vector, on y=1, 64 00:03:47.330 --> 00:03:51.160 changes from 1 to 2 65 00:03:51.160 --> 00:03:53.660 If we translate two units 66 00:03:53.660 --> 00:03:56.919 then it changes from 2 to 3 67 00:03:56.919 --> 00:04:01.391 Then how can we interpret this? 68 00:04:01.391 --> 00:04:04.991 It's a translation of two dimensional space 69 00:04:04.991 --> 00:04:07.441 but when we only use one dimension, 70 00:04:07.441 --> 00:04:10.320 not the entire two dimension, 71 00:04:10.320 --> 00:04:13.470 When we apply a translation of 1 unit, 72 00:04:13.470 --> 00:04:17.120 in terms of this straight line, y=1, 73 00:04:17.120 --> 00:04:20.570 in terms of all the coordinates where y=1, 74 00:04:20.570 --> 00:04:23.120 all the points on this line 75 00:04:23.120 --> 00:04:27.600 moved to the right by one unit 76 00:04:27.600 --> 00:04:31.350 Next, a translation of 2 units 77 00:04:31.350 --> 00:04:36.200 The result of applying a translation of scale 2 is 78 00:04:36.200 --> 00:04:41.480 in terms of just this y=1 part, 79 00:04:41.480 --> 00:04:45.280 all the points moved to the right 80 00:04:45.280 --> 00:04:47.440 by 2 units, all at once 81 00:04:47.440 --> 00:04:49.840 In other words, there's a partial spot 82 00:04:49.840 --> 00:04:53.390 that moves by the amount we translated 83 00:04:53.390 --> 00:04:59.239 and that's where y=1 84 00:04:59.239 --> 00:05:01.160 where the value of the last dimension is 1 85 00:05:01.160 --> 00:05:03.860 If we use this, we can ultimately 86 00:05:03.860 --> 00:05:08.174 utilize the translate function, expand upon it, and 87 00:05:08.174 --> 00:05:11.720 implement the movement function as well 88 00:05:11.720 --> 00:05:14.799 Right now, we can call it a one-dimensional movement 89 00:05:14.799 --> 00:05:19.849 Since the x value increased from 1 to 2, to 2 to 3 90 00:05:19.849 --> 00:05:24.699 means that we used a two dimensional transformation 91 00:05:24.699 --> 00:05:28.000 to implement a one dimensional movement 92 00:05:28.000 --> 00:05:31.950 If we want to implement a two-dimensional movement 93 00:05:31.950 --> 00:05:36.618 then we just need to use a three-dimensional translation 94 00:05:36.618 --> 00:05:40.668 Just like in the figure below, 95 00:05:40.668 --> 00:05:44.160 in the three-dimensional space formed by x, y, and z, 96 00:05:44.160 --> 00:05:50.310 when we push the x and y axis by (a, b) 97 00:05:50.310 --> 00:05:54.360 then along this flat surface where z=1 98 00:05:54.360 --> 00:05:56.960 it moved from the origin 99 00:05:56.960 --> 00:06:00.737 by the amount (a, b) 100 00:06:00.737 --> 00:06:04.787 Therefore, this translation of a flat surface 101 00:06:04.787 --> 00:06:07.037 Or, two-dimensional translation 102 00:06:07.037 --> 00:06:09.739 ultimately means one-dimensional movement 103 00:06:09.739 --> 00:06:12.139 and translation of a space 104 00:06:12.139 --> 00:06:15.760 is the movement of a flat surface 105 00:06:15.760 --> 00:06:20.320 We can talk about the movement of a flat surface like this 106 00:06:20.320 --> 00:06:24.770 Then how can we show this three-dimensional translation 107 00:06:24.770 --> 00:06:25.918 with a numerical expression? 108 00:06:25.918 --> 00:06:29.818 Using a three-dimensional square matrix 109 00:06:29.818 --> 00:06:32.000 fixing only the z 110 00:06:32.000 --> 00:06:34.550 and only moving x and y in the matrix 111 00:06:34.550 --> 00:06:36.640 can be expressed this way 112 00:06:36.640 --> 00:06:40.590 When we actually use a matrix multiplication 113 00:06:40.590 --> 00:06:45.720 and multiply it to a three dimensional vector x, y, 1 114 00:06:45.720 --> 00:06:49.020 the result is the exact result 115 00:06:49.020 --> 00:06:50.959 that we wanted earlier 116 00:06:50.959 --> 00:06:55.679 It adds a to x, and b to y 117 00:06:55.679 --> 00:06:58.829 The last value stays at 1 118 00:06:58.829 --> 00:07:02.760 and this is the flat surface where z=1 119 00:07:02.760 --> 00:07:05.910 This means z=1, and actually, we 120 00:07:05.910 --> 00:07:08.040 don't need to use this 121 00:07:08.040 --> 00:07:10.540 If we just cut this part off 122 00:07:10.540 --> 00:07:13.540 we can obtain the result of 123 00:07:13.540 --> 00:07:15.760 moving by the amount a, b that we wanted 124 00:07:15.760 --> 00:07:18.959 However, we're cutting it off at the final value 125 00:07:18.959 --> 00:07:21.459 When we actually use the matrix 126 00:07:21.459 --> 00:07:26.480 we need to use a 3x3 square matrix 127 00:07:26.480 --> 00:07:32.030 Like this, when we conduct the transformation 128 00:07:32.030 --> 00:07:34.799 at a space one dimension higher 129 00:07:34.799 --> 00:07:39.399 then we can conduct movement, rotation, and scaling 130 00:07:39.399 --> 00:07:41.406 in the form of linear transformation 131 00:07:41.406 --> 00:07:46.886 These transformations are called affine transformation 132 00:07:51.519 --> 00:07:55.019 Therefore, in affine transformation 133 00:07:55.019 --> 00:07:57.959 the movement function is included 134 00:07:57.959 --> 00:08:02.359 The movement transformation that we looked at just now 135 00:08:02.359 --> 00:08:04.640 gets utilized as an affine transformation 136 00:08:04.640 --> 00:08:09.320 We can call this a two-dimensional movement 137 00:08:09.320 --> 00:08:13.020 Well then, the rotation and scaling that we used before 138 00:08:13.020 --> 00:08:15.720 used a 2x2 square matrix 139 00:08:15.720 --> 00:08:20.839 For those, we just need to artificially increase it by one dimension 140 00:08:20.839 --> 00:08:24.039 Just like the following, set the last dimension to 1 141 00:08:24.039 --> 00:08:26.160 and fix the scale transformation 142 00:08:26.160 --> 00:08:31.000 For rotation as well, fix the last z axis 143 00:08:31.000 --> 00:08:35.300 so that nothing occurs 144 00:08:35.300 --> 00:08:38.320 Then you'll get a rotation of a flat surface 145 00:08:38.320 --> 00:08:40.670 Just like that, if you set all linear transformations 146 00:08:40.670 --> 00:08:44.080 to transformations with a scale of 3, 147 00:08:44.080 --> 00:08:46.830 then using the linear transformation that we mentioned earlier, 148 00:08:46.830 --> 00:08:50.280 we can decrease the number of operations 149 00:08:50.280 --> 00:08:53.480 using matrix multiplication 150 00:08:53.480 --> 00:08:56.440 which is an advantage of matrices 151 00:08:56.440 --> 00:09:00.240 These three transformations are the main transformations 152 00:09:00.240 --> 00:09:02.458 that are used in game production 153 00:09:02.458 --> 00:09:05.208 Translation, scale, and rotation 154 00:09:05.208 --> 00:09:09.320 We take the first letter of each and call them TSR 155 00:09:09.320 --> 00:09:12.200 Let's analyze it structurally 156 00:09:12.200 --> 00:09:15.500 The entire vector space 157 00:09:15.500 --> 00:09:19.200 would be one dimension higher 158 00:09:19.200 --> 00:09:22.520 than the space that we're actually moving 159 00:09:22.520 --> 00:09:25.270 But we're not using the entire space 160 00:09:25.270 --> 00:09:29.760 There's a separate space where we can actually move 161 00:09:29.760 --> 00:09:31.313 In the perspective of two-dimension 162 00:09:31.313 --> 00:09:33.613 the yellow area here 163 00:09:33.613 --> 00:09:35.799 is the corresponding space 164 00:09:35.799 --> 00:09:39.199 In this space where the last dimension z-value equals 1, 165 00:09:39.199 --> 00:09:45.080 all the elements in this space are called points 166 00:09:45.080 --> 00:09:46.730 The yellow space 167 00:09:46.730 --> 00:09:51.239 is called the affine space A 168 00:09:51.239 --> 00:09:53.139 Therefore, a point is ultimately 169 00:09:53.139 --> 00:09:55.840 the elements within this yellow space 170 00:09:55.840 --> 00:10:00.440 They're the elements that are part of this yellow space 171 00:10:00.440 --> 00:10:02.540 Their characteristic is that 172 00:10:02.540 --> 00:10:06.400 the last dimension value is always 1 173 00:10:06.400 --> 00:10:08.650 Therefore, a point in the two-dimensional space is 174 00:10:08.650 --> 00:10:11.440 (x, y, 1) 175 00:10:11.440 --> 00:10:13.243 A point in the three-dimensional space 176 00:10:13.243 --> 00:10:17.919 refers to (x, y, z, 1) 177 00:10:17.919 --> 00:10:20.840 With that, we defined what a point is 178 00:10:20.840 --> 00:10:25.190 In order to create a new point 179 00:10:25.190 --> 00:10:27.559 we need another creation system 180 00:10:27.559 --> 00:10:30.717 In the correlation of points 181 00:10:30.717 --> 00:10:34.479 they need to make something with each other 182 00:10:34.479 --> 00:10:38.979 What we use here in the affine space is a sliding vector 183 00:10:38.979 --> 00:10:42.119 It's also called a displacement vector 184 00:10:42.119 --> 00:10:47.280 It's used for representing the correlation between points 185 00:10:47.280 --> 00:10:51.680 You can think of it as an element of the vector space 186 00:10:51.680 --> 00:10:54.119 that's surrounding the affine space 187 00:10:54.119 --> 00:10:59.400 Therefore, if we add this displacement vector on the point 188 00:10:59.400 --> 00:11:03.919 we can create a correlation with another vector 189 00:11:03.919 --> 00:11:09.359 If you see here, we added a displacement vector v on the point P1 190 00:11:09.359 --> 00:11:14.409 and created a correlation with P2 191 00:11:14.409 --> 00:11:16.359 in this picture 192 00:11:16.359 --> 00:11:21.039 You must never change the value of the vector 193 00:11:21.039 --> 00:11:24.339 And that's because the value of the last dimension of P1 is 1 194 00:11:24.339 --> 00:11:26.840 and the value of the last dimension of P2 is also 1 195 00:11:26.840 --> 00:11:29.090 When this displacement vector is added 196 00:11:29.090 --> 00:11:33.000 and if the value of the last dimension isn't 1 197 00:11:33.000 --> 00:11:36.250 we would break the rule of affine space, 198 00:11:36.250 --> 00:11:40.080 where we can move at the scale of a, b 199 00:11:40.080 --> 00:11:43.400 that we have set 200 00:11:43.400 --> 00:11:46.300 Therefore, for the displacement vectors 201 00:11:46.300 --> 00:11:49.960 the last dimension shouldn't affect the location of the point 202 00:11:49.960 --> 00:11:54.320 so it must always have a value of 0 203 00:11:54.320 --> 00:11:57.120 Therefore, the displacement vector of two-dimensional space 204 00:11:57.120 --> 00:11:59.679 becomes (x, y, 0) 205 00:11:59.679 --> 00:12:01.429 The displacement vector of three-dimensional space 206 00:12:01.429 --> 00:12:06.000 becomes (x, y, z, 0) 207 00:12:06.278 --> 00:12:10.149 Composing Elements of Affine Space 208 00:12:11.644 --> 00:12:15.395 With that, we learned about the affine space 209 00:12:15.395 --> 00:12:18.404 Now we'll look into the composing elements of affine space 210 00:12:18.404 --> 00:12:22.555 The composing elements of affine space can be separated into 211 00:12:22.555 --> 00:12:25.332 two parts, a point and a displacement vector 212 00:12:25.332 --> 00:12:29.282 For displacement vector, I'll explain later but 213 00:12:29.282 --> 00:12:32.080 we just call it vector for short 214 00:12:32.080 --> 00:12:35.480 But this vector is a bit different 215 00:12:35.480 --> 00:12:40.080 from the mathematical vector we talked about earlier 216 00:12:40.080 --> 00:12:43.548 The word is just the same 217 00:12:43.548 --> 00:12:46.948 This vector is actually similar to the vector 218 00:12:46.948 --> 00:12:48.799 talked about in physics 219 00:12:48.799 --> 00:12:52.999 A point is the subject that we can move 220 00:12:52.999 --> 00:12:56.058 That's how you can view it 221 00:12:56.058 --> 00:13:01.808 A vector is the medium used 222 00:13:01.808 --> 00:13:05.268 for moving that subject within the same space 223 00:13:05.268 --> 00:13:09.319 You can say that it's the power 224 00:13:09.319 --> 00:13:12.219 So this entire affine 225 00:13:12.219 --> 00:13:17.720 This area that the affine space takes up in this 3D vector space 226 00:13:17.720 --> 00:13:21.400 is the area where z=1, where the last dimension equals 1 227 00:13:21.400 --> 00:13:23.762 The area used by the displacement vectors 228 00:13:23.762 --> 00:13:27.799 is the area where z=0 229 00:13:27.799 --> 00:13:31.449 Let's think about the rules 230 00:13:31.449 --> 00:13:34.360 of this affine space, points, and vectors 231 00:13:34.360 --> 00:13:39.410 First of all, we've said that when we add a vector to a point 232 00:13:39.410 --> 00:13:41.080 we get a point 233 00:13:41.080 --> 00:13:44.780 When we add a vector to a point, we get a point 234 00:13:44.780 --> 00:13:48.830 Other way around, when we subtract a point from a point 235 00:13:48.830 --> 00:13:52.280 we can obtain vector 236 00:13:52.280 --> 00:13:55.440 which is the correlation between the two points 237 00:13:55.440 --> 00:13:58.190 Point - point gives you a vector 238 00:13:58.190 --> 00:14:00.959 but point + vector gives you a point 239 00:14:00.959 --> 00:14:03.720 Then what would happen if we do vector + vector? 240 00:14:03.720 --> 00:14:08.320 We would make a vector with a new direction 241 00:14:08.320 --> 00:14:10.959 with the vectors combined 242 00:14:10.959 --> 00:14:13.759 Finally, among the ones we didn't mention 243 00:14:13.759 --> 00:14:15.279 there's point + point 244 00:14:15.279 --> 00:14:20.679 For this, actually 245 00:14:20.679 --> 00:14:23.559 we get a result we can't use 246 00:14:23.559 --> 00:14:28.909 When you think about how the last dimension is 1 and 0 247 00:14:28.909 --> 00:14:31.360 you can easily predict this relationship 248 00:14:31.360 --> 00:14:34.260 For a point, the last is 1, and for a vector, it's 0 249 00:14:34.260 --> 00:14:37.368 so it becomes 1-1=0, and it's true 250 00:14:37.368 --> 00:14:40.468 Then 1+0=1, that's true 251 00:14:40.468 --> 00:14:43.559 0+0=0, that's satisfied 252 00:14:43.559 --> 00:14:47.009 But when we do 1+1, we get 2 253 00:14:47.009 --> 00:14:48.759 Then the element 254 00:14:48.759 --> 00:14:53.320 of vector space where z=2 255 00:14:53.320 --> 00:14:56.720 cannot be moved the way we want 256 00:14:56.720 --> 00:15:01.800 so it's technically impossible to use 257 00:15:01.800 --> 00:15:06.198 To understand this rule better 258 00:15:06.198 --> 00:15:10.798 I'll express the point as time, and the vector as hours 259 00:15:10.798 --> 00:15:13.479 Then it will be easier to understand 260 00:15:13.479 --> 00:15:15.929 For point - point 261 00:15:15.929 --> 00:15:17.779 if we compare a point to a time 262 00:15:17.779 --> 00:15:20.160 we can say that it's time - time 263 00:15:20.160 --> 00:15:26.510 When we subtract 2 PM from 3 PM 264 00:15:26.510 --> 00:15:29.160 we would get one hour left 265 00:15:29.160 --> 00:15:32.860 That corresponds to this vector of one hour 266 00:15:32.860 --> 00:15:36.260 Then it will be easier to remember that 267 00:15:36.260 --> 00:15:38.520 point - point equals vector 268 00:15:38.520 --> 00:15:41.870 Point + vector, in terms of time and hour, 269 00:15:41.870 --> 00:15:44.199 it will be time + hour 270 00:15:44.199 --> 00:15:48.899 When we add 1 hour to 3 PM 271 00:15:48.899 --> 00:15:50.949 then we get the time of 4 PM 272 00:15:50.949 --> 00:15:53.960 Therefore, point + vector gives us a point 273 00:15:53.960 --> 00:15:57.948 Finally, point + point means time + time 274 00:15:57.948 --> 00:16:02.039 Adding 3 PM to a 2 PM, that's a very vague concept 275 00:16:02.039 --> 00:16:04.829 Therefore, we determine that 276 00:16:04.829 --> 00:16:06.266 this can't be used 277 00:16:08.240 --> 00:16:11.590 Finally, I'll explain about 278 00:16:11.590 --> 00:16:14.079 the significance of affine space 279 00:16:14.079 --> 00:16:18.129 The vector space that's one dimension higher, which is the stage 280 00:16:18.129 --> 00:16:22.179 The stage of the game that we're using 281 00:16:22.179 --> 00:16:25.679 is actually composed of vector space 282 00:16:25.679 --> 00:16:27.148 that's one dimension higher 283 00:16:27.148 --> 00:16:30.998 Within that, there's a particular space 284 00:16:30.998 --> 00:16:34.119 where we can move about 285 00:16:34.119 --> 00:16:36.569 Because of this affine space 286 00:16:36.569 --> 00:16:39.279 we are able to move with linear transformation 287 00:16:39.279 --> 00:16:40.956 What that means is that 288 00:16:40.956 --> 00:16:44.056 the character can move, like in a game, 289 00:16:44.056 --> 00:16:47.479 and we can place various objects on the world 290 00:16:47.479 --> 00:16:51.879 A foundation has been made for that 291 00:16:51.879 --> 00:16:54.559 as what you should know 292 00:16:54.559 --> 00:16:57.059 And within this world space 293 00:16:57.059 --> 00:17:00.559 all the objects composing this map we're moving about 294 00:17:00.559 --> 00:17:03.809 are composed using the points 295 00:17:03.809 --> 00:17:05.559 of the affine space 296 00:17:05.559 --> 00:17:08.899 The objects may stay right where they are 297 00:17:08.899 --> 00:17:11.549 but we may apply power in real-time 298 00:17:11.549 --> 00:17:14.239 and make them fly or move 299 00:17:14.239 --> 00:17:18.040 The power used for moving them 300 00:17:18.040 --> 00:17:20.539 the power of scale and direction 301 00:17:20.539 --> 00:17:23.839 is carried out using the displacement vector 302 00:17:23.839 --> 00:17:26.040 to move the objects 303 00:17:26.040 --> 00:17:29.840 So when we use numbers and vectors 304 00:17:29.840 --> 00:17:31.640 we sometimes expressed them as points 305 00:17:31.640 --> 00:17:33.840 and we sometimes expressed them as arrows 306 00:17:33.840 --> 00:17:35.600 that continued from the origin 307 00:17:35.600 --> 00:17:37.800 There was this ambiguity of expressing a single subject 308 00:17:37.800 --> 00:17:40.600 with two ways 309 00:17:40.600 --> 00:17:42.750 but in the affine space, 310 00:17:42.750 --> 00:17:46.200 the expression is done by a point, the movement is done by an arrow 311 00:17:46.200 --> 00:17:48.279 Since we can distinguish them clearly, 312 00:17:48.279 --> 00:17:52.732 we are able to form a stronger system 313 00:17:52.732 --> 00:17:54.839 and that's a significance 314 00:17:54.839 --> 00:17:58.789 The vectors used in this affine space 315 00:17:58.789 --> 00:18:02.589 have very similar concepts as 316 00:18:02.589 --> 00:18:05.160 the mathematical vectors I've talked about earlier, but 317 00:18:05.160 --> 00:18:08.060 the application range is actually a bit different 318 00:18:08.060 --> 00:18:12.920 We can say that it's the concept of vectors used in physics 319 00:18:12.920 --> 00:18:16.570 With that, we set the basics of the game world 320 00:18:16.570 --> 00:18:20.399 through affine space 321 00:18:20.399 --> 00:18:24.099 We'll use this to implement various transformations 322 00:18:24.099 --> 00:18:27.959 and get into producing a game world 323 00:18:27.959 --> 00:18:30.059 That's all for this lecture 324 00:18:30.059 --> 00:18:32.873 Great job for listening to the lesson, thank you 325 00:18:33.568 --> 00:18:34.768 Concept of affine space Problem of movement transformation Since vector starts from origin, the basis vector cannot be separated from the origin 326 00:18:34.768 --> 00:18:35.968 Utilization of translation Use a three-dimensional square matrix to move a two-dimensional flat surface by the wanted amount 327 00:18:35.968 --> 00:18:37.518 [1 0 a] [x] = [x + a] [0 1 b] * [y] = [y + b] [0 0 1] [1] = [ 1 ] 328 00:18:37.518 --> 00:18:39.018 Affine transformation Increase the space by one dimension and convert translation, rotation, and scaling transformation into linear transformation 329 00:18:39.018 --> 00:18:40.488 Essential affine transformation: Translation, scale, rotation Elements of affine space: point, displacement vector 330 00:18:40.488 --> 00:18:43.988 Composing elements of affine space Point Element of affine space Value of last dimension is 1 Location information for visual expression of object 331 00:18:43.988 --> 00:18:47.516 Displacement vector Another form of vector used to express correlation of points Value of last dimension is 0 Medium for moving the points 332 00:18:47.516 --> 00:18:51.066 Rule of affine space Point+vector=point Point-point=vector Vector+vector=vector Point+point=cannot use 333 00:18:51.066 --> 00:18:54.598 Significance of affine space Can implement movement by using affine space, which is a particular area of vector space that's one dimension higher...