 So, I have one more transform to add right what was the remaining one anybody to remember any more? Viewport. So, again that one is like a very simple like redoing of units or something because we want to go to pixel units and at this point we do not even care so much about the z coordinate. It is assumed that the rendering engine is performing the computer graphics operations has used the z information already for us we just need to figure out now how to put the points in the coordinates of the screen. So, remember that the the viewport so, t v p converts the negative 1 to 1 range into pixel coordinates. So, let us say n sub x is the number of horizontal pixels and n sub y is the number number of vertical pixels. So, for example, in a 1080p display and x would be 1920 and and y would be 1080. So, if we are going to go and write to that then for a simple example like this t v p can got to make a 4 by 4 matrix n x divided by 2 0. So, I got to divide that 2 out because I made a in a canonical box that we made right it was a the cube had width 2. So, one of the arguments for making it width 1 would get rid of this 2 here. So, you know always tradeoffs in these different the different choices that you have again will do a scaling here for y and y divided by 2 0. I need to also do a displacement because 0 0 is usually not the center of the screen right 0 0 is the upper upper left corner or lower left corner depending on how things are are written in your in your arrays how the array access is done. So, I have to do some offsets here I have to shift it by roughly half which is n x minus 1 over 2 and n y minus 1 over 2. So, that is the translation part and the rest I just make it like the identity matrix because I do not want to cause any harm right. So, if I apply this to some well I should say if I if I apply this to everything else that comes before. So, if I use TVP now and I apply this to the result that I had before from the entire chain of transformations after I get done applying TVP the result will be some 4D vector, but I have the i j pixel coordinates here and I do not really I do not really care about what is in these I am not really sure what to put there I will just put some dots there I do not really care what is in the third and fourth positions the important thing is that I get what are called pixel coordinates and so I get pixel coordinates. Which way have I assumed here have I assumed that the 0 0 point on the screen is in the lower left or upper left corner it is upper left right. So, if you want to fix it for the other way you got to change some things right you change the y scaling should have a negative 1 multiplied into it and then you have to figure out how to correct for the offset here right. So, it is no problem, but shifted around it is very easy to to to get visual feedback if you want to experiment and you know it changed the transformations here in the very last step, but that is all you do for this and we finally have by a long day finished all of these transformations. Questions about this? Now I write i and j there because these are supposed to look like integers that correspond to the exact pixels, but keep in mind today we have not done anything about quantization. So, after doing all of these transformations I expect i and j if I do them in a computer and do all these calculations even though I might have started with integers for the locations of my objects in the or bodies in their initial body frames after doing all of these transformations I am going to end up with floating point numbers all the way over here in i and j right. So, I am not rounding them off I am not doing anything with that yet, but ultimately in the graphics pipeline you are going to have to deal with that based on the resolution and based on the resolution of the display number of pixels per axis you will have to determine how to draw slanted lines for example, and deal with the stair casing issue or aliasing issue. So, that part I am not talking about today was just how to put all of the information your model in the appropriate place on the screen or on the display questions right. So, I think I am done with this part and next time we will start on something quite different which is the physics of light and we will start talking about optics and how that part works and then we will get into the human eye as an optical system and then talk about the human body in the context of that and in the context of virtual reality. So, we got up to the display today just the mathematical parts now we are going to get into the physics part of what happens when the display is in front of your eye. Thank you.