Difference between revisions of "3D Fundamentals Tutorial 4"

From Chilipedia
Jump to: navigation, search
(Video)
 
(3 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
== Video ==
 
== Video ==
  
The tutorial video is on YouTube [https://youtu.be/cN97hkDrzcc here].
+
The tutorial video is on YouTube [https://youtu.be/UgM6mIQfGDA here].
 +
 
 +
<div class="mw-collapsible mw-collapsed"><br />
 +
* Orthographic vs. Perspective projection [https://youtu.be/UgM6mIQfGDA?t=0m15s 0:15]
 +
<div class="mw-collapsible-content">
 +
:* The cube we are drawing seems off
 +
:* Reason: we are ignoring the z-component of the vertices
 +
:* No matter how far or close from our viewpoint, we always draw the same size surfaces
 +
</div>
 +
* How does vision and perspective work? [https://youtu.be/UgM6mIQfGDA?t=2m55s 2:55]
 +
<div class="mw-collapsible-content">
 +
:* The physical/optical picture: why do things farther away appear smaller in our vision?
 +
:* Lightsource -> photons -> reflection -> image sensor
 +
</div>
 +
* A demonstration setup for vision with a "pinhole camera" in 2D [https://youtu.be/UgM6mIQfGDA?t=6m15s 6:15]
 +
<div class="mw-collapsible-content">
 +
:* Pinhole acts as a focal point
 +
:* Images get mirrored through the pinhole onto the image sensor (/Retina) [https://youtu.be/UgM6mIQfGDA?t=12m44s 12:44]
 +
:* In computer graphics, we avoid this mirroring by moving the image plane in front of the focal point (mathematically, not physically) [https://youtu.be/UgM6mIQfGDA?t=13m44s 13:44]
 +
</div>
 +
* The z-divide (/perspective-divide) [https://youtu.be/UgM6mIQfGDA?t=15m02s 15:02]
 +
<div class="mw-collapsible-content">
 +
:* How do we calculate a point on the image plane given a point in object space? Divide by z!
 +
</div>
 +
* Keep in mind: two key conventions we use [https://youtu.be/UgM6mIQfGDA?t=19m55s 19:55]
 +
<div class="mw-collapsible-content">
 +
:* We will keep the image plane 1 unit in front of the focal point
 +
:* As objects come closer to the focal point, they will project onto larger parts of the image space (z->0)
 +
:* Objects can't cross the focal plane. We will need clipping to take care of this (in later video)
 +
</div>
 +
* Condition for points to fall whithin screen space: |x|<|z| and |y|<|z| [https://youtu.be/UgM6mIQfGDA?t=21m08s 21:08]
 +
* The projection matrix: not needed for now, will be covered later (needed for Direct3D) [https://youtu.be/UgM6mIQfGDA?t=22m06s 22:06]
 +
* Implementing the z-divide into our code [https://youtu.be/UgM6mIQfGDA?t=23m05s 23:05]
 +
</div>
  
 
== Downloads ==
 
== Downloads ==

Latest revision as of 22:18, 2 May 2020

In this video we find out why things look smaller the farther away they are. What does that have to do with projection? I'll tell you... all this science is making me so horny, mah dick is gonna project right out of these pants gurl.

Video

The tutorial video is on YouTube here.


  • Orthographic vs. Perspective projection 0:15
  • The cube we are drawing seems off
  • Reason: we are ignoring the z-component of the vertices
  • No matter how far or close from our viewpoint, we always draw the same size surfaces
  • How does vision and perspective work? 2:55
  • The physical/optical picture: why do things farther away appear smaller in our vision?
  • Lightsource -> photons -> reflection -> image sensor
  • A demonstration setup for vision with a "pinhole camera" in 2D 6:15
  • Pinhole acts as a focal point
  • Images get mirrored through the pinhole onto the image sensor (/Retina) 12:44
  • In computer graphics, we avoid this mirroring by moving the image plane in front of the focal point (mathematically, not physically) 13:44
  • The z-divide (/perspective-divide) 15:02
  • How do we calculate a point on the image plane given a point in object space? Divide by z!
  • Keep in mind: two key conventions we use 19:55
  • We will keep the image plane 1 unit in front of the focal point
  • As objects come closer to the focal point, they will project onto larger parts of the image space (z->0)
  • Objects can't cross the focal plane. We will need clipping to take care of this (in later video)
  • Condition for points to fall whithin screen space: |x|<|z| and |y|<|z| 21:08
  • The projection matrix: not needed for now, will be covered later (needed for Direct3D) 22:06
  • Implementing the z-divide into our code 23:05

Downloads

The GitHub repository for the tutorial code is here.

See also