├── .gitignore ├── LICENSE ├── Presentations ├── Real-time rendering - Chapter 2.pdf └── Real-time rendering - Chapter 2.pptx └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | CMakeCache.txt 2 | CMakeFiles 3 | CMakeScripts 4 | Testing 5 | Makefile 6 | cmake_install.cmake 7 | install_manifest.txt 8 | compile_commands.json 9 | CTestTestfile.cmake 10 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Chris Ohk 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Presentations/Real-time rendering - Chapter 2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/utilForever/RTRStudy/ae90ed58607dda8a20e773f5cd0cec46dba0bdaa/Presentations/Real-time rendering - Chapter 2.pdf -------------------------------------------------------------------------------- /Presentations/Real-time rendering - Chapter 2.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/utilForever/RTRStudy/ae90ed58607dda8a20e773f5cd0cec46dba0bdaa/Presentations/Real-time rendering - Chapter 2.pptx -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Real-time rendering, 4th edition study 2 | 3 | ###### Presentation slides, resources and references of ["Real-time rendering, 4th Edition"](http://www.realtimerendering.com/) Book 4 | 5 | ## The Book 6 | 7 | Thoroughly updated, this fourth edition focuses on modern techniques used to generate synthetic three-dimensional images in a fraction of a second. With the advent of programmable shaders, a wide variety of new algorithms have arisen and evolved over the past few years. This edition discusses current, practical rendering methods used in games and other applications. It also presents a solid theoretical framework and relevant mathematics for the field of interactive computer graphics, all in an approachable style. New to this edition: new chapter on VR and AR as well as expanded coverage of Visual Appearance, Advanced Shading, Global Illumination, and Curves and Curved Surfaces. 8 | 9 | ## Presenter 10 | 11 | - Chris Ohk 12 | - HyunJun Park 13 | - Johnson Kang 14 | - Kyowon Yang 15 | - Macht Sung 16 | - MinHyeok Jeon 17 | 18 | ## Contents (Presentation Slides - Korean) 19 | 20 | 21 | 22 | ### Chapter 1: Introduction 23 | 24 | - Presentation Slides: Skipped. 25 | - Contents Overview 26 | - Notation and Definitions 27 | 28 | ### Chapter 2: The Graphics Rendering Pipeline 29 | 30 | - Presentation Slides: [[PPTX](https://github.com/utilForever/RTRStudy/blob/master/Presentations/Real-time%20rendering%20-%20Chapter%202.pptx)], [[PDF](https://github.com/utilForever/RTRStudy/blob/master/Presentations/Real-time%20rendering%20-%20Chapter%202.pdf)] 31 | - Architecture 32 | - The Application Stage 33 | - Geometry Processing 34 | - Rasterization 35 | - Pixel Processing 36 | - Through the Pipeline 37 | 38 | ### Chapter 3: The Graphics Processing Unit 39 | 40 | - Presentation Slides: TBA 41 | - Data-Parallel Architectures 42 | - GPU Pipeline Overview 43 | - The Programmable Shader Stage 44 | - The Evolution of Programmable Shading and APIs 45 | - The Vertex Shader 46 | - The Tessellation Stage 47 | - The Geometry Shader 48 | - The Pixel Shader 49 | - The Merging Stage 50 | - The Compute Shader 51 | 52 | ### Chapter 4: Transforms 53 | 54 | - Presentation Slides: TBA 55 | - Basic Transforms 56 | - Special Matrix Transforms and Operations 57 | - Quaternions 58 | - Vertex Blending 59 | - Morphing 60 | - Geometry Cache Playback 61 | - Projections 62 | 63 | ### Chapter 5: Shading Basics 64 | 65 | - Presentation Slides: TBA 66 | - Shading Models 67 | - Light Sources 68 | - Implementing Shading Models 69 | - Aliasing and Antialiasing 70 | - Transparency, Alpha, and Compositing 71 | - Display Encoding 72 | 73 | ### Chapter 6: Texturing 74 | 75 | - Presentation Slides: TBA 76 | - The Texturing Pipeline 77 | - Image Texturing 78 | - Procedural Texturing 79 | - Texture Animation 80 | - Material Mapping 81 | - Alpha Mapping 82 | - Bump Mapping 83 | - Parallax Mapping 84 | - Textured Lights 85 | 86 | ### Chapter 7: Shadows 87 | 88 | - Presentation Slides: TBA 89 | - Planar Shadows 90 | - Shadows on Curved Surfaces 91 | - Shadow Volumes 92 | - Shadow Maps 93 | - Percentage-Closer Filtering 94 | - Percentage-Closer Soft Shadows 95 | - Filtered Shadow Maps 96 | - Volumetric Shadow Techniques 97 | - Irregular Z-Buffer Shadows 98 | - Other Applications 99 | 100 | ### Chapter 8: Light and Color 101 | 102 | - Presentation Slides: TBA 103 | - Light Quantities 104 | - Scene to Screen 105 | 106 | ### Chapter 9: Physically Based Shading 107 | 108 | - Presentation Slides: TBA 109 | - Physics of Light 110 | - The Camera 111 | - The BRDF 112 | - Illumination 113 | - Fresnel Reflectance 114 | - Microgeometry 115 | - Microfacet Theory 116 | - BRDF Models for Surface Reflection 117 | - BRDF Models for Subsurface Scattering 118 | - BRDF Models for Cloth 119 | - Wave Optics BRDF Models 120 | - Layered Materials 121 | - Blending and Filtering Materials 122 | 123 | ### Chapter 10: Local Illumination 124 | 125 | - Presentation Slides: TBA 126 | - Area Light Sources 127 | - Environment Lighting 128 | - Spherical and Hemispherical Functions 129 | - Environment Mapping 130 | - Specular Image-Based Lighting 131 | - Irradiance Environment Mapping 132 | - Sources of Error 133 | 134 | ### Chapter 11: Global Illumination 135 | 136 | - Presentation Slides: TBA 137 | - The Rendering Equation 138 | - General Global Illumination 139 | - Ambient Occlusion 140 | - Directional Occlusion 141 | - Diffuse Global Illumination 142 | - Specular Global Illumination 143 | - Unified Approaches 144 | 145 | ### Chapter 12: Image-Space Effects 146 | 147 | - Presentation Slides: TBA 148 | - Image Processing 149 | - Reprojection Techniques 150 | - Lens Flare and Bloom 151 | - Depth of Field 152 | - Motion Blur 153 | 154 | ### Chapter 13: Beyond Polygons 155 | 156 | - Presentation Slides: TBA 157 | - The Rendering Spectrum 158 | - Fixed-View Effects 159 | - Skyboxes 160 | - Light Field Rendering 161 | - Sprites and Layers 162 | - Billboarding 163 | - Displacement Techniques 164 | - Particle Systems 165 | - Point Rendering 166 | - Voxels 167 | 168 | ### Chapter 14: Volumetric and Translucency Rendering 169 | 170 | - Presentation Slides: TBA 171 | - Light Scattering Theory 172 | - Specialized Volumetric Rendering 173 | - General Volumetric Rendering 174 | - Sky Rendering 175 | - Translucent Surfaces 176 | - Subsurface Scattering 177 | - Hair and Fur 178 | - Unified Approaches 179 | 180 | ### Chapter 15: Non-Photorealistic Rendering 181 | 182 | - Presentation Slides: TBA 183 | - Toon Shading 184 | - Outline Rendering 185 | - Stroke Surface Stylization 186 | - Lines 187 | - Text Rendering 188 | 189 | ### Chapter 16: Polygonal Techniques 190 | 191 | - Presentation Slides: TBA 192 | - Sources of Three-Dimensional Data 193 | - Tessellation and Triangulation 194 | - Consolidation 195 | - Triangle Fans, Strips, and Meshes 196 | - Simplification 197 | - Compression and Precision 198 | 199 | ### Chapter 17: Curves and Curved Surfaces 200 | 201 | - Presentation Slides: TBA 202 | - Parametric Curves 203 | - Parametric Curved Surfaces 204 | - Implicit Surfaces 205 | - Subdivision Curves 206 | - Subdivision Surfaces 207 | - Efficient Tessellation 208 | 209 | ### Chapter 18: Pipeline Optimization 210 | 211 | - Presentation Slides: TBA 212 | - Profiling and Debugging Tools 213 | - Locating the Bottleneck 214 | - Performance Measurements 215 | - Optimization 216 | - Multiprocessing 217 | 218 | ### Chapter 19: Acceleration Algorithms 219 | 220 | - Presentation Slides: TBA 221 | - Spatial Data Structures 222 | - Culling Techniques 223 | - Backface Culling 224 | - View Frustum Culling 225 | - Portal Culling 226 | - Detail and Small Triangle Culling 227 | - Occlusion Culling 228 | - Culling Systems 229 | - Level of Detail 230 | - Rendering Large Scenes 231 | 232 | ### Chapter 20: Efficient Shading 233 | 234 | - Presentation Slides: TBA 235 | - Deferred Shading 236 | - Decal Rendering 237 | - Tiled Shading 238 | - Clustered Shading 239 | - Deferred Texturing 240 | - Object- and Texture-Space Shading 241 | 242 | ### Chapter 21: Virtual and Argumented Reality 243 | 244 | - Presentation Slides: TBA 245 | - Equipment and Systems Overview 246 | - Physical Elements 247 | - APIs and Hardware 248 | - Rendering Techniques 249 | 250 | ### Chapter 22: Intersection Test Methods 251 | 252 | - Presentation Slides: TBA 253 | - GPU-Accelerated Picking 254 | - Definitions and Tools 255 | - Bounding Volume Creation 256 | - Geometric Probability 257 | - Rules of Thumb 258 | - Ray/Sphere Intersection 259 | - Ray/Box Intersection 260 | - Ray/Triangle Intersection 261 | - Ray/Polygon Intersection 262 | - Plane/Box Intersection 263 | - Triangle/Triangle Intersection 264 | - Triangle/Box Intersection 265 | - Bounding-Volume/Bounding-Volume Intersection 266 | - View Frustum Intersection 267 | - Line/Line Intersection 268 | - Intersection between Three Planes 269 | 270 | ### Chapter 23: Graphics Hardware 271 | 272 | - Presentation Slides: TBA 273 | - Rasterization 274 | - Massive Compute and Scheduling 275 | - Latency and Occupancy 276 | - Memory Architecture and Buses 277 | - Caching and Compression 278 | - Color Buffering 279 | - Depth Culling, Testing, and Buffering 280 | - Texturing 281 | - Architecture 282 | - Case Studies 283 | - Ray Tracing Architectures 284 | 285 | ### Chapter 24: The Future 286 | 287 | - Presentation Slides: Skipped. 288 | - Everything Else 289 | - You 290 | 291 | ### [Chapter 25: Collision Detection](http://www.realtimerendering.com/Real-Time_Rendering_4th-Collision_Detection.pdf) 292 | 293 | - Presentation Slides: TBA 294 | - Broad Phase Collision Detection 295 | - Mid Phase Collision Detection 296 | - Narrow Phase Collision Detection 297 | - Collision Detection with Rays 298 | - Dynamic CD Using BSP Trees 299 | - Time-Critical Collision Detection 300 | - Deformable Models 301 | - Continuous Collision Detection 302 | - Collision Response 303 | - Particles 304 | - Broad Phase Collision Detection 305 | 306 | ### [Chapter 26: Real-Time Ray Tracing](http://www.realtimerendering.com/Real-Time_Rendering_4th-Real-Time_Ray_Tracing.pdf) 307 | 308 | - Presentation Slides: TBA 309 | - Broad Phase Collision Detection 310 | - Shaders for Ray Tracing 311 | - Top and Bottom Level Acceleration Structures 312 | - Coherency 313 | - Denoising 314 | - Texture Filtering 315 | - Speculations 316 | 317 | ### [Linear Algebra](http://www.realtimerendering.com/Real-Time_Rendering_4th-Appendices.pdf) 318 | 319 | - Presentation Slides: TBA 320 | - Euclidean Space 321 | - Geometrical Interpretation 322 | - Matrices 323 | - Homogeneous Notation 324 | - Geometry 325 | 326 | ### [Trigonometry](http://www.realtimerendering.com/Real-Time_Rendering_4th-Appendices.pdf) 327 | 328 | - Presentation Slides: TBA 329 | - Definitions 330 | - Trigonometric Laws and Formulae 331 | 332 | ## License 333 | 334 | 335 | 336 | The class is licensed under the [MIT License](http://opensource.org/licenses/MIT): 337 | 338 | Copyright © 2018 [Chris Ohk](http://www.github.com/utilForever), [HyunJun Park](https://github.com/hyunjun529), [Johnson Kang](https://github.com/jwkapple), [Kyowon Yang](https://github.com/HoRangDev), [Macht Sung](https://github.com/GreenGits) and [MinHyeok Jeon](https://github.com/integraldx) 339 | 340 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 341 | 342 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 343 | 344 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------