Graphics Programming weekly - Issue 12 — October 15, 2017


Forward+ decal rendering [wayback-archive]

  • goals: avoid additional geometry, and don’t increase draw call count
  • extend the light structure to also support decals
  • cull the decals, sort them and apply them in the object shader just as lights
  • still has a few open problems, for example mip selection
    • possible solution: calculate the UV gradients manually as in this example

Depth proxy transparency rendering [wayback-archive]

  • Depth proxy: 2 channel textures that contains min and max of transparent entity
  • using this structure for various applications
    • Particles Self-Shadowing
    • Volumetric Effects-Particles Sorting
    • Particles-Transparent Meshes Sorting

Little Lightmap Tricks [wayback-archive]

  • no pixel gaps are required between charts, if they are required then the UV calculation is wrong
  • if all pixels in a chart are similar, can squash them down to a single pixel and point the UVs to it
  • deduplicate nearly identical charts
  • store similar colors for unused pixels, increase DXT quality
  • explanation of the scheme used for the wii version of Call Of Duty: Modern Warfare

It’s All About The Data [wayback-archive]

  • how to optimize data transformation from API agnostic command buffers to API specific calls
  • think about data layout
  • combine state settings into few and bigger commands

Unreal Dev Day Montreal Presentations Released [wayback-archive]


Aftermath 1.3 Update [wayback-archive]

  • no need to rename the .exe anymore
  • can return resource information
  • reduced overhead (memory and CPU performance)

Xbox-ATG-Samples

  • samples released by the Xbox Advanced Technology Group
  • this includes source code for Xbox One samples

Designing a Next-Gen GPU API for the Web

  • API to supersede WebGL
  • abstraction on Vulkan, Metal, D3D12 but embracing web constraints
  • comparison of similar concepts in all 3 APIs

Design Patterns for Low-Level Real-Time Rendering - Video

  • was discussed in Issue 10. Now the video is released

Register Cache: Caching for Warp-Centric CUDA Programs [wayback-archive]

  • software abstraction that uses inter-thread shuffling to replace shared memory with thread register usage
  • use case: replace shared memory with registers to cache kernel inputs

Dealing with geometry in Vulkan [wayback-archive]

  • how to upload data into buffers for dynamic and static cases