Outline for Today
Assignment 2 and Midterm Exam
Administration
Today
- Assignment 2
- Midterm Exam: Chapters 1-5
For Next Meeting
Wiki
Link to the UR Courses wiki page for this meeting
Media
Transcript
Audio Transcript
-
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
Responses
What important concept or perspective did you encounter today?
- 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
Was there anything today that was difficult to understand?
Was there anything today about which you would like to know more?