Этот материал находится в платной подписке. Оформи премиум подписку и смотри или слушай 3D Computer Graphics Programming, а также все другие курсы, прямо сейчас!
Премиум
  • Урок 1. 00:12:24
    1.01 Introduction and Learning Outcomes
  • Урок 2. 00:02:59
    1.02 How to Take this Course
  • Урок 3. 00:02:37
    1.03 Words of Encouragement
  • Урок 4. 00:10:00
    2.01 Project Dependencies
  • Урок 5. 00:01:56
    2.02 A Quick Note for Windows Users
  • Урок 6. 00:02:02
    2.03 Project Folder Structure
  • Урок 7. 00:06:19
    2.04 The Compilation Flow
  • Урок 8. 00:08:21
    2.05 Working with Makefiles
  • Урок 9. 00:14:46
    2.06 Configuring Visual Studio on Windows
  • Урок 10. 00:19:16
    3.01 Creating an SDL Window
  • Урок 11. 00:19:54
    3.02 Rendering an SDL Window
  • Урок 12. 00:20:51
    3.03 Declaring a Color Buffer
  • Урок 13. 00:07:42
    3.04 Allocating Memory and Freeing Resources
  • Урок 14. 00:17:14
    3.08 SDL Texture
  • Урок 15. 00:08:31
    3.09 Fullscreen Window
  • Урок 16. 00:02:59
    3.10 Exercise. Drawing a Background Grid
  • Урок 17. 00:05:43
    3.11 Drawing a Background Grid
  • Урок 18. 00:03:09
    3.13 Exercise. Drawing Rectangles
  • Урок 19. 00:06:00
    3.14 Creating a Function to Draw Rectangles
  • Урок 20. 00:11:20
    4.01 Defining Header Files
  • Урок 21. 00:13:01
    4.02 Coding New Header Files
  • Урок 22. 00:07:48
    5.01 The Draw Pixel Function
  • Урок 23. 00:14:50
    5.02 Vectors
  • Урок 24. 00:03:40
    5.03 Declaring a Vector Type
  • Урок 25. 00:06:24
    5.04 Review of C Structs
  • Урок 26. 00:09:31
    5.05 Array of Points
  • Урок 27. 00:16:13
    6.01 Orthographic Projection
  • Урок 28. 00:15:34
    6.03 Perspective Projection
  • Урок 29. 00:04:14
    6.04 Implementing the Perspective Divide
  • Урок 30. 00:03:12
    6.05 Coordinate System Handedness
  • Урок 31. 00:10:06
    7.01 Vector Transformations
  • Урок 32. 00:08:58
    7.02 Review of Sine Cosine and Tangent
  • Урок 33. 00:22:10
    7.04 Rotating Vectors
  • Урок 34. 00:11:18
    7.05 Vector Rotation Function
  • Урок 35. 00:16:10
    7.06 Proof of Angle Sine Addition
  • Урок 36. 00:07:05
    7.08 Proof of Angle Cosine Addition
  • Урок 37. 00:14:25
    8.01 Fixing our Game Loop Time Step
  • Урок 38. 00:08:14
    8.02 Using a Delay Function
  • Урок 39. 00:12:36
    9.01 Triangles and Meshes
  • Урок 40. 00:24:40
    9.02 Vertices and Triangle Faces
  • Урок 41. 00:02:49
    9.03 Triangle Edges
  • Урок 42. 00:15:19
    10.01 Line Equation
  • Урок 43. 00:22:39
    10.02 DDA Line Drawing Algorithm
  • Урок 44. 00:21:51
    10.03 Coding a Function to Draw Lines
  • Урок 45. 00:20:55
    11.01 Dynamic Arrays
  • Урок 46. 00:22:26
    11.03 Dynamic Mesh Vertices and Faces
  • Урок 47. 00:20:17
    12.01 OBJ Files
  • Урок 48. 00:08:31
    12.02 Exercise. Loading OBJ File Content
  • Урок 49. 00:26:23
    12.03 Loading OBJ File Content
  • Урок 50. 00:08:37
    13.01 Back-face Culling Motivation
  • Урок 51. 00:13:49
    13.03 Vector Magnitude
  • Урок 52. 00:09:31
    13.04 Vector Addition and Subtraction
  • Урок 53. 00:04:24
    13.05 Vector Scalar Multiplication and Division
  • Урок 54. 00:08:59
    13.06 Vector Cross Product
  • Урок 55. 00:08:34
    13.07 Finding the Normal Vector
  • Урок 56. 00:12:24
    13.08 Dot Product
  • Урок 57. 00:04:33
    13.10 Back-face Culling Algorithm
  • Урок 58. 00:26:26
    13.11 Back-face Culling Code
  • Урок 59. 00:20:09
    13.13 Vector Normalization
  • Урок 60. 00:06:38
    14.01 Triangle Fill
  • Урок 61. 00:07:20
    14.02 Flat-Bottom & Flat-Top Technique
  • Урок 62. 00:04:39
    14.03 Activity. Find Triangle Midpoint
  • Урок 63. 00:09:10
    14.04 Solution to the Triangle Midpoint
  • Урок 64. 00:14:42
    14.05 Coding the Triangle Midpoint Computation
  • Урок 65. 00:09:49
    14.06 Flat-Bottom Triangle Algorithm
  • Урок 66. 00:14:22
    14.07 Flat-Bottom Triangle Code
  • Урок 67. 00:05:10
    14.08 Flat-Top Triangle Algorithm
  • Урок 68. 00:09:34
    14.09 Flat-Top Triangle Code
  • Урок 69. 00:07:25
    14.10 Avoiding Division by Zero
  • Урок 70. 00:16:29
    14.12 Different Rendering Options Solution
  • Урок 71. 00:14:35
    14.15 Colored Triangle Faces
  • Урок 72. 00:11:35
    15.01 Painter's Algorithm
  • Урок 73. 00:14:07
    15.03 Coding a Sorting Function
  • Урок 74. 00:13:48
    16.01 Matrices Overview
  • Урок 75. 00:11:50
    16.02 Matrix Operations
  • Урок 76. 00:08:43
    16.03 Properties of Matrix Multiplication
  • Урок 77. 00:07:19
    16.04 Examples of Matrix Multiplication
  • Урок 78. 00:07:09
    16.06 2D Rotation Matrix
  • Урок 79. 00:09:15
    17.01 3D Matrix Transformations
  • Урок 80. 00:08:55
    17.02 3D Scale Matrix
  • Урок 81. 00:09:41
    17.03 Matrix Typedef
  • Урок 82. 00:18:35
    17.04 Scale Matrix Code
  • Урок 83. 00:07:54
    17.05 3D Translation Matrix
  • Урок 84. 00:06:09
    17.06 Translation Matrix Code
  • Урок 85. 00:09:40
    17.07 3D Rotation Matrices
  • Урок 86. 00:09:23
    17.08 Rotation Matrix Code
  • Урок 87. 00:18:07
    17.10 The World Matrix
  • Урок 88. 00:04:43
    17.11 Order of Transformations
  • Урок 89. 00:09:22
    17.12 Translation is Not a Linear Transformation
  • Урок 90. 00:18:46
    18.01 Defining a Projection Matrix
  • Урок 91. 00:13:03
    18.02 Populating our Perspective Projection Matrix
  • Урок 92. 00:21:27
    18.03 Coding the Perspective Projection Matrix
  • Урок 93. 00:03:10
    18.04 Exercise. Projecting Negative Values
  • Урок 94. 00:06:16
    18.05 Projecting Negative Values
  • Урок 95. 00:07:46
    18.07 Row-major and Column-major Orders
  • Урок 96. 00:14:28
    19.01 Flat Shading
  • Урок 97. 00:28:09
    19.02 Coding Flat Shading & Light
  • Урок 98. 00:07:47
    19.04 Smooth Shading Techniques
  • Урок 99. 00:07:54
    19.06 Inverted Vertical Screen Values
  • Урок 100. 00:14:33
    20.01 Texture Mapping
  • Урок 101. 00:12:41
    20.02 Representing Textures in Memory
  • Урок 102. 00:28:15
    20.03 Texture Typedef
  • Урок 103. 00:05:52
    20.04 Textured Triangles
  • Урок 104. 00:30:18
    20.05 Textured Flat-Bottom Triangle
  • Урок 105. 00:09:14
    20.06 Textured Flat-Top Triangle
  • Урок 106. 00:18:16
    20.07 Barycentric Coordinates
  • Урок 107. 00:18:58
    20.08 Barycentric Weights (О±, ОІ, Оі)
  • Урок 108. 00:13:13
    20.09 Function to Compute (О±, ОІ, Оі)
  • Урок 109. 00:25:43
    20.10 Visualizing Textured Triangles
  • Урок 110. 00:28:55
    21.01 Perspective Correct Interpolation
  • Урок 111. 00:03:52
    21.02 PS1 Games and Affine Texture Mapping
  • Урок 112. 00:35:46
    21.03 Perspective Correct Interpolation Code
  • Урок 113. 00:06:05
    21.06 Inverted Cube UV Coordinates
  • Урок 114. 00:10:08
    22.01 Decoding PNG Files
  • Урок 115. 00:21:18
    22.03 Loading PNG File Content
  • Урок 116. 00:01:43
    22.04 Freeing PNG Textures
  • Урок 117. 00:25:44
    23.01 Loading OBJ Texture Attributes
  • Урок 118. 00:10:54
    23.02 Preventing Texture Buffer Overflow
  • Урок 119. 00:07:42
    23.04 Visualizing Textured OBJ Models
  • Урок 120. 00:13:55
    24.01 Z-Buffer
  • Урок 121. 00:22:35
    24.02 Z-Buffer Code
  • Урок 122. 00:05:00
    24.03 Exercise. Z-Buffer for Filled Triangles
  • Урок 123. 00:10:37
    24.04 Implementing a Z-Buffer for Filled Triangles
  • Урок 124. 00:18:01
    24.05 A Discussion on Dynamic Memory Allocation
  • Урок 125. 00:15:30
    25.01 Camera Space
  • Урок 126. 00:10:34
    25.02 Look At Camera Model
  • Урок 127. 00:17:40
    25.03 Look At Transformations
  • Урок 128. 00:11:47
    25.04 The LookAt Function
  • Урок 129. 00:24:16
    25.05 Coding the LookAt Function
  • Урок 130. 00:11:45
    25.07 Variable Delta-time
  • Урок 131. 00:06:07
    25.08 A Simple FPS Camera Movement
  • Урок 132. 00:35:56
    25.09 Coding a Simple FPS Camera Movement
  • Урок 133. 00:09:03
    26.01 Frustum Clipping
  • Урок 134. 00:07:17
    26.02 Planes
  • Урок 135. 00:03:25
    26.03 Exercise. Right Frustum Plane Point & Normal
  • Урок 136. 00:19:12
    26.04 Defining Frustum Planes Points & Normals
  • Урок 137. 00:12:00
    26.05 Initializing an Array of Frustum Planes
  • Урок 138. 00:06:26
    26.06 Defining Points Inside and Outside Planes
  • Урок 139. 00:18:22
    26.07 Intersection Between Line & Plane
  • Урок 140. 00:14:28
    26.08 Clipping a Polygon Against a Plane
  • Урок 141. 00:23:51
    26.09 Polygon Typedef
  • Урок 142. 00:24:27
    26.10 A Function to Clip Polygon Against Planes
  • Урок 143. 00:38:37
    26.11 Coding the Function to Clip Polygons Against Planes
  • Урок 144. 00:06:57
    26.12 Converting Polygons Back Into Triangles
  • Урок 145. 00:24:08
    26.13 Visualizing Clipped Triangles
  • Урок 146. 00:21:03
    26.14 Horizontal & Vertical FOV Angles
  • Урок 147. 00:37:16
    26.15 Clipping Texture UV Coordinates
  • Урок 148. 00:18:35
    26.16 Clipping Space
  • Урок 149. 00:08:52
    27.01 Working with Static Variables
  • Урок 150. 00:30:28
    27.02 Refactoring SDL Globals
  • Урок 151. 00:12:30
    27.03 Simulating Low-Resolution Displays
  • Урок 152. 00:07:16
    27.04 Refactoring Light Globals
  • Урок 153. 00:04:40
    27.05 Exercise. Camera Pitch Rotation
  • Урок 154. 00:14:41
    27.06 Implementing the Camera Pitch Rotation
  • Урок 155. 00:17:30
    28.01 Declaring Multiple Meshes
  • Урок 156. 00:28:55
    28.02 Implementing Multiple Meshes
  • Урок 157. 00:16:18
    28.03 Implementing Multiple Textures
  • Урок 158. 00:20:06
    28.04 Finishing our Implementation
  • Урок 159. 00:23:12
    28.05 Handedness & Orientation
  • Урок 160. 00:10:06
    29.01 Dedicated Graphics Cards
  • Урок 161. 00:14:17
    29.02 Modern Graphics APIs & Shaders
  • Урок 162. 00:19:22
    29.03 A Parallel Rasterization Algorithm
  • Урок 163. 00:16:21
    29.04 Determining Point Inside Triangle
  • Урок 164. 00:17:38
    29.05 Top-Left Rasterization Rule
  • Урок 165. 00:14:04
    29.06 Edge Function & Barycentric Weights
  • Урок 166. 00:19:23
    29.07 Edge Function & Constant Increments
  • Урок 167. 00:23:15
    29.08 Subpixel Rasterization
  • Урок 168. 00:10:26
    30.03 Next Steps