Mtg 5/26: Tue-21-Jan-2025

Outline for Today

Geometry and Transformations

Administration

Today

For Next Meeting

Wiki

Link to the UR Courses wiki page for this meeting

Media

Transcript

Audio Transcript

  • Okay. Here we are At meeting five of 26
  • Okay,
  • so the first thing I Put for today, any questions or concerns
  • I
  • let me
  • see if one of These markers is going to do a little
  • better. I i paid for a while.
  • So questions or concerns so far. Okay, so in looking at chapter
  • three, I found a link to immersive linear algebra, which
  • maybe is of interest. Would you like to explore? Can you wait? I
  • anyway, so that it seems to have lots of examples, lots of
  • animation, so you can let me know what you think. So then I
  • have been working on pbrt for Windows.
  • How the people here who's had success with pbrt for Windows,
  • okay, that's good. Good. Were you able to try the sample?
  • Didn't work. Okay?
  • So we Need C, make, I,
  • CS, and then this script is designed to compile said lib
  • from source and then build PBR T so I
  • when I'm allowed in the lab for 135 when there's not a lab
  • section going on and I'm not otherwise occupied, I've been
  • trying To get this set up On on the lab computers. I
  • so what I'm trying what I gotten to so far? These are the path
  • names I
  • so I think root folder is where you've got, where you have the
  • repository with PBR, TV, four. And then, so in the lab
  • computers, it's actually on the C drive, users, Hepting D, for
  • example, GitHub. Actually, I don't think it's got GitHub
  • there. It just, it's pprt Four anyway, modify the path to your
  • source directory, and then the output it's going to create some
  • information in third party, MS, VC, so the first part should
  • match the root folder information, and then we're just
  • adding a few more directories in the tree. And then here's where
  • the source is located, and it's in source extension Z lib. So
  • we're going to
  • make a build ms V c, directory, and CD into that.
  • Then we're going to call the Microsoft Visual Studio
  • batch file, V c bar is 64 dot bat. I don't know what that does
  • exactly, but I found on my lab, on the lab computer. I found
  • Microsoft Visual Studio, and then I found a path that matched
  • the C auxiliary build. So I just did some pattern matching there
  • to get to that. Then I I took out the minus g for generator
  • option here,
  • since I wasn't quite sure Which generator to use. So we're going
  • to generate Z
  • lib. Okay, so we've got, I'm
  • I'm not sure why we have two calls to C make? I guess the
  • first one is setting some parameters, and then the second
  • one is doing the build.
  • And then we're going to clean up the build directory, and we're
  • going to add
  • mSv clib into our path, and then we're going back to the root
  • folder. So first of all, we we've
  • changed directory to the zip, lift source, And then we're
  • going back to the root directory. We're
  • so here's the same i a strategy about matching the version we
  • have for under Microsoft Visual Studio, and then we're going to
  • do C make so I think
  • so C Make didn't find the optics or the CUDA
  • files on lab computer, so I have to check those paths.
  • But anyway, so the idea is we build Z lib, and then we build
  • the project.
  • So I got part way through before I got kicked out of the lab
  • yesterday, but it was building source, so I'm hopeful this is a
  • good approach. So our Tai Lin posted a link. His last entry
  • was, try the strategy here. I
  • so that direct link was about changing the C make list, dot
  • text file, I think, but I, I couldn't. I see where the
  • changes were needed to be made. So I went back to the issue in
  • which is to which this was reply, to which this was a
  • reply. And I found the script, and I think that's maybe a
  • little more straightforward. I if
  • you want to find exactly where it's changed, you can always do
  • like a text comparison tool, where you load up the one file
  • and you load up the other one, and it'll tell you if there's
  • any differences. Yeah,
  • yeah, I know I can do a diff.
  • I was looking at at the diff, I thought that's what I was
  • looking at on GitHub, and when I searched for P techs and zlib, I
  • didn't find anything that matched. So, yeah, I
  • had a friend try to find said love, and he couldn't find it.
  • Either. He was looking for it for me, and he just couldn't
  • find it. Yeah,
  • so I
  • the source is included in the PBR TV for repository. If you've
  • downloaded it With the recursive option that's
  • anyway, There it is. I
  • so I
  • any so I've noticed that there hasn't been a flurry of
  • discussion in the class discussion lists or the wiki. I
  • so
  • who still needs to get the software running on their own
  • computer there?
  • It's just a matter of knowing the commands and stuff for
  • okay, if you're having issues, you can send me an email
  • directly if you don't want To
  • put your issue into the class discussion list, I
  • so I'm hopeful that When we get this, when I get this bill, I
  • so I'll be available on some lab computers.
  • So I just want to mention the wiki and
  • so under meetings.
  • So meeting three is red, so that means that the link has been
  • marked after but the half page hasn't been created and meeting
  • four hasn't been made into a link, so Let's just edit that I
  • do you want to start Fine while you're in there too?
  • That's today's sure you
  • so the issue with the scheduler is because it wouldn't let I set
  • up after the first class and because the first class was
  • already finished.
  • David, I were just saying, I'll do three, I'll finish three.
  • I'll do meeting three, and then he'll do four and five. Okay, so
  • it's just six through 26 that we need to figure
  • out. Yeah, okay, did everyone get a reminder?
  • Okay, so,
  • so here I've created a file for the input to generate the simple
  • I supposed to Be pbrt, yeah,
  • okay, so I've cracked it. I'll correct the link. It'll Still
  • want to download it. You
  • I'll just Text it. I
  • There we go. So the first part of the file specifies the
  • camera, sampler, the integrator and the film. And then, from
  • world begin I
  • onwards, then rescribing The scene. So this is the 400 by 400
  • This is the one that comes in the file format section of the
  • web page. So if you've installed pbrt, you'll get that picture of
  • the glass ball floating over the checkerboard.
  • So where can we find the commands to actually like run
  • the PBR team program. So if we wanted to run the checkerboard,
  • where would we find the commands to do? So
  • what are the command lines that we need to be inputting here?
  • That's where I'm at is don't understand where the those
  • commands are, how am I supposed to open the command line? Where
  • am I running
  • this so I have pbrt installed in user local bin. I
  • What? Let's see equivalent Windows command to find out
  • which executable is being accessed.
  • Can you key principle drive?
  • I'm sorry I didn't hear the path. Okay? So this is I could,
  • I could do. I
  • i So this is my path setting.
  • So which tells me which there's multiple versions of pbrt, which
  • one is going to be executed.
  • I That's print environment. Print,
  • yeah, this is on
  • MacBook Air, so we just got to find the equivalent command on
  • Windows. As long as I know what the Mac is, we can find the
  • windows one if I find them on the wiki, okay.
  • So doing the which tells me that it's installed, so if I just did
  • pbrt.
  • This is going to look at standard input for the scene
  • description, so we don't want to do that.
  • So end of file before world Begin. Fatal errors during scene
  • construction and
  • example of
  • PDR teams, yeah, but that's I I
  • think I moved this instead of copying
  • the Downloads folder to
  • Oh, yeah, Sure, too.
  • Does that make sense?
  • So you just write the name of the file after you take a pbrt,
  • and you'll find it and then start to generate enough folder,
  • yes, and if we have
  • the open X er Image Viewer set up, like we did in class that
  • first day, you can see the image fill in and see the progress of
  • the image. What was that
  • called? That's how was that? Called X tab or
  • XCR, imager. So that is, I,
  • up right there.
  • Yeah, so, p, V, R, T, I, pbrt display server, local host.
  • So it's on the GitHub tree master page and
  • it's so To read Me, I
  • if you played, You might miss it. You Oh,
  • sanitation, Yes, I
  • i So I think there were some error messages when I started up
  • to have four. I'm
  • going
  • to guess that's what causes segmentation fault. But the
  • image generated properly, and you can use whatever viewer you
  • want to look at the images.
  • So it's just using that little bit of text in that file to
  • generate this image, like it has all the things with like the
  • sphere and the reflective property and the color and all
  • that. Yes, I
  • that's pretty cool. What other textures do we have like
  • available to us? Do we have like? Can we make it a gold
  • sphere, for instance, just like a slightly shiny golden sphere?
  • Yes. I
  • i will show an example of a shite, slightly shiny golden
  • sphere on Thursday, okay,
  • and then I'll compare the source code to figure out how you did
  • it. Okay? I
  • do you feel good About I Running?
  • Okay, I'm
  • so these are, this is about the building blocks and
  • of Doing the ray tracing, The path tracing And
  • so Chapter Six is going to deal With spheres and triangles and
  • so forth. So
  • So we talk about the coordinate system as A frame. It has an
  • origin and
  • I so If we have the frame. What do we get? The
  • I would like to buy a vow,
  • C, A,
  • let's go with our F. Go with the
  • I, guess. How about E?
  • Sorry, there's no more mapping soft N.
  • Can I guess the word? And he guesses n, I guess the word. I
  • guess
  • he said, N, yeah,
  • I heard at the end, but you wanted to guess
  • the word. Can I guess affine space.
  • Affine space?
  • So that means we can describe points in the space as a linear
  • combination of
  • this vector. These vectors.
  • So in 2d, we have x and y. In 3d. We have a choice.
  • What's the choice for z, whether
  • it goes inward or outward? Yeah, I
  • so it says left handed. So would that be? Would that be inward
  • X, cross Y, and your thumb points in the direction of
  • positive z, I,
  • that's how I remember it. But
  • it was something like like this, since my left hand, so left
  • handed. Method, yeah,
  • so the way they say x, cross y and positive Z points out as my
  • right hand and if I use my left hand, X, cross, y, positive, z
  • goes into the board and
  • So positive goes inward.
  • Okay, That's the left hand. I
  • anyone appreciate my third option? Yeah, and the dexterous
  • Is that a thing anywhere, ever?
  • No, I don't think so. I
  • so PPR keys using a left hand. I
  • So
  • product uses, co sign, yeah, I
  • It would be nice if cross product was cosine, because they
  • both Begin with C, but not everything can be nice. I
  • this is also known as an inner product i
  • i was thinking about the origin of cosine and sine and tangent
  • and
  • I'm wondering.
  • Well, What the background of Those terms Are? You?
  • So this is a 2d example of current system.
  • So this is our original system. So origin is at zero, and here p
  • is three units in x and three units in y.
  • And then our new coordinate system, the dashed lines, so we
  • have two units in x and minus four units in y. So
  • does that make sense? So the point doesn't change, but we
  • have a new frame,
  • and having The new frame makes it easier to transform things
  • and
  • it so we can pick up different frames. I
  • so if we think About a camera, let's get a
  • so Our camera specification is we're looking at. I
  • so look at is a popular way to specify a camera position. So we
  • need the eye point where the camera is, point where we're
  • looking at. And then the up vector.
  • So the eye to the lookout point. So
  • so this is one of the vectors we need to describe the frame.
  • How can we get the other vectors we need to describe the frame? I
  • what other vector is defined in that look At specification,
  • yeah, so up
  • there's also right, up, right, forward. Sometimes you can use
  • left instead. I
  • guess that really depends on whether or not your camera is
  • moving at all.
  • So we want to specify an up vector. So when we take a
  • picture, if this is the up vector, well say here's up
  • vector this way, and then if we rotate the camera, the up vector
  • is this way.
  • So it's not about up, down, left, right, top, bottom. It's
  • saying this is the direction that's up in the image.
  • The reason I specified the right is because you can actually make
  • it so that through transformations, you can have it
  • so that all of a sudden your right is left, and everything in
  • your picture just gets inverted. So it's not that it's not that
  • it rotated, it's that it gets completely inverted. Your left
  • becomes your right, your right becomes your left. I don't know
  • if this system can do it. I know that's just a common thing that
  • they use when you're doing a lot of camera transformations, so
  • that you don't have that mistake. But you just calculate
  • it with your forward and you're up if you just do like, a
  • relative calculation, if you always have your rights on hand,
  • just makes future calculations easier to do transformations. We
  • use that a lot in, I think, the one video game class with
  • Professor Hamilton.
  • Okay,
  • so I better use that one here. I guess it's not necessary,
  • especially if the camera is stationary.
  • If you can give me a bit more information, I'll
  • put it into context for for us, I
  • so we have the eye point and the look point, that's one vector,
  • then the up vector specify, that's another vector we can use
  • to specify the camera frame. And then how do we get the third
  • vector
  • wasn't the eye look at point different?
  • Do you mean like the position vector? Because
  • isn't the eye more like the actual camera what you're
  • looking like? Yeah. And then look at point as where you're
  • looking
  • Yes. So by doing the difference between them, we define a
  • vector. So I point, and then we're pointing at the look at
  • point. So that's one vector of the frame. Then the question is,
  • so we have the vector between the I point and the lookout
  • point and the up vector.
  • So we can spin the camera around this vector between from the I
  • point to the look at point once we pick the F vector that gives
  • us the second vector for the coordinates. Does that make
  • sense? I?
  • I'm sorry, yeah, okay, then, how do we get a third vector that's
  • perpendicular to these two vectors? I
  • You're saying, how do you get like this vector? Like this is
  • your look at this is your up. And you're asking this one,
  • right? Yes, that's, that's what I call the right the right
  • vector. You
  • so how do we derive it?
  • Is it not the cross product of
  • the Yes, so we do the cross product of these two vectors,
  • and then we get a third vector that defines our core, our
  • camera coordinate system,
  • and it should be normal because the other two are normal, right?
  • Well, we didn't specify that this is going to be normal if
  • if these two, if these two are normalized, then you should get
  • a normal vector.
  • Does that make sense? Do
  • so that's talking about The implementation of tuples and
  • so vectors are based on tuples and
  • so here's example of what we can do with vectors.
  • We can add v plus w, and we can see the sum is the diagonal of
  • the
  • parallelogram.
  • So the addition commutes, we can get the same place if We do v
  • plus w or w plus V i.
  • This is w minus V, but if we did v minus w, we get The other
  • other diagonal? So those results are different. I
  • we're out of time now, so any questions or concerns well,
  • when will we have our first assignment? Are you still just
  • trying to work on the PDR, G on the lot computers before
  • you? Yeah, I want to make sure that we're set up with the
  • software first. So
  • if you're still having issues, communicate with me and I'll
  • update you on the lab situation. I'll give out the assignments
  • starting next week. Okay,
  • thank you. Thank you very much for today. Have a great rest of
  • your day and see you on Thursday for some
  • slightly shiny gold balls. Is that right? Yeah, if it was
  • overly shiny, it would be a Polish gold
  • for Okay, thank
  • you for today.

Responses

No Responses