- Happy Wednesday
- Attendance
- Class calendar for today
- Upcoming events

- Assignment 2
- Midterm Exam: Chapters 1-5

- Finish reading Chapter 5
- Submit your response to this meeting before noon tomorrow
- Take the quiz before the start of our next meeting

Link to the UR Courses wiki page for this meeting

- Hello, Hello, Hello,
- how's everyone doing today? I
- so let's talk about Simon two and
- midterm and
- let's see where that gets
- us. I
- so my computer seems to be
- better today. It's not giving me two different mouse pointers on
- the different screens. I'm happy about that anyway. Okay, so
- let's look
- at the assignment do
- Is there any interest in making the Due Date Monday?
- Anyone strictly opposed to an extension. I
- Okay, so
- I'm asking you to write a program and answer a couple
- questions. So write a web GL two program that generates a 3d
- hypo. There shouldn't be two there a certain skis tetrahedron
- and builds a container around it that includes the tetrahedron.
- This container should have a lid that opens while being connected
- to the rest of the container along a common edge.
- So maybe
- something like
- this. I
- that feels like a garbage bin. Let me try again for a king. I
- Well, that's not better.
- So we have we
- have a lid, so we have an opening
- and a lid that's connected here. And
- How's my drawing? Okay,
- I think we got the general idea. Okay,
- thanks. That's very generous. Okay, so that's that's the
- general idea.
- So here's the sample from the code. Sample code from the
- textbook. This is gasket four in chapter two. So that gives you
- an idea of what should be included. I suppose you might
- think of the
- you could put the tetrahedra, the sierpinsky's tetrahedron,
- inside a tetrahedron, and have and have one, one or more sides
- open up and
- does that convey the idea? Okay?
- So we should see the there's a tetrahedron inside the
- container. And so
- you
- can use sample code discussed in class and the 315 lab. So for
- those of you in 733
- you may not have seen this, so we'll go over it a bit today,
- not to belabor the point for the people who have done the lab
- already. But if there are questions I'll do my best to get
- them sorted out. Okay, so I repeated myself in a different
- way, I think thanks to me use Apple coat from the glass and
- the lab,
- I remember to acknowledge your sources, and then later on, when
- I corrected the bit of instruction from first
- assignment. Then I said the same thing, that you should not
- forget to give credit where credit is due, and not represent
- other people's work as your own. I
- so for the submission, I want you to submit a single zip
- archive. I
- So Maybe I
- so maybe you have Two PDF files, or a single PDF file that
- answers both questions, the readme file and then A code
- directory that has the common stuff and and your own code.
- So a note about adapting the lab code for the assignment. So Alex
- has the shader code and separate files, which doesn't always run
- well. You click on the
- HTML file, the marker may run some problems with cores, so I
- think the easiest solution is to follow the textbook convention
- of putting The shaders inside the HTML file using script tags
- and
- energy. So here's the link to the lab of three.
- So Alex has done a few things that are nice, a couple things,
- Well, they don't necessarily match with the textbook Code. I
- you.
- This isn't a big thing in this in this code that it's an issue
- in other places, GL, dot, false doesn't exist. You
- so instead of in the textbook code where he says, Remember,
- these are in column major format in The shaders.
- So Alex has done a Nice silication And We sell you
- so We do a flat, put a trend, flatten the transpose, so that
- takes care of
- switching from the Row, major format in the JavaScript to the
- column Major form in the shaders and the GPU.
- So let's
- look at an example. I
- so in the lab code here, there's Bridgette. Projection Matrix. I
- so
- we have m v so
- in terms of vertices, we have a position.
- Or I think he's Alex, is called V position times MB times p, and
- that gives us the GL to position. So we apply the model
- view matrix and then the projection matrix and
- so we start so we're the way it's done, by convention is to
- post multiply The
- the viewing matrix
- with the transformations and so
- what we start with is the Last thing that's applied, because we
- go through transformations and
- is we can say we start with identity, and then we Do the
- look at
- and Then we get the ball. You
- so we're building it out from this way. So you stay you can
- start empty
- equals to Look at and
- then MV
- equals Mold MeV and
- Next form I'm
- so this is
- a variation On the boxes example in the lab.
- I am looking at it from a different point of view. Here's
- an example of how a lid might
- move to
- illustrate the show The contents of the box of The container.
- So the
- in the vertex shader.
- I didn't, I didn't correct this one, I guess, oh, because it's,
- that's not my No, it is,
- yeah, okay, I see I left the original code there, but I just
- streamlined it a bit
- so I
- so we take the V position, the vertex attribute position,
- multiply it by MV and then by The projection matrix to get our
- points and then The fragment shader is just passing through
- the color. And
- so I haven't used the matrix stack here I'm just resetting
- the View after I draw each cube.
- So
- start with look at
- so the first
- cube is moved on the x axis, but it's still centered
- on still centered on the axis, just moved further down the x In
- the x direction and
- so the translations are the same as
- if we start with that,
- if we didn't do a translate, we just did the Rotate, where would
- we be rotating?
- Right so we'd be rotating around that center as it is, but we
- want to rotate on an edge so we translate by one Half, one half
- And up together. You
- That one's Not a very good square, but you get the idea. So
- we're doing a translate, so we have the center of the axis of
- rotation on one of the edges of the cube, and then we do the
- rotation, and then we do another translate to put it On top of
- the other cube.
- So instead of resetting the MV matrix to look at, we can do the
- push and pop
- so we don't have a
- so That simplifies things a bit. Does That make sense?
- Was that helpful? I
- Okay, I
- Should we Try it with Solid tubes? I
- any questions about about that at all? Bless You. You.
- Okay, should We talk about The midterm? I
- So we'll cover chapters One through Five. You
- so
- do a summary of
- our discussions, some links, resources, and I'll have that to
- Father for Monday. And if we have questions to
- to do, whether we can do that, then I
- So it's going to be
- in person on paper,
- so I have more flexibility for The kinds of questions I
- I think that was the point we used In our example. What
- you think about
- that is that that as a question. Take
- care. So I
- would say
- rotation on x means that
- we have this matrix the cosine and sine, and then if
- I give you an angle different
- than 90, I'll give you
- I'll give you the values to put in as well,
- so we don't have to memorize values. Just do
- the process, go through the process. So
- who likes that idea?
- Okay, one person, 2345, well, that's okay.
- Should we do some multiple choice questions? Do Okay.
- I'm How about give you a little bit of JavaScript or Shake your
- code to explain what's going on with it.
- Anyone like that idea for a question, okay?
- Any other kinds that come to mind? Well,
- so Of course, some exams, I have a couple that
- are based
- On this book,
- so it's not an indication that so the discussions in class may
- have been different, but I'll give you the sample exams and
- samples To in the hope they may be of help. I
- any Other questions, suggestions? I
- Okay, so
- if you have any that come to mind, let's say by the end of
- Friday, you can post them to the class discussion list, and I
- will. I would certainly appreciate that that's that's an
- option, opportunity for participation in the class to
- give you questions And what you think would Be good answers.
- Okay, do
- Okay, so I thought maybe
- We could talk a little bit more
- about projection matrices, okay,
- it also indicate which slides that sharing with you, Maybe I,
- more relevant than others Do.
- Okay, so the comment about
- we're getting everything into the standard view volume and
- so what is The View? Volume? Make
- any changes? What are the
- points? We're able to see? What core points in
- what are the coordinates that we're able to See without doing
- anything, setting Up, viewing The transformations.
- And I didn't put the z values in.
- So
- if the positive Z axis is coming out of the board, and so which
- handed coordinate system?
- Is this the volume that we have to work with? Do clipping
- coordinates, it's
- actually minus one, minus one, minus One and on.
- So we can apply orthographic projection to
- get perspective projection So
- so this is I start with Our model view transformation. So
- all the transformations we have at the model. And then at the
- end of that, we do the viewing the lookout to change the basis
- for the camera space. We do the projection transformation, and
- then when we go to perspective division, to go from 4d to 3d
- then we do the clipping, and then we project from 3d to 2d
- and so we wanted to the information as long as possible,
- because we want to do the use the Zen buffer, or the depth
- buffer, to help us with hidden Surface Removal and it.
- So if we do
- orthogonal
- projection, we have an ortho matrix in MV, nu.js specify the
- left, right, bottom, top and near and far coordinates so that
- we have this shape, the shape on the left, and it gets
- transformed into the standard clipping volume.
- So we move the set the two steps that we need to accomplish. So
- we move the center to the origin translation then we scale so
- that the sides have length two, because we go from minus one to
- plus one.
- So two divided by right minus left, two divided by top minus
- bottom, two divided by near minus far, and then the
- translation that we specify in the first step. So that's
- that gets us into the clip coordinates, the minus one plus
- 1q and then
- this matrix M Orth takes the 3d coordinates and puts them into
- 2d because We're dropping The Z and
- so here's an example with the center of projection at the
- origin the near moving plane at z equals minus one, and the 90
- degree field of view determined by The planes x plus minus z, y
- plus and minus z. So that means going out at 45 degree angles.
- And so the field of u is 90 because we have 45 and 45 and
- so the simple projection matrix for homogeneous coordinates, so
- we have minus One in the bottom row. So
- the point x, y, z.
- So we can map parameters, alpha, beta, and after the perspective
- of vision, we get x, prime x divided by z, y prime, y divided
- by z and z prime is minus alpha plus beta over z,
- So that projects to the desired part, regardless of alpha and
- beta.
- So if
- we pick alpha and beta carefully, then the clipping
- Volume is the default again.
- So we're Stretching out
- so this,
- stretching out this plane to be the same size as that, or we can
- think of we're taking a truncated pyramid and turning it
- into a parallel plate, but so we can easily get it into the
- clipping coordinate. So it's the story, but it projects
- correctly. I
- so our hidden surface removal with the depth buffer works if
- we apply the normalization transformation first. So
- there's some distortion, which might become a problem of small
- businesses and
- I anyway, wrote a time I see I hope today was
- helpful.
- At any rate, I thank you for your attention
- today and for time to see me
- and I rotating cubes. I have office hours tomorrow, but feel
- free to make comments online as well. So anyway, this is a bit
- early, but have a good weekend, and we'll see you on Monday, if
- not before. Take care. Everyone you
- not before. Take care. Everyone you

