Graphics Programming weekly - Issue 215 - December 26, 2021


Christmas Decoration for Graphics Engineers

  • the article describes a setup to use a software rasterizer to create winter decorations for tiny projectors to make Christmas decorations
  • happy christmas :)


Debugging Your Renderer (4/n): End-to-end tests (or, why did that image change?)

  • the post presents the importance of testing images that allow the testing of a renderer
  • discusses the different kinds of test images, how to gather them and compare if they remain unchanged
  • presents heuristics to judge if changes that introduce image changes are valid or problematic


Debugging Your Renderer (5/n): Rendering Deterministically

  • the article discusses sources of nondeterministic rendering in PBRT-3
  • presents how the renderer was made deterministic
  • additionally presents what advantages and debugging abilities determinism enables


Homegrown rendering with Rust

  • the article presents the release of the kajiya experimental renderer written in Rust
  • discusses the design and implementation choices, targetting the Vulkan API and Rust for shader authoring
  • additionally presents a look at the future direction of the project


[video] Triplanar Projection - Shader Graph Basics - Episode 28

  • The shader video tutorial shows how to create a shader that projects textures from the top, front, and side (Triplanar projection) without UV coordinates
  • implementation is shown in both Unity and Unreal visual shader authoring system


Improved Triplanar projections

  • the article presents how to use barycentric coordinates to improve triplanar projections
  • done by blending between smoothed and flat normals
  • presents how to use virtual triangles to generate barycentric coordinates for terrains if not available on the target system


[video] Digital Foundry's Best Game Graphics of 2021 - PC, Xbox, PlayStation - Another Amazing Year!

  • video discussing the best graphical releases of the year
  • presenting the most prominent innovations of the year, showing how the expectations of next-generation have evolved
  • additionally discussing oddities of the year


Vulkan: Why some GPUs expose a dozen of identical memory types?

  • the article discusses why Vulkan drivers expose a single heap with multiple memory types
  • explains how resource compatibility should be handled in resource allocation


From GLSL to WGSL: the future of shaders on the Web

  • the post describes the differences between the new WebGPU Shading language and GLSL
  • shows the explicit nature of the language
  • highlighting the difficulty in translating between the languages


Thanks to Jasper Bekkers for support of this series.


Would you like to see your name here too? Become a Patreon of this series.