- the history behind the release of the Disney datasets of large-scale scenes
- comparison of the scene rendered using Disney’s renderer and PBRT 3
![shotCam_hyperion.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-48/shotCam_hyperion.jpg&key=388376947f17a5766f19634767c5c459b332b4652d5ad3506bfbf002ec7564c4)
- paper discussing the software implementation of the rasterization pipeline using compute shaders
- using a dynamic approach that adjusts to the workload dynamically
- comparison within environments taken from games to evaluate the pipeline overhead
- showcase of what kind of effects are possible with a software approach
- custom primitive rendering
- programmable blending
- adaptive supersampling
- in-depth performance comparison against hardware and other software approaches
![gpu_software_raster.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-48/gpu_software_raster.png&key=b8c645dc3bcbcd209b7652f5810a0976087efab15d794e7fbb8de5e76a411c24)
- follow up series of 2012’s GPU Pro 3 model
- dynamic, real-time atmospheric model without pre-calculations
- explains aerial perspective and the Chapman approximation to optical depth
![space_glider.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-48/space_glider.jpg&key=a5b0a5c6180db12b457c03a072e1ce52033fe12283788bbf563d70980f994f60)
- showcase different ways to visualize a 2d flow field
- presentation of an algorithm that allows the creation of loopable animations from vector fields
![vector_fields.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-48/vector_fields.png&key=5481afec1155223e9c8858aaad7d76926f6060e10af9a8c499685bdf2771f834)
- summary of “Conservative Z-Prepass for Frustum-Traced Irregular Z-Buffers” paper
- explanation of irregular z-buffer and conservative shadow maps and how they are combined
![conservative_shadow_maps.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-48/conservative_shadow_maps.png&key=0ab68142fc1a3879b14b993ec9c5e6a95e4249e264800f6b8b002037ff1f5016)
- mathematical derivations of importance sampling for GGX, Beckmann, and Blinn-Phong
![brdf.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-48/brdf.png&key=6f41f169c125866991c05831f6ca6a40b695e85165345248a6219d6bdc804a46)
- part 2 of the Metal tutorial
- adding support for depth buffers, some simple lighting with textures
- extending the application to support multiple lights, objects, and materials with some basic animations
![metal_part.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-48/metal_part.png&key=9c5e813318a7cbfdc49580f5dd17c3aa171e14aeab195cc52730cf3deffe0f29)
- explanation of Vulkan render passes example
- how to create Render passes
- manage shader bindings for input attachments and how to use them from within the GPU shader
![subpasses.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-48/subpasses.png&key=38909741218666c6425d9c0dce470ae70a08ae49fcef7de74793a784d06eb1c2)
- start of a series about graphics engine architecture
- core design goals and pillars for the author’s graphics engine
- embrace concepts introduced in modern graphics APIs
- make job-based multi-threaded execution a first class citizen
- define a clear, small API, but be open towards extension
- a new vertex cache optimization algorithm that is able to improve cache usage on NVidia hardware by taking advantage of vertex batch sizes
![vertex_cache.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-48/vertex_cache.png&key=4e8400586b0508f3a74125362d872df48a2422230c45bc99e3f1677440da0234)
- summary of the “Revisiting The Vertex Cache: Understanding and Optimizing Vertex Processing on the modern GPU” paper
- explains what color inversion is and how to implement it using metal
![color_inversion.jpeg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-48/color_inversion.jpeg&key=515a4cf9f05392c2a3603868817bd27c2c49bf3387c32ca9957f300abf531085)
- tutorial on how to use multi-pass shaders in unity to implement an outline drawing effect
- first pass object is drawn like usual
- in the second pass drawn with front face culling and slightly scaled up to define the outline
![outline.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-48/outline.png&key=df8789f7cecc564c6250d9b16dcaf89536faadf6630f199a7bc62e15b628cd6b)