- Orthographic projections to screens
- I found the discussion on perspective and how it affects how looked at the image very interesting especially the valvulations involved with the perspective
- In the last meeting, more about the inner workings of the box.html code and how I can implement it into assignment 2. Though instead of separate boxes, I plan to rotate one if the faces of the container to open it.
- The important concepts I encountered in the last meeting were, the details about Assignment 2 and its due date extension, then we looked at lab code and sample code from the prof that relates to the assignment, then we learned the midterm will be on ch 1-5, a summary for midterm will posted and looked at on Monday, old exams will be posted to look at, then we ended by going through slides about Normalization.
- We went over some of the code to be used as reference on the assignment, and what he was expecting conceptually. We also went over what material might be on the midterm and which types of questions.
- Perspective frustrum manipulation was pretty neat!
- Animation and Projection
- shadow maps
- Sierpenski Tetrahdon
- When passing matrices to shaders, we need to do this: flatten(transpose(m)). This will convert the matrix from row major order to column major order which is what we need for the computation.
- nothing great actually
- We looked at the assignment 2 details, model view and projection matrix with transformations.
- Discussed about Midterms and Assignment 2 ; Rotation and viewing matrices and how to incorporate them in the scene
- we mainly discussed the assignment and midterm, but we did touch on differences between the different types of perspective
- Today, I grasped the concept for Assignment 2 on how to animate the lid using the modelview and projection matrices. I also learned about using orthographic and perspective projections to adjust the positioning of objects in the scene.
- learn abohut mid term exam question and orthogonal projection
- Today mostly we discussed about the assignment 2 end discussed about the exam midterm