The bad thing about being a self-taught student is you don't know what you don't know. I could have literally saved 2 months if I had found you earlier. Thank you!
As a self learner, I watched and followed many courses on CG. By far, this one overwhelms the others in terms of clearness of explanation and the way the course structure prepared. Thank you very much. This is a modern golden mine.
KEY QUESTIONS: "How do we handle complex coverage cases?" [18:25] "How can we reconstruct a continuous signal from samples?" [22:33] [29:21] "Is this sample point covered by triangle one or is it covered by triangle two or is it in some sense covered by both of them?" [37:52] "What do you think is going to happen if we increase the frequency omega over time?" [46:54] "What is a pipeline? How do we structure our computation as a series of stages?" [57:31] "How do we check if a given point q is inside a triangle with vertices p0 p1 p2?" [1:01:58] "When is this kind of a bad idea?" (regarding parallel testing of sample points) [1:03:55] "How would you check if a box intersects a triangle?" [1:04:07] "Can you use that test as a starting point for checking if a box intersects a triangle?" NOTABLE QUOTES: "If we have infinite frequencies in your signal, no matter how many samples you take you're always going to have some error in your reconstruction." [55:42] "If you get this wrong in real image generation you can get some really nasty looking artifacts in your image." [29:33] "Real signals that we want to deal with in computer graphics usually aren't band limited." [48:44] "The bottleneck is typically not doing arithmetic doing math but the bottleneck is reading or writing to memory, so if you can traverse the pixels in a pretty coherent order that can actually speed things up significantly." [1:00:10] "That's part of the reason we can draw billions of triangles per second - that's what the hardware is designed to do." [1:01:33] "Playing these kind of games is exactly the activity of computer graphics - trying to think how can I structure the computation, how can I break things down to really match the computation to the problem structure." [1:07:07] "Weirdly enough we're going to reduce all of drawing images on the screen to just drawing triangles really really fast." [1:09:04] TIMESTAMPS: [00:00] - Introduction to Drawing Triangles • Introduces the fundamental challenge of drawing triangles on screen • Explains why this basic task reveals deeper graphics challenges • Sets up discussion of rasterization as a major graphics technique [02:04] - Comparing Rasterization vs Ray Tracing • Defines rasterization as determining which pixels to light up for each primitive • Contrasts with ray tracing approach • Discusses speed advantages of rasterization • Explains limitations for photorealistic rendering [04:03] - Graphics Pipeline Overview • References previous cube drawing example • Introduces concept of pipeline stages • Explains importance of structured input/output between stages • Relates to practical GPU implementation [07:39] - Why Triangles? The Fundamental Primitive • Discusses advantages of using triangles as basic primitives • Explains planarity property importance for shading • Demonstrates triangle mesh example with skull model • Connects to pixel analogy for approximating shapes [11:17] - Modern Rasterization Pipeline Stages • Details transformation and positioning stage • Covers projection onto 2D screen • Explains triangle coverage sampling • Discusses attribute interpolation • Shows final compositing stage [16:37] - Understanding Triangle Coverage • Introduces pixel coverage problem • Examines different triangle-pixel overlap cases • Discusses challenges with partial coverage • Explains need for sampling approach [21:02] - Introduction to Sampling Theory • Defines sampling in one dimension • Uses audio example at 44kHz • Demonstrates sampling of continuous functions • Shows importance of sampling rate [24:56] - Reconstruction and Interpolation • Explains piecewise constant approximation • Demonstrates piecewise linear interpolation • Discusses sampling density requirements • Connects concepts back to image sampling [28:02] - Rasterization as a Sampling Problem Introduces coverage function concept for triangles Explains binary nature of coverage (0 or 1) Discusses challenges with edge cases and sample points Relates to real-world image generation artifacts [34:00] - Display and Pixel Reconstruction Explains how displays convert samples to light Discusses physical pixel structure Introduces reconstruction concepts for displays Shows practical examples of pixel reconstruction [41:04] - Understanding Aliasing in Graphics Demonstrates aliasing in frequency domain Shows examples with animated wheel rotation Explains Nyquist-Shannon sampling theorem Discusses band-limited signals in graphics [50:15] - Super-sampling and Anti-aliasing Introduces super-sampling technique Shows progressive improvement with more samples Demonstrates checkerboard pattern test case Discusses limitations of sampling approaches [57:54] - Triangle Inside Test Implementation Details point-in-triangle testing algorithms Explains half-plane tests for triangles Discusses edge cases and rules Shows importance of consistent ordering [1:01:46] - Optimizing Triangle Rasterization Introduces bounding box optimization Explains parallel vs serial approaches Shows hierarchical optimization strategies Discusses real hardware considerations [1:07:20] - Summary and Key Concepts Reviews sampling and reconstruction Summarizes aliasing challenges Recaps triangle rasterization strategies Previews next lecture on 3D transformations
Small correction: video says "Piecewise-linear" twice at approx 25:44. Should be piecewise-constant and piecewise-linear respectively. Great lecture series otherwise! Thanks a lot for publishing this.
For a beginner at differencial Rendering ,Everytime My research get some problem to unsolve, Learning this pretty hig quality course will help me a lot to solve most of Rendering problem.Thanks for your lectures , And by the way I love your factastic rearch project in your publication
Hello! Thank you very much for the lectures. I really wanted to work on the assignments and was wondering if there was any supporting videos that explain how to set up the necessary software. I am a complete beginner to this and I am having a lot of trouble figuring out how to access, set up, and start on the assignment from the link to the Github repository alone. Any support at all in this will be very much appreciated!
I believe he's offering another way of improving the sample as an approximation of the actual signal - set the average light intensity of the pixel at the time of reconstruction such that the total light emitted is equal to the total light emitted by the original signal. Here, the latter quantity is obtained by integrating the light intensity over the box area covered by the pixel.
What a masterpiece course! Thank you so much for making it available online!
insane that this computer graphics class gives a better intuition of nyquist than my signals and systems class
The bad thing about being a self-taught student is you don't know what you don't know. I could have literally saved 2 months if I had found you earlier. Thank you!
As a self learner, I watched and followed many courses on CG. By far, this one overwhelms the others in terms of clearness of explanation and the way the course structure prepared. Thank you very much. This is a modern golden mine.
KEY QUESTIONS:
"How do we handle complex coverage cases?" [18:25]
"How can we reconstruct a continuous signal from samples?" [22:33]
[29:21] "Is this sample point covered by triangle one or is it covered by triangle two or is it in some sense covered by both of them?"
[37:52] "What do you think is going to happen if we increase the frequency omega over time?"
[46:54] "What is a pipeline? How do we structure our computation as a series of stages?"
[57:31] "How do we check if a given point q is inside a triangle with vertices p0 p1 p2?"
[1:01:58] "When is this kind of a bad idea?" (regarding parallel testing of sample points)
[1:03:55] "How would you check if a box intersects a triangle?"
[1:04:07] "Can you use that test as a starting point for checking if a box intersects a triangle?"
NOTABLE QUOTES:
"If we have infinite frequencies in your signal, no matter how many samples you take you're always going to have some error in your reconstruction." [55:42]
"If you get this wrong in real image generation you can get some really nasty looking artifacts in your image." [29:33]
"Real signals that we want to deal with in computer graphics usually aren't band limited." [48:44]
"The bottleneck is typically not doing arithmetic doing math but the bottleneck is reading or writing to memory, so if you can traverse the pixels in a pretty coherent order that can actually speed things up significantly." [1:00:10]
"That's part of the reason we can draw billions of triangles per second - that's what the hardware is designed to do." [1:01:33]
"Playing these kind of games is exactly the activity of computer graphics - trying to think how can I structure the computation, how can I break things down to really match the computation to the problem structure." [1:07:07]
"Weirdly enough we're going to reduce all of drawing images on the screen to just drawing triangles really really fast." [1:09:04]
TIMESTAMPS:
[00:00] - Introduction to Drawing Triangles
• Introduces the fundamental challenge of drawing triangles on screen
• Explains why this basic task reveals deeper graphics challenges
• Sets up discussion of rasterization as a major graphics technique
[02:04] - Comparing Rasterization vs Ray Tracing
• Defines rasterization as determining which pixels to light up for each primitive
• Contrasts with ray tracing approach
• Discusses speed advantages of rasterization
• Explains limitations for photorealistic rendering
[04:03] - Graphics Pipeline Overview
• References previous cube drawing example
• Introduces concept of pipeline stages
• Explains importance of structured input/output between stages
• Relates to practical GPU implementation
[07:39] - Why Triangles? The Fundamental Primitive
• Discusses advantages of using triangles as basic primitives
• Explains planarity property importance for shading
• Demonstrates triangle mesh example with skull model
• Connects to pixel analogy for approximating shapes
[11:17] - Modern Rasterization Pipeline Stages
• Details transformation and positioning stage
• Covers projection onto 2D screen
• Explains triangle coverage sampling
• Discusses attribute interpolation
• Shows final compositing stage
[16:37] - Understanding Triangle Coverage
• Introduces pixel coverage problem
• Examines different triangle-pixel overlap cases
• Discusses challenges with partial coverage
• Explains need for sampling approach
[21:02] - Introduction to Sampling Theory
• Defines sampling in one dimension
• Uses audio example at 44kHz
• Demonstrates sampling of continuous functions
• Shows importance of sampling rate
[24:56] - Reconstruction and Interpolation
• Explains piecewise constant approximation
• Demonstrates piecewise linear interpolation
• Discusses sampling density requirements
• Connects concepts back to image sampling
[28:02] - Rasterization as a Sampling Problem
Introduces coverage function concept for triangles
Explains binary nature of coverage (0 or 1)
Discusses challenges with edge cases and sample points
Relates to real-world image generation artifacts
[34:00] - Display and Pixel Reconstruction
Explains how displays convert samples to light
Discusses physical pixel structure
Introduces reconstruction concepts for displays
Shows practical examples of pixel reconstruction
[41:04] - Understanding Aliasing in Graphics
Demonstrates aliasing in frequency domain
Shows examples with animated wheel rotation
Explains Nyquist-Shannon sampling theorem
Discusses band-limited signals in graphics
[50:15] - Super-sampling and Anti-aliasing
Introduces super-sampling technique
Shows progressive improvement with more samples
Demonstrates checkerboard pattern test case
Discusses limitations of sampling approaches
[57:54] - Triangle Inside Test Implementation
Details point-in-triangle testing algorithms
Explains half-plane tests for triangles
Discusses edge cases and rules
Shows importance of consistent ordering
[1:01:46] - Optimizing Triangle Rasterization
Introduces bounding box optimization
Explains parallel vs serial approaches
Shows hierarchical optimization strategies
Discusses real hardware considerations
[1:07:20] - Summary and Key Concepts
Reviews sampling and reconstruction
Summarizes aliasing challenges
Recaps triangle rasterization strategies
Previews next lecture on 3D transformations
I would say the name of the BGM in 22:23 is Epic Sax Guy. :)
Sir, thousands of respects for such a high-quality course!
Small correction: video says "Piecewise-linear" twice at approx 25:44. Should be piecewise-constant and piecewise-linear respectively. Great lecture series otherwise! Thanks a lot for publishing this.
For a beginner at differencial Rendering ,Everytime My research get some problem to unsolve, Learning this pretty hig quality course will help me a lot to solve most of Rendering problem.Thanks for your lectures , And by the way I love your factastic rearch project in your publication
This is gold
Very nicely explained!
Quite tough than expected, but much more to be learned. Thanks!
Hello! Thank you very much for the lectures. I really wanted to work on the assignments and was wondering if there was any supporting videos that explain how to set up the necessary software. I am a complete beginner to this and I am having a lot of trouble figuring out how to access, set up, and start on the assignment from the link to the Github repository alone. Any support at all in this will be very much appreciated!
Lost me at 51:41, could someone chip in there thoughts?
I believe he's offering another way of improving the sample as an approximation of the actual signal - set the average light intensity of the pixel at the time of reconstruction such that the total light emitted is equal to the total light emitted by the original signal. Here, the latter quantity is obtained by integrating the light intensity over the box area covered by the pixel.
Great knowing thank you
I'm having a hard time doing the project for this lecture, any tips or demo?
anyone can please tell me the best computer graphic dictionary
couldn't believe i got epic saxed