Graphics Programming weekly - Issue 17 — November 19, 2017


Last Week on DirectX Shader Compiler (2017-11-14) [wayback-archive]

  • support for explicitly sized types 16 to 64 bits
  • spir-v improvements

Embree v2.17.1

  • Improved performance of occlusion ray packets by up to 50%

Experiments in GPU-based occlusion culling [wayback-archive]

  • An GPU occlusion system that does not require mayor changes to existing D3D11 based engines
  • render occluders to depth buffer
  • mip chain generation
  • world transform + aabb (axis aligned bounding box) in structured buffer
  • if visible write the transform to an AppendBuffer
  • DrawIndexedInstancedIndirect for drawing the models
    • index count is pre-filled by the CPU when creating the buffer
    • only the number of instances needs to be atomically incremented on the GPU
  • expand to support multiple mesh types culling in one pass
    • remove use of AppendBuffer
    • removing invisible instances with parallel prefix scan for stream compaction

Updated Crunch texture compression library [wayback-archive]

  • compress DXT textures up to 2.5 times faster
    • latest github version up to 5x faster
  • 10% better compression ratio
  • added support for ETC_RGB4 and ETC2_RGBA8
  • commits have very detailed commit messages to follow the progress along github

Mud and Water of Spintires: MudRunner [wayback-archive]

  • visual aspects driven via textures
    • dynamically updated through rendering of particles into textures
  • projection of meshes
  • heavy use of decals
  1. mud system
    • mud displacement
    • wheel tracks
    • mud particles
  2. water system
    • water simulation
    • geometric water waves

Biome Painter: Populating Massive Worlds [wayback-archive]

  • generate terrain textures and entity placement from the same system

    • biome type and lushness in color maps
  • spawns entities on pre-calculated spawn points

    • entities spawned at runtime
    • following rules based on terrain information
  • Biome LOD

    • based on distance spawn only larger objects
    • small object just close to the player
  • splines are used for roads/rivers

    • automatically adjusts the maps to adjust for it
  • biome blockers

    • simple shapes that reduce or remove biomes where placed

Technology Sneak Peek: Python in Unreal Engine [wayback-archive]

  • automated non destructive workflow processing
  • replace materials/combine models/ remove detailts etc…
  • can be python or visual scripting (blueprint)

Gpufit: An open-source toolkit for GPU-accelerated curve fitting [wayback-archive]

  • GPU-accelerated , open-source library for curve fitting
  • using the Levenberg-Marquardt algorithm