- a technique that allows the generation of infinite output space from a small example texture (such a grass, snow) in a pixel shader only
- for example tillable terrain textures
- cheap to evaluate; 0.29ms for a fullscreen quad
- the approach is to partition the output space into a triangle grid and to pick three random patches from the input texture to blend to create the output patch
- this is made possible through the variance preserving blending operation, and this can also be used to improve triplanar mapping
![](/img/posts/graphics-programming-weekly-45/hpn2018_teaser.png)
- technique for downsampling images that preserves high-frequency information from the original image
- instead of discarding high-frequency information it remaps the signal into a form that can be represented in the downsampled image
![](/img/posts/graphics-programming-weekly-45/spectral_remapping_for_image_downscaling.jpg)
- a technique to improve importance sampling for spherical light sources by projecting the visible spherical cap onto a 2D plane, and taking uniform samples within this plane
- yields noise-free direct illumination for constant illumination with no occluders
![](/img/posts/graphics-programming-weekly-45/spherical_caps.jpg)
- summary of the previous paper
- explains the spherical cap projection and the intuition how this improves the results
![](/img/posts/graphics-programming-weekly-45/spherical_cap_projection.png)
- program for the High-Performance Graphics 2018 in Vancouver has been published
![](/img/posts/graphics-programming-weekly-45/hpg2018_banquet.jpg)
- technique changes shading rate adaptively based on the local content of the image
- partitions the framebuffer into subdivision levels; uses these to estimate the variance between neighboring pixels to decide if new shading information needs to be calculated or if the shading result can be estimated from neighboring pixels
![](/img/posts/graphics-programming-weekly-45/deferred_adaptive_compute_shading.png)
- overview of area-preserving approaches of cube to sphere mapping
- summarizing ability to preserve area and GPU performance
- how to generalize 2D grid-based poisson-disc sampling to the sphere
- provides shadertoy implementations of the presented techniques
![](/img/posts/graphics-programming-weekly-45/cube_to_sphere.png)
- summary of “cube-to-sphere projections for procedural texturing and beyond” paper
![](/img/posts/graphics-programming-weekly-45/cube_to_sphere.png)
- Pix now also support GPU occupancy visualization for all shader types on AMD GPUs
![](/img/posts/graphics-programming-weekly-45/occupancy-feature.png)
- polygons on terrain implemented as image-space decals
- how to apply them when they span a large area on the surface of the earth
- effects of implementation inaccuracies of inverse trigonometric functions between CPU and GPU
![](/img/posts/graphics-programming-weekly-45/project_2d.jpg)
- explains what a context on AMD hardware is and how the driver manages these
- the Radeon GPU Profiler has a tool to analyze when context rolls are causing a performance issue
![](/img/posts/graphics-programming-weekly-45/context_rolls.png)
- a technique that adjusts the temporal accumulation factor dynamically per pixel and frame
- done by calculating per-pixel temporal gradients. These are reconstructed from sparse information that captures the change of luminance between the last and current frame
![](/img/posts/graphics-programming-weekly-45/adaptive_temporal_filtering.jpg)
- Microsoft DirectX Shader Compiler is now also supported on Linux and macOS
- there is a docker image available: https://github.com/gwihlidal/docker-dxc
- low-level C# graphics library now supports SPIR-V shader for all supported backends
- exposes specialization constants on the API level and emulates them at translation time for backends that don’t support them