<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Weekly on Jendrik Illner - 3D Programmer</title>
    <link>https://www.jendrikillner.com/tags/weekly/</link>
    <description>Recent content in Weekly on Jendrik Illner - 3D Programmer</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <copyright>&amp;copy; 2026 · Jendrik Illner</copyright>
    <lastBuildDate>Sun, 12 Apr 2026 04:00:00 +0000</lastBuildDate>
    
        <atom:link href="https://www.jendrikillner.com/tags/weekly/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Graphics Programming weekly - Issue 436 - April 12th, 2026</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-436/</link>
      <pubDate>Sun, 12 Apr 2026 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-436/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpfault.net/posts/sph.html&#34; target=&#34;_blank&#34; id=&#34;Introduction to Spherical Harmonics for Graphics Programmers&#34;&gt;Introduction to Spherical Harmonics for Graphics Programmers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces spherical harmonics as an orthonormal basis for approximating functions defined on a sphere, with a focus on lighting applications&lt;/li&gt;
&lt;li&gt;walks through the mathematical foundations with interactive in-browser examples for cubemap projection&lt;/li&gt;
&lt;li&gt;covers practical pitfalls&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-436/sph-hueshifted.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260415005302/https://gpfault.net/posts/sph.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/abs/2604.03748&#34; target=&#34;_blank&#34; id=&#34;Real-time Neural Six-way Lightmaps&#34;&gt;Real-time Neural Six-way Lightmaps&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;proposes a neural extension of the six-way lightmaps technique to render participating media such as smoke in real time&lt;/li&gt;
&lt;li&gt;generates a guiding map from the camera view via ray marching with a coarse sampling step to capture scattering and silhouette, then uses a neural network to predict the corresponding six lightmaps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-436/neural_pipeline.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260415030336/https://arxiv.org/html/2604.03748v1&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/boksajak/MLPZen&#34; target=&#34;_blank&#34; id=&#34;Real-Time Neural Network Implementation for GPUs&#34;&gt;Real-Time Neural Network Implementation for GPUs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;open-source companion code for the &amp;ldquo;Real-Time Neural Network Implementation for GPUs&amp;rdquo; chapter in the GPU Zen 4 book&lt;/li&gt;
&lt;li&gt;implements multi-layer perceptron (MLP) training and inference in DirectX 12 and HLSL&lt;/li&gt;
&lt;li&gt;presented example learns how to reconstruct an image&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-436/inference_main.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260415030521/https://github.com/boksajak/MLPZen&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/minidxnn-mlp-library-for-dx12/&#34; target=&#34;_blank&#34; id=&#34;Introducing MiniDXNN: MLP library for DirectX 12&#34;&gt;Introducing MiniDXNN: MLP library for DirectX 12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces MiniDXNN, an open-source multi-layer perceptron (MLP) inference library implemented natively in HLSL&lt;/li&gt;
&lt;li&gt;leverages cooperative vector APIs to utilize AMD Radeon GPU matrix cores&lt;/li&gt;
&lt;li&gt;targets performance comparable to dedicated ML frameworks&lt;/li&gt;
&lt;li&gt;The initial release ships with optimized inference kernels and 2D image reconstruction samples&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-436/minidxnn.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260415024013/https://gpuopen.com/learn/minidxnn-mlp-library-for-dx12/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/custom-srp/6-2-0/&#34; target=&#34;_blank&#34; id=&#34;Custom SRP 6.2.0 3D Color LUT&#34;&gt;Custom SRP 6.2.0 3D Color LUT&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;upgrades the color LUT in a Unity Custom SRP from a simulated 2D texture strip to a native 3D texture&lt;/li&gt;
&lt;li&gt;replaces the fragment-shader-based LUT generation with a compute shader that writes directly into the 3D texture&lt;/li&gt;
&lt;li&gt;presents how to write a debug visualizer for 3D LUTs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-436/unity-color-lut.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260415023427/https://catlikecoding.com/unity/custom-srp/6-2-0/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ludicon.com/castano/blog/2026/04/writing-to-compressed-textures-in-metal/&#34; target=&#34;_blank&#34; id=&#34;Writing to Compressed Textures in Metal&#34;&gt;Writing to Compressed Textures in Metal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;describes a workaround for Metal&amp;rsquo;s lack of resource casting by aliasing a buffer and a compressed texture on the same Metal heap allocation, allowing compute shaders to write BC7 blocks directly&lt;/li&gt;
&lt;li&gt;the encoder must produce blocks in the GPU&amp;rsquo;s native swizzle order within 32×32 block macro-tiles&lt;/li&gt;
&lt;li&gt;Benchmarks shows that the approach is around 20% faster than the conventional path&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-436/metal-alias-card.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260415025813/https://www.ludicon.com/castano/blog/2026/04/writing-to-compressed-textures-in-metal/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=HmA0ytPjbK0&#34; target=&#34;_blank&#34; id=&#34;Specialization Constants // Vulkan For Beginners #29 &#34;&gt;Specialization Constants // Vulkan For Beginners #29 &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces Vulkan specialization constants as a mechanism to set compile-time constant values in GLSL shaders at pipeline creation&lt;/li&gt;
&lt;li&gt;explains the Vulkan API structs involved&lt;/li&gt;
&lt;li&gt;walks through a practical example integrating specialization constants into an existing shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-436/vulkan_shader_constants.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=bH--RU6qyTw&#34; target=&#34;_blank&#34; id=&#34;Lighting | Unity Shader Code Basics 06&#34;&gt;Lighting | Unity Shader Code Basics 06&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Implements a Phong-based URP HLSL lighting model&lt;/li&gt;
&lt;li&gt;Covers URP shader variants for shadows and normal maps&lt;/li&gt;
&lt;li&gt;Adds point lights and a shadow mask from dynamic lightmap UVs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-436/unity_shading_model.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mamoniem.com/behind-the-pretty-frames-pragmata/&#34; target=&#34;_blank&#34; id=&#34;Behind the Pretty Frames: PRAGMATA&#34;&gt;Behind the Pretty Frames: PRAGMATA&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;in-depth frame analysis of PRAGMATA, a new Capcom IP built on RE Engine&lt;/li&gt;
&lt;li&gt;walks through the full render pipeline, including Z-prepass, deferred G-buffer with visibility buffer, compute-based SSAO, shadow maps, deferred lighting, ray-traced reflections, strand-based hair simulation and rendering, and the post-process stack&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-436/pragmata_postFeaturedImage_banner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260415030929/https://mamoniem.com/behind-the-pretty-frames-pragmata/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=IM1Dr98f3xU&#34; target=&#34;_blank&#34; id=&#34;Raytracing Voxels in Teardown and Beyond&#34;&gt;Raytracing Voxels in Teardown and Beyond&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains Teardown&amp;rsquo;s unconventional voxel renderer&lt;/li&gt;
&lt;li&gt;rasterizes object bounding boxes and runs DDA-based traversal in the fragment shader&lt;/li&gt;
&lt;li&gt;covers the approach to soft shadows and its limitations that motivated a next-generation rewrite&lt;/li&gt;
&lt;li&gt;presents the Vulkan hardware raytracing successor to overcome quality limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-436/teardown_conference_talk.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ERcUNJ7_s_s&#34; target=&#34;_blank&#34; id=&#34;The fog is lifting, volumetric rendering Enshrouded&#34;&gt;The fog is lifting, volumetric rendering Enshrouded&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;covers distinct media types found in Enshrouded&lt;/li&gt;
&lt;li&gt;based on sparse virtual-texture voxel with BC-compressed 16³ tiles, top-down weather fog, VFX-spawned dynamic volumes, a 2D cloud density map, and water stored as a sparse signed distance field&lt;/li&gt;
&lt;li&gt;presents how to combine the various sources to create the effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-436/fog_pipeline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=_K8c8UmVmBI&amp;amp;list=PLg-UKERBljNw_MWhx-jsBWQu1XcXQgkDS&amp;amp;index=1&#34; target=&#34;_blank&#34; id=&#34;Profiling with PIX | Intel Software&#34;&gt;Profiling with PIX | Intel Software&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces the Intel PIX metrics experience for Xe GPUs&lt;/li&gt;
&lt;li&gt;covering how to use pipeline counters to identify bottlenecks such as excess vertex fetching and high clipper rejection in shadow passes&lt;/li&gt;
&lt;li&gt;explains the Xe GPU architecture&lt;/li&gt;
&lt;li&gt;walks through all major hardware stall reasons, from message FIFO full, instruction fetch, jump dependency, ALU write, and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-436/intel_pix.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Stephen Hill for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 435 - April 5th, 2026</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-435/</link>
      <pubDate>Sun, 05 Apr 2026 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-435/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/zeux/meshoptimizer/releases/tag/v1.1&#34; target=&#34;_blank&#34; id=&#34;meshoptimizer - v1.1&#34;&gt;meshoptimizer - v1.1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces v1.1 of meshoptimizer, introducing two major new features, meshlet compression and opacity micromap rasterization&lt;/li&gt;
&lt;li&gt;The new method compresses meshlet topology, exploiting spatial locality, and provides an example compute shader decoder&lt;/li&gt;
&lt;li&gt;The opacity micromap support generates hardware-ready OMM data from mesh UVs and a texture alpha channel for direct use with VK_EXT_opacity_micromap or DXR 1.2&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-435/meshoptimizer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260406042756/https://github.com/zeux/meshoptimizer/releases/tag/v1.1&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.runevision.com/2026/03/fast-and-gorgeous-erosion-filter.html&#34; target=&#34;_blank&#34; id=&#34;Fast and Gorgeous Erosion Filter&#34;&gt;Fast and Gorgeous Erosion Filter&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a single-pass, GPU-friendly terrain erosion filter that produces branching gullies and ridges, making it suitable for infinite or chunked terrain generation&lt;/li&gt;
&lt;li&gt;the technique uses gradient-aligned sine wave stripes subdivided into Voronoi cells to form gullies;&lt;/li&gt;
&lt;li&gt;Several refinements are described to preserve crisp peaks and valleys&lt;/li&gt;
&lt;li&gt;The Shadertoy example is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-435/ErodedTerrain.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260402110319/https://blog.runevision.com/2026/03/fast-and-gorgeous-erosion-filter.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.pinwheelstud.io/post/how-to-color-low-poly-terrain-with-gradients-and-curves&#34; target=&#34;_blank&#34; id=&#34;How to Color Low Poly Terrain with Gradients and Curves&#34;&gt;How to Color Low Poly Terrain with Gradients and Curves&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains a three-control approach to color low-poly terrain driven entirely by geometry: a slope gradient, a height gradient, and a blend curve that determines which of the two governs each elevation band&lt;/li&gt;
&lt;li&gt;demonstrates the approach in Unity &amp;ldquo;Polaris&amp;rdquo; terrain tool&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-435/terrain_semantics.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260406043120/https://www.pinwheelstud.io/post/how-to-color-low-poly-terrain-with-gradients-and-curves&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://leduyquang753.com/blog/2026/4/4/rendering-arbitrary-scale-emojis-using-the-slug-algorithm&#34; target=&#34;_blank&#34; id=&#34;Rendering arbitrary-scale emojis using the Slug algorithm&#34;&gt;Rendering arbitrary-scale emojis using the Slug algorithm&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;describes how to extend the Slug algorithm&amp;rsquo;s GPU implementation to render vector color emojis at arbitrary scale with no prerendered bitmaps&lt;/li&gt;
&lt;li&gt;covers how to deal with COLRv0 (flat color) and COLRv1 (gradient)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-435/slug_emoji.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260406043756/https://leduyquang753.com/blog/2026/4/4/rendering-arbitrary-scale-emojis-using-the-slug-algorithm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/shitagaki-lab/see-through&#34; target=&#34;_blank&#34; id=&#34;Single-image Layer Decomposition for Anime Characters&#34;&gt;Single-image Layer Decomposition for Anime Characters&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a framework that decomposes a single static anime illustration into a manipulatable  model&lt;/li&gt;
&lt;li&gt;discussed as a starting point for artists to eliminate manual segmentation work&lt;/li&gt;
&lt;li&gt;uses a diffusion-based transparent layer generation model combined with a fine-tuned depth estimator&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-435/decomposition.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260401162636/https://github.com/shitagaki-lab/see-through&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=RgMbrszzpN8&#34; target=&#34;_blank&#34; id=&#34;[video] GPU Texture Compression Explained&#34;&gt;[video] GPU Texture Compression Explained&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;interview with Ignacio Castaño covering the development of Spark, a real-time GPU-based texture encoder for block-compressed formats&lt;/li&gt;
&lt;li&gt;explains why GPU-native formats require random per-block access and therefore cannot use entropy-coded formats like JPEG&lt;/li&gt;
&lt;li&gt;details the challenges of encoding ASTC on mobile GPUs&lt;/li&gt;
&lt;li&gt;discusses the main practical use cases that emerged for Spark&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-435/gpu_texture_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=dfRownfn6NY&#34; target=&#34;_blank&#34; id=&#34;[video] Slang Shading Language Demo &amp;amp; Single-Source Graphics Pipeline Explained&#34;&gt;[video] Slang Shading Language Demo &amp;amp; Single-Source Graphics Pipeline Explained&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;GDC 2026 session showing how Slang modernizes graphics development through generics, interfaces, and first-class differentiable programming&lt;/li&gt;
&lt;li&gt;presents a demo of Slang-compiled shaders running on current-gen console devkits&lt;/li&gt;
&lt;li&gt;deconstructs how Slang&amp;rsquo;s intermediate representation maps to console APIs&lt;/li&gt;
&lt;li&gt;providing a blueprint for extending the language to other systems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-435/slang_ps5_backend.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=0IrzX4LDIx8&amp;amp;list=PL4FII4B-zM0cfs8pQHOaq6H8fjgIQ5InZ&amp;amp;index=3&#34; target=&#34;_blank&#34; id=&#34;The Future of Path Tracing | Best Practices, Optimizations &amp;amp; Future Standards&#34;&gt;The Future of Path Tracing | Best Practices, Optimizations &amp;amp; Future Standards&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;covering the current state of real-time path tracing, includingShader Execution Reordering, RTX Mega Geometry, DLSS, and RTX Neural Shading&lt;/li&gt;
&lt;li&gt;presents best practices, optimization strategies&lt;/li&gt;
&lt;li&gt;previews techniques envisioned for next-generation path-traced visuals&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-435/path_tracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=4HohF_YHchI&amp;amp;list=PL4FII4B-zM0cfs8pQHOaq6H8fjgIQ5InZ&amp;amp;index=14&#34; target=&#34;_blank&#34; id=&#34;Scaling Game Performance Analysis with NVIDIA Nsight&#34;&gt;Scaling Game Performance Analysis with NVIDIA Nsight&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents how NVIDIA uses Nsight in daily validation systems to analyze many game titles across a wide matrix of environments, catching performance regressions and identifying optimization opportunities at scale&lt;/li&gt;
&lt;li&gt;walks through concrete examples of real game optimization problems&lt;/li&gt;
&lt;li&gt;provides a deeper look at the NVIDIA hardware capabilities behind ray tracing and other RTX features&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-435/rtx_profiling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuhelp.dev/posts/vk_fill_image/&#34; target=&#34;_blank&#34; id=&#34;Filling a Vulkan image using only CPU-recorded commands &#34;&gt;Filling a Vulkan image using only CPU-recorded commands &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an April 1st experiment exploring whether a Vulkan image can be filled per-pixel using only CPU-recorded commands&lt;/li&gt;
&lt;li&gt;achieves this by aliasing a VkBuffer and a VkImage to the same VkDeviceMemory allocation and writing through vkCmdFillBuffer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-435/vk_fill_image.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260406043157/https://gpuhelp.dev/posts/vk_fill_image/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/jonasmr/demote_tracker&#34; target=&#34;_blank&#34; id=&#34;demote_tracker is a commandline utility to visualize demoted graphics card memory &#34;&gt;demote_tracker is a commandline utility to visualize demoted graphics card memory &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a small Win32 command-line tool for tracking GPU memory usage and demoted memory across all running processes on Windows&lt;/li&gt;
&lt;li&gt;visualizes how much VRAM has been demoted to system RAM&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-435/demote_tracker.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260406043704/https://github.com/jonasmr/demote_tracker?tab=readme-ov-file&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Stephen Hill for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 434 - March 29th, 2026</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-434/</link>
      <pubDate>Sun, 29 Mar 2026 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-434/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@reinigdavid/old-school-rendering-rant-tomb-raider-913f7837de7e&#34; target=&#34;_blank&#34; id=&#34;Old school rendering rant - Tomb Raider&#34;&gt;Old school rendering rant - Tomb Raider&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;analyzes the rendering techniques used in Tomb Raider III, running on hardware without T&amp;amp;L or programmable shaders&lt;/li&gt;
&lt;li&gt;covers portal-based room traversal for visibility culling, texture atlases with 256×256 palettized tiles, and distance fog to mask geometry cutoffs&lt;/li&gt;
&lt;li&gt;describes how static lighting was baked into vertex colors, and how color-key transparency and flipbook texture animations achieved dynamic-looking effects on constrained hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-434/tomb_raider_portals.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260328203725/https://medium.com/@reinigdavid/old-school-rendering-rant-tomb-raider-913f7837de7e&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ludicon.com/castano/blog/2026/03/hardware-image-compression/&#34; target=&#34;_blank&#34; id=&#34;Hardware Image Compression&#34;&gt;Hardware Image Compression&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;compares the three hardware lossy image compression formats: Apple&amp;rsquo;s Metal lossy, ARM&amp;rsquo;s AFRC, and ImgTec&amp;rsquo;s PVRIC4&lt;/li&gt;
&lt;li&gt;benchmarks quality and throughput against Spark across R8, RG8, and RGBA8 formats&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-434/spark-combined.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260330172254/https://www.ludicon.com/castano/blog/2026/03/hardware-image-compression/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=36qAeOAB_fI&#34; target=&#34;_blank&#34; id=&#34;[video] PS5 Pro Upgraded PSSR &amp;#43; Enhance Image Quality Mode Analysis - Over 20 Games Tested&#34;&gt;[video] PS5 Pro Upgraded PSSR &amp;#43; Enhance Image Quality Mode Analysis - Over 20 Games Tested&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Digital Foundry tests the upgraded PSSR upscaler across various games&lt;/li&gt;
&lt;li&gt;revisits previously contentious PSSR-supported games using the new &amp;ldquo;Enhance Image Quality&amp;rdquo; dashboard mode and evaluates the improvements, remaining problems, and any regressions&lt;/li&gt;
&lt;li&gt;discusses whether Sony should have enabled the new PSSR by default and whether it qualifies as the definitive upscaling solution on PS5 Pro&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-434/pssr.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/memononen/data_inheritance&#34; target=&#34;_blank&#34; id=&#34;Data Inheritance&#34;&gt;Data Inheritance&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;article and prototype implementation explaining how to build data inheritance, where derived data inherits from a base, and overrides are explicitly tracked per property&lt;/li&gt;
&lt;li&gt;covers how to extend the concept from simple scalar fields to collections&lt;/li&gt;
&lt;li&gt;discusses the associated UI challenges such as visualizing override indicators, handling removed items, and providing granular revert controls&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-434/data_inheritance.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260331030450/https://github.com/memononen/data_inheritance&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=hV8GEZrDe8U&#34; target=&#34;_blank&#34; id=&#34;[video] Landscape Puddles - Terrain Shaders - Episode 19&#34;&gt;[video] Landscape Puddles - Terrain Shaders - Episode 19&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new part of the Terrain Shaders series, showing how to add puddle effects to landscapes in Unreal Engine&lt;/li&gt;
&lt;li&gt;follows on from the previous episode, which covered rain effects on terrain in Unity&lt;/li&gt;
&lt;li&gt;demonstrates how to blend puddle wetness and reflections into a landscape material shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-434/water_puddle.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=LvRc93VfWFg&#34; target=&#34;_blank&#34; id=&#34;[video] Better SDF texture for anime face shading in blender &#34;&gt;[video] Better SDF texture for anime face shading in blender &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tutorial on using Signed Distance Field (SDF) textures to drive shadow placement on anime-style face shading&lt;/li&gt;
&lt;li&gt;SDF face textures encode where shadows should appear on the face relative to light direction&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-434/face_shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=fJeofN-0xJ4&#34; target=&#34;_blank&#34; id=&#34;[video] What Is Clean Topology? Part 2: Specific Examples&#34;&gt;[video] What Is Clean Topology? Part 2: Specific Examples&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;follow-up to part 1 on what constitutes a clean mesh in 3D modeling&lt;/li&gt;
&lt;li&gt;walks through specific examples of how to clean up meshes for film, games, and other use cases&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-434/clean_topology.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ngrok.com/blog/quantization&#34; target=&#34;_blank&#34; id=&#34;Quantization from the ground up&#34;&gt;Quantization from the ground up&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how LLM quantization works, covering how floats are stored and why smaller formats (float16, bfloat16, float8, float4) can replace float32 for model weights&lt;/li&gt;
&lt;li&gt;describes symmetric and asymmetric quantization as more effective alternatives to simple rounding&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-434/float_approximation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260330223549/https://ngrok.com/blog/quantization&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.vizuaranewsletter.com/p/vision-transformers&#34; target=&#34;_blank&#34; id=&#34;Vision Transformers&#34;&gt;Vision Transformers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains the Vision Transformer (ViT) architecture&lt;/li&gt;
&lt;li&gt;covers patch embeddings, learnable positional encodings, the class token, and the encoder-only classification head&lt;/li&gt;
&lt;li&gt;walkthrough for a hands-on fine-tuning example&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-434/vision_transformer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260331025010/https://www.vizuaranewsletter.com/p/vision-transformers&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=bZ6s0-EQp8M&#34; target=&#34;_blank&#34; id=&#34;[video] Why Boycott SIGGRAPH Asia 2026?&#34;&gt;[video] Why Boycott SIGGRAPH Asia 2026?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;personal statement on why SIGGRAPH Asia 2026 should be boycotted due to Malaysia being chosen as the host country&lt;/li&gt;
&lt;li&gt;criticizes the official SIGGRAPH for framing LGBTQ+ inclusion as a matter of cultural opinion rather than membership safety&lt;/li&gt;
&lt;li&gt;calls on SIGGRAPH leadership to relocate the conference and to introduce a structural venue review process that consults at-risk communities&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-434/siggraph_asia.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Stephen Hill for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 433 - March 22nd, 2026</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-433/</link>
      <pubDate>Sun, 22 Mar 2026 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-433/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://matejlou.blog/2025/02/11/analytic-fog-rendering-with-volumetric-primitives/&#34; target=&#34;_blank&#34; id=&#34;Analytic Fog Rendering With Volumetric Primitives&#34;&gt;Analytic Fog Rendering With Volumetric Primitives&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents an analytic approach to rendering localized fog volumes with varying density using radial density functions bounded by geometric primitives&lt;/li&gt;
&lt;li&gt;derives closed-form antiderivatives for each density function&lt;/li&gt;
&lt;li&gt;linear transforms applied to the ray allow volumes to be arbitrarily scaled and rotated&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-433/fog-primitive.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260308030827/https://matejlou.blog/2025/02/11/analytic-fog-rendering-with-volumetric-primitives/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.danielpokladek.me/posts/shaders/2026/pool-ball/&#34; target=&#34;_blank&#34; id=&#34;Procedural Pool Balls&#34;&gt;Procedural Pool Balls&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;uses 2D SDFs in a ShaderGraph shader to procedurally draw pool balls&lt;/li&gt;
&lt;li&gt;presents how to apply the ball numbercorrectly on both the front and back of the sphere&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-433/ball_examples.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260324014516/https://www.danielpokladek.me/posts/shaders/2026/pool-ball/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://terathon.com/blog/decade-slug.html&#34; target=&#34;_blank&#34; id=&#34;A Decade of Slug&#34;&gt;A Decade of Slug&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Eric Lengyel reflects on 10 years of the Slug algorithm for GPU text rendering directly from Bézier curve data, detailing evolutionary simplifications since the 2017 JCGT paper&lt;/li&gt;
&lt;li&gt;introduces &amp;ldquo;dynamic dilation&amp;rdquo; for antialiasing without any manually-tuned constant&lt;/li&gt;
&lt;li&gt;announces that the Slug algorithm patent is permanently dedicated to the public domain with reference HLSL shaders—including dynamic dilation—released on GitHub under the MIT license&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-433/slug_algo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260323144822/https://terathon.com/blog/decade-slug.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/diffusionstudio/slug-webgpu&#34; target=&#34;_blank&#34; id=&#34;Slug Algorithm (WebGPU)&#34;&gt;Slug Algorithm (WebGPU)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;WebGPU/WGSL port of Eric Lengyel&amp;rsquo;s Slug text rendering algorithm&lt;/li&gt;
&lt;li&gt;implements the CPU-side pipeline that extracts Bézier curves, and partitions them into vertical and horizontal bands;&lt;/li&gt;
&lt;li&gt;the WGSL shaders then evaluate the bands to rasterize glyphs on the GPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-433/slug-preview.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260324015213/https://github.com/diffusionstudio/slug-webgpu&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://circle-group.github.io/research/DSG/&#34; target=&#34;_blank&#34; id=&#34;Parallelised Differentiable Straightest Geodesics for 3D Meshes &#34;&gt;Parallelised Differentiable Straightest Geodesics for 3D Meshes &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;CVPR 2026 paper presenting a parallelised CUDA implementation of differentiable geodesics on 3D mesh surfaces&lt;/li&gt;
&lt;li&gt;proposes two differentiation methods: an Extrinsic Proxy for fast gradient approximation and Geodesic Finite Differences for higher-accuracy&lt;/li&gt;
&lt;li&gt;demonstrates the technique in different applications&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-433/CVT_combined.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260324013916/https://circle-group.github.io/research/DSG/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/enhancing-directx-testing-with-smoldr/&#34; target=&#34;_blank&#34; id=&#34;Enhancing DirectX Testing with AMD Smoldr&#34;&gt;Enhancing DirectX Testing with AMD Smoldr&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD releases Smoldr, an open-source scripting tool for running DirectX 12 compute and raytracing shaders without writing any C++&lt;/li&gt;
&lt;li&gt;a plain-text script defines HLSL sources, buffers, root signatures, pipelines, and dispatches;&lt;/li&gt;
&lt;li&gt;basic verifications commands allow verifying and printing output values for testing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-433/smoldr.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260319025703/https://gpuopen.com/learn/enhancing-directx-testing-with-smoldr/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/updated-configuring-vulkan-layers-white-paper/&#34; target=&#34;_blank&#34; id=&#34;UPDATED! Configuring Vulkan Layers White Paper&#34;&gt;UPDATED! Configuring Vulkan Layers White Paper&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;White paper has been updated to reflect improvements introduced in Vulkan SDK 1.4.335&lt;/li&gt;
&lt;li&gt;Vulkan Configurator can now export a tested layer configuration directly into all supported formats, unifying layer configuration behaviour&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-433/vulkan-config-layers.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260324014353/https://www.lunarg.com/updated-configuring-vulkan-layers-white-paper/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.apple.com/videos/play/tech-talks/111431/&#34; target=&#34;_blank&#34; id=&#34;Boost your graphics performance with the M5 and A19 GPUs&#34;&gt;Boost your graphics performance with the M5 and A19 GPUs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;deep dive into the graphics features of Apple&amp;rsquo;s M5 and A19 GPUs targeting games and pro app workflows&lt;/li&gt;
&lt;li&gt;covers hardware design updates including universal texture compression support and an upgraded hardware ray tracing unit&lt;/li&gt;
&lt;li&gt;introduces new profiling tools to help developers identify and exploit performance opportunities on M5 GPUs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-433/apple_developer_m5_a19.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260322192451/https://developer.apple.com/videos/play/tech-talks/111431/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://thegeeko.me/blog/nvme-amdgpu-p2pdma/&#34; target=&#34;_blank&#34; id=&#34;AMD GPU-Initiated I/O&#34;&gt;AMD GPU-Initiated I/O&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explores making an AMD GPU control an NVMe device directly, bypassing the CPU for I/O submission and data placement into VRAM&lt;/li&gt;
&lt;li&gt;discussins and presents the kernel-level paths to allow access to the required pages from DMA and GPU shader access&lt;/li&gt;
&lt;li&gt;documents the cache coherency challenges encountered&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-433/dma_hardware.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260324013717/https://thegeeko.me/blog/nvme-amdgpu-p2pdma/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=KtxiuFe83Hg&#34; target=&#34;_blank&#34; id=&#34;[video] Can Fiddling With Meshes Improve Game’s Performance?&#34;&gt;[video] Can Fiddling With Meshes Improve Game’s Performance?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of meshoptimizer, covering the full offline mesh processing pipeline&lt;/li&gt;
&lt;li&gt;covers mesh shader meshlet generation, mesh simplification for LOD hierarchies, specialized mesh compression&lt;/li&gt;
&lt;li&gt;additionally talks about cluster_load.h, a component for hierarchical continuous LOD&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-433/mesh_optimizer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=aU3tr7KvjW0&#34; target=&#34;_blank&#34; id=&#34;[video] Rain Effects On Terrain - Terrain Shaders - Episode 18&#34;&gt;[video] Rain Effects On Terrain - Terrain Shaders - Episode 18&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video showing how to add rain effects (puddles, raindrops, ripples) to a Unity terrain shader&lt;/li&gt;
&lt;li&gt;adapts the built-in rain floor subgraph for the needs of the trrain&lt;/li&gt;
&lt;li&gt;improves puddle by modulating the puddle mask with terrain height data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-433/rain_terrain.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=4ZlwTtgbgVA&#34; target=&#34;_blank&#34; id=&#34;[video] Hands-On With DLSS 5: Our First Look At Nvidia&amp;#39;s Next-Gen Photo-Realistic Lighting&#34;&gt;[video] Hands-On With DLSS 5: Our First Look At Nvidia&amp;#39;s Next-Gen Photo-Realistic Lighting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Digital Foundry&amp;rsquo;s first hands-on look at DLSS 5&lt;/li&gt;
&lt;li&gt;demos across Resident Evil Re:Verse, Starfield, Oblivion Remastered, and Assassin&amp;rsquo;s Creed Shadows&lt;/li&gt;
&lt;li&gt;currently runs on dual RTX 5090 GPUs in demo form; goal is reduce hardware requirements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-433/dlss5.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 432 - March 15th, 2026</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-432/</link>
      <pubDate>Sun, 15 Mar 2026 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-432/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.microsoft.com/en-us/games/articles/2026/03/gdc-2026-directx-bringing-console-level-gpu-tools-to-windows/&#34; target=&#34;_blank&#34; id=&#34;GDC 2026: DirectX is Bringing Console-Level Developer Tools to Windows&#34;&gt;GDC 2026: DirectX is Bringing Console-Level Developer Tools to Windows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Microsoft&amp;rsquo;s official GDC 2026 announcement summary covering the DirectX tooling updates&lt;/li&gt;
&lt;li&gt;introduces DirectX Dump Files (.dxdmp) that capture hardware state, driver/OS state, and custom game data on GPU crash&lt;/li&gt;
&lt;li&gt;also announces Shader Explorer in PIX for offline cross-GPU static shader analysis, GPU hardware counters in PIX System Monitor, a new GPU capture file format, and the future goal of live on hardware shader debugging&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-432/DirectXConsoleTools_Hero.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260313215046/https://developer.microsoft.com/en-us/games/articles/2026/03/gdc-2026-directx-bringing-console-level-gpu-tools-to-windows/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/amd-microsoft-gdc-2026/&#34; target=&#34;_blank&#34; id=&#34;AMD and Microsoft partner on DirectX ML, DirectStorage, and developer tools at GDC 2026&#34;&gt;AMD and Microsoft partner on DirectX ML, DirectStorage, and developer tools at GDC 2026&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD&amp;rsquo;s overview of their GDC 2026 collaboration with Microsoft&lt;/li&gt;
&lt;li&gt;details AMD&amp;rsquo;s support for the new DirectX ML features: DX Linear Algebra accessing WMMA cores on RDNA hardware directly from HLSL, and the DirectX Compute Graph Compiler (CGC)&lt;/li&gt;
&lt;li&gt;lists hardware support for the newly released features&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-432/pix_markers_rgp.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260319025650/https://gpuopen.com/learn/amd-microsoft-gdc-2026/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1801_directx_12_news_from_gdc_2026_-_my_comments&#34; target=&#34;_blank&#34; id=&#34;DirectX 12 News from GDC 2026 - My Comments&#34;&gt;DirectX 12 News from GDC 2026 - My Comments&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;author summaries and comments on Microsoft&amp;rsquo;s D3D12 announcements from GDC 2026&lt;/li&gt;
&lt;li&gt;covers five areas: GPU debugging tools, ML advancements, Advanced Shader Delivery, DirectStorage 1.4, and DXR 2.0&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-432/IntelShaderExplorer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260316063543/https://asawicki.info/news_1801_directx_12_news_from_gdc_2026_-_my_comments&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://kstocky.github.io/blog/sls-2026-trip-report/&#34; target=&#34;_blank&#34; id=&#34;Shading Languages Symposium 2026 Trip Report&#34;&gt;Shading Languages Symposium 2026 Trip Report&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Keith Stockdale shares his experience at the first Shading Languages Symposium&lt;/li&gt;
&lt;li&gt;recurring topics across talks included: shader debugging pain points and the lack of printf in HLSL, testing frameworks for shader code, shareable/modular shader libraries&lt;/li&gt;
&lt;li&gt;notable discussions included whether shading languages should converge with C++&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-432/lecture-theatre.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260319025806/https://kstocky.github.io/blog/sls-2026-trip-report/sls2026-the-symposium/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jendrikillner.com/gtc-2026/&#34; target=&#34;_blank&#34; id=&#34;GTC 2026&#34;&gt;GTC 2026&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;NVIDIA GTC is starting March 16  &lt;a href=&#34;https://nvda.ws/4aAcg3k&#34; target=&#34;_blank&#34;&gt;attend virtually&lt;/a&gt; for free.&lt;/li&gt;
&lt;li&gt;Presenting the latest breakthroughs in generative AI, accelerated computing, simulation technology, and more.&lt;/li&gt;
&lt;li&gt;My top sessions: OpenUSD Crash Course (DLIW82272), Fundamentals of GPU-Accelerated Workflows (DLIW82265) and &lt;a href=&#34;https://www.jendrikillner.com/gtc-2026/&#34;&gt;more&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Win an RTX Pro 6000 GPU and see my full session recommendations &lt;a href=&#34;https://www.jendrikillner.com/gtc-2026/&#34;&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/sponsored/gtc_2026.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260310050832/https://www.jendrikillner.com/gtc-2026/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphicrants.blogspot.com/2026/02/nanite-reyes.html&#34; target=&#34;_blank&#34; id=&#34;Nanite &amp;#43; Reyes&#34;&gt;Nanite &amp;#43; Reyes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Brian Karis details how Reyes-style displacement mapping tessellation was integrated into Nanite&lt;/li&gt;
&lt;li&gt;explains the new pipeline stages and how they fit into the existing structure&lt;/li&gt;
&lt;li&gt;discusses key implementation challenges, including bounding displaced patches for culling, computing texture UV derivatives, and vectorizing scalar-heavy per-patch work across multiple patches per wave&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-432/nanite_raster_loop.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260310060017/https://graphicrants.blogspot.com/2026/02/nanite-reyes.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphicrants.blogspot.com/2026/03/variable-sized-work.html&#34; target=&#34;_blank&#34; id=&#34;Variable sized work&#34;&gt;Variable sized work&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses the problem of efficiently handling variable-sized work&lt;/li&gt;
&lt;li&gt;introduces a wave-local work distribution technique where the producer data stays in registers and consumers use WaveReadLaneAt to read it, avoiding costly round-trips to global memory queues&lt;/li&gt;
&lt;li&gt;applies this primitive in three places within the tessellation pipeline&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-432/variableWorkSize.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260315215030/https://graphicrants.blogspot.com/2026/03/variable-sized-work.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alextardif.com/ParticipatingMedia.html&#34; target=&#34;_blank&#34; id=&#34;GPU Tracing Participating Media&#34;&gt;GPU Tracing Participating Media&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Presents a well-commented HLSL implementation of participating media concepts from Physically Based Rendering (PBRT 4ed), covering homogeneous and heterogeneous volumes with absorption, scattering, and emission using delta/null tracking&lt;/li&gt;
&lt;li&gt;shares render results showing volumetric clouds, colored cubes, and emissive volumes&lt;/li&gt;
&lt;li&gt;documents practical implementation pitfalls&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-432/ChromaticBunny.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260319025124/https://alextardif.com/ParticipatingMedia.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pointersgonewild.com/2026-03-06-a-recursive-algorithm-to-render-signed-distance-fields/&#34; target=&#34;_blank&#34; id=&#34;A Recursive Algorithm to Render Signed Distance Fields&#34;&gt;A Recursive Algorithm to Render Signed Distance Fields&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a recursive divide-and-conquer algorithm for rendering SDFs on CPU that advances all rays in a view frustum quad simultaneously, recursively subdividing into four quads only when the shared march step becomes too small&lt;/li&gt;
&lt;li&gt;extends the algorithm with a patch-level bilinear interpolation shading mode&lt;/li&gt;
&lt;li&gt;demonstrates 3–4x fewer samples per pixel versus standard raymarching&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-432/sdf_cube.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260315083228/https://pointersgonewild.com/2026-03-06-a-recursive-algorithm-to-render-signed-distance-fields/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=kJtOHNXjP90&#34; target=&#34;_blank&#34; id=&#34;SDF game engine? | Mike Turitzin&#34;&gt;SDF game engine? | Mike Turitzin&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Mike Turitzin discusses his journey back into graphics programming and the motivation behind building an SDF-based game engine&lt;/li&gt;
&lt;li&gt;explains how the engine uses signed distance fields with sphere tracing for rendering and WebGPU as the graphics API&lt;/li&gt;
&lt;li&gt;shares programming philosophies around minimalism, investing deeply in chosen tools, and keeping game development the primary focus rather than falling into the engine-development trap&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-432/podast_sdf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dylanebert.com/texel-splatting/&#34; target=&#34;_blank&#34; id=&#34;Texel Splatting&#34;&gt;Texel Splatting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a technique for perspective-stable 3D pixel art by rendering scene geometry into a cubemap from a grid-snapped fixed probe origin, then splatting each visible cubemap texel to screen as a world-space quad&lt;/li&gt;
&lt;li&gt;cubemap indexing provides rotation invariance, while snapping the probe origin to a world grid provides translation invariance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-432/pair-texel-splatting.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260316030538/https://dylanebert.com/texel-splatting/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/adobe/openpbr-bsdf&#34; target=&#34;_blank&#34; id=&#34;Adobe&amp;#39;s reference implementation of the OpenPBR BSDF &#34;&gt;Adobe&amp;#39;s reference implementation of the OpenPBR BSDF &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Adobe open-sources their production OpenPBR 1.0 BSDF implementation extracted from their Eclair renderer under Apache 2.0&lt;/li&gt;
&lt;li&gt;single header design targeting C++, GLSL, CUDA, MSL, and Slang via a thin macro interop layer&lt;/li&gt;
&lt;li&gt;LUTs support two modes: self-contained constant arrays (default, no texture bindings needed) or GPU texture sampling (smaller shader binary, hardware filtering)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-432/OpenPBR_title.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260312161804/https://github.com/adobe/openpbr-bsdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/soufianekhiat/qaws&#34; target=&#34;_blank&#34; id=&#34;Qaws - C11 library for creating, evaluating, sampling, traversing, and inspecting parametric curves and surfaces in 2D and 3D&#34;&gt;Qaws - C11 library for creating, evaluating, sampling, traversing, and inspecting parametric curves and surfaces in 2D and 3D&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;dependency-free C11 library covering 13 curve families (Bezier, Hermite, Catmull-Rom, B-Spline, NURBS, clothoid, subdivision, and more) and 5 surface types (Bezier patch, B-Spline, NURBS, swept, ruled) with a uniform create/evaluate/sample/traverse/inspect API&lt;/li&gt;
&lt;li&gt;evaluation kernels are header-only and compile unchanged across four backends (C, HLSL, GLSL, and Halide)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-432/soufianekhiat.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260319025239/https://github.com/soufianekhiat/qaws&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://16bpp.net/blog/post/even-faster-asin-was-staring-right-at-me/&#34; target=&#34;_blank&#34; id=&#34;Even Faster asin() Was Staring Right At Me&#34;&gt;Even Faster asin() Was Staring Right At Me&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article presents a fast approximation to asin&lt;/li&gt;
&lt;li&gt;follow-up to a previous article on the same topic&lt;/li&gt;
&lt;li&gt;benchmarks across Intel i7, AMD Ryzen 9, and Apple M4 to show the effects of micro optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-432/asin_approx_with_ec.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260317034410/https://16bpp.net/blog/post/even-faster-asin-was-staring-right-at-me/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 431 - March 8th, 2026</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-431/</link>
      <pubDate>Sun, 08 Mar 2026 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-431/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://imadrahmoune.com/pbr/&#34; target=&#34;_blank&#34; id=&#34;Physically based rendering from first principles&#34;&gt;Physically based rendering from first principles&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article builds up PBR theory from the physics of light&lt;/li&gt;
&lt;li&gt;covers electromagnetic radiation, Fresnel equations, Snell&amp;rsquo;s law, and the microfacet model, distinguishing metals from dielectrics&lt;/li&gt;
&lt;li&gt;derives the Cook-Torrance BRDF step by step, including the GGX Normal Distribution Function, Schlick-GGX Geometric Function, and Fresnel-Schlick approximation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-431/pbr-shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260309041455/https://imadrahmoune.com/pbr/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://forwardscattering.org/post/72&#34; target=&#34;_blank&#34; id=&#34;Fog rendering&#34;&gt;Fog rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;derives fog color lerp from the volumetric rendering equation&lt;/li&gt;
&lt;li&gt;extends the derivation to exponential height fog by computing optical depth for an extinction coefficient&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-431/height_fog.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260309044039/https://forwardscattering.org/post/72&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://irradiance.ca/posts/microshadowing-part2/&#34; target=&#34;_blank&#34; id=&#34;Improving Direct Lighting Material Occlusion - Part 2&#34;&gt;Improving Direct Lighting Material Occlusion - Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a VNDF-based micro-shadowing approach that operates at the microfacet level rather than the geometric surface level&lt;/li&gt;
&lt;li&gt;introduces a LUT-based real-time approximation parameterized by Visibility, Roughness, as a practical alternative to per-light VNDF sampling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-431/micro_occlusion.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.rastergrid.com/blog/gpu-tech/2026/03/vulkan-memory-barriers-and-image-layouts-explained/&#34; target=&#34;_blank&#34; id=&#34;Vulkan memory barriers and image layouts explained &#34;&gt;Vulkan memory barriers and image layouts explained &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains pipeline barriers as a combination of three orthogonal aspects: execution control, cache control, and image layout transitions&lt;/li&gt;
&lt;li&gt;details how image layouts abstract GPU-specific compression schemes such as fast clears, delta color compression (DCC), and hierarchical depth (Hi-Z)&lt;/li&gt;
&lt;li&gt;demonstrates that applications rarely need to track image layouts at runtime; instead, each image has a natural default layout derived from its purpose, requiring only temporary transitions to other layouts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-431/PipelineBarrierByRegion.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260309045456/https://www.rastergrid.com/blog/gpu-tech/2026/03/vulkan-memory-barriers-and-image-layouts-explained/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jendrikillner.com/gtc-2026/&#34; target=&#34;_blank&#34; id=&#34;GTC 2026&#34;&gt;GTC 2026&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;NVIDIA GTC is starting March 16  &lt;a href=&#34;https://nvda.ws/4aAcg3k&#34; target=&#34;_blank&#34;&gt;attend virtually&lt;/a&gt; for free.&lt;/li&gt;
&lt;li&gt;Presenting the latest breakthroughs in generative AI, accelerated computing, simulation technology, and more.&lt;/li&gt;
&lt;li&gt;My top sessions: OpenUSD Crash Course (DLIW82272), Fundamentals of GPU-Accelerated Workflows (DLIW82265) and &lt;a href=&#34;https://www.jendrikillner.com/gtc-2026/&#34;&gt;more&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Win an RTX Pro 6000 GPU and see my full session recommendations &lt;a href=&#34;https://www.jendrikillner.com/gtc-2026/&#34;&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/sponsored/gtc_2026.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260310050832/https://www.jendrikillner.com/gtc-2026/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rifintidhamar.github.io/posts/2026/02/Per-Texel-Light/&#34; target=&#34;_blank&#34; id=&#34;Per Texel Lighting&#34;&gt;Per Texel Lighting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;describes a compute shader implementation that calculates lighting per-texel&lt;/li&gt;
&lt;li&gt;uses barycentric coordinates to map every texel from UV space to world space&lt;/li&gt;
&lt;li&gt;supports hard shadows and proximity-based dynamic blurred shadows via ray-triangle intersection tests, combining baked and real-time lighting passes into a final texture&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-431/WGraphTri.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260309041940/https://rifintidhamar.github.io/posts/2026/02/Per-Texel-Light/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://amini-allight.org/post/dispatching-hundreds-of-thousands-of-compute-tasks&#34; target=&#34;_blank&#34; id=&#34;Dispatching Hundreds of Thousands of Compute Tasks&#34;&gt;Dispatching Hundreds of Thousands of Compute Tasks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;describes a Vulkan voxel spring-mass simulation for GPU-accelerated audio generation that requires a massive amount of dispatches&lt;/li&gt;
&lt;li&gt;resolves the command buffer recording bottleneck by recording a short reusable block, dispatches with VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, and submits it multiple times&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-431/dispatching-hundreds-of-thousands-of-compute-tasks.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260309045004/https://amini-allight.org/post/dispatching-hundreds-of-thousands-of-compute-tasks&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cowleyforniastudios.com/2026/03/08/announcing-eyot/&#34; target=&#34;_blank&#34; id=&#34;Introducing Eyot - A programming language where the GPU is just another thread&#34;&gt;Introducing Eyot - A programming language where the GPU is just another thread&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces Eyot, a programming language that aims to make offloading work to the GPU simple&lt;/li&gt;
&lt;li&gt;compiled for both CPU and GPU with the runtime automatically handling memory allocation, kernel compilation, and scheduling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-431/Eyot.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260308122747/https://cowleyforniastudios.com/2026/03/08/announcing-eyot/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bun3d.com/tutorials/uv/godot_manipulating_uvs/&#34; target=&#34;_blank&#34; id=&#34;Moving Scaling and Rotating UVs in Godot Shaders | Tutorial&#34;&gt;Moving Scaling and Rotating UVs in Godot Shaders | Tutorial&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;beginner-friendly tutorial covering UV translation, scaling, and rotation inside Godot&lt;/li&gt;
&lt;li&gt;shows the effects of scaling UV coordinates&lt;/li&gt;
&lt;li&gt;demonstrates anchoring transformations to an arbitrary pivot&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-431/feature_hu_bcc66cb2de665113.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260309044346/https://bun3d.com/tutorials/uv/godot_manipulating_uvs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=fXakIV1OFes&#34; target=&#34;_blank&#34; id=&#34;[video] Visibility Buffer and Deferred Rendering in DOOM: The Dark Ages &#34;&gt;[video] Visibility Buffer and Deferred Rendering in DOOM: The Dark Ages &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;outlines idTech8&amp;rsquo;s new geometry pipeline for DOOM: The Dark Ages&lt;/li&gt;
&lt;li&gt;using a triangle visibility buffer approach&lt;/li&gt;
&lt;li&gt;evaluates multiple shadingdispatch strategies, and shares performance guidelines&lt;/li&gt;
&lt;li&gt;presents how the tiled deferred lighting algorithm supports software VRS&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-431/deferred_interpolation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Sop4JsFCBzg&#34; target=&#34;_blank&#34; id=&#34;[video] The wedge product | Geometric algebra episode 6 &#34;&gt;[video] The wedge product | Geometric algebra episode 6 &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces the wedge product as the fundamental building block of geometric algebra&lt;/li&gt;
&lt;li&gt;showing how it constructs basis elements from which all multivectors are formed&lt;/li&gt;
&lt;li&gt;explains the three key properties of the wedge product and shows how they represent linear subspaces&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-431/wedge_product.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://pharr.org/matt/&#34; target=&#34;_blank&#34;&gt;Matt Pharr&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 430 - March 1st, 2026</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-430/</link>
      <pubDate>Sun, 01 Mar 2026 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-430/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/shader-model-6-9-retail-and-more/&#34; target=&#34;_blank&#34; id=&#34;Announcing Shader Model 6.9 Retail and New D3D12 Improvements&#34;&gt;Announcing Shader Model 6.9 Retail and New D3D12 Improvements&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces the official release of Shader Model 6.9, introducing Long Vector support, 16-bit float specials, and making 16-bit/64-bit shader ops and wave ops required features&lt;/li&gt;
&lt;li&gt;brings DXR 1.2 features (Opacity Micromaps and Shader Execution Reordering) out of preview&lt;/li&gt;
&lt;li&gt;introduces D3D12 improvements, including revised resource view creation APIs and CPU timeline query resolves&lt;/li&gt;
&lt;li&gt;releases preview features, including Fence Barriers for fine-grained GPU synchronization&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-430/d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260227003458/https://devblogs.microsoft.com/directx/shader-model-6-9-retail-and-more/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/d3d12-opacity-micromaps/&#34; target=&#34;_blank&#34; id=&#34;D3D12 Opacity Micromaps&#34;&gt;D3D12 Opacity Micromaps&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces Opacity Micromaps (OMMs) as part of DXR Tier 1.2 to reduce overhead from redundant any-hit shader invocations for alpha-tested geometry&lt;/li&gt;
&lt;li&gt;encodes opacity information using masks on uniformly subdivided meshes laid out on a barycentric grid&lt;/li&gt;
&lt;li&gt;stores OMMs separately from bottom-level acceleration structures, allowing reuse across multiple BLASes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-430/ApplyingOMMToTriangle.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260302044842/https://devblogs.microsoft.com/directx/d3d12-opacity-micromaps/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/fence-barriers-fine-grained-gpu-synchronization-in-direct3d-12/&#34; target=&#34;_blank&#34; id=&#34;Fence Barriers: Fine-Grained GPU Synchronization in Direct3D 12&#34;&gt;Fence Barriers: Fine-Grained GPU Synchronization in Direct3D 12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces Fence Barriers Tier-1 in preview&lt;/li&gt;
&lt;li&gt;provides SignalBarrier and WaitBarrier operations for command-list scoped fences, offering a cleaner alternative to split barriers&lt;/li&gt;
&lt;li&gt;enables cross-queue synchronization through SignalBarrier with traditional queue-level waits&lt;/li&gt;
&lt;li&gt;next iterations Tier-2 will add full cross-queue WaitBarrier support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-430/AsymAliasing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260302045020/https://devblogs.microsoft.com/directx/fence-barriers-fine-grained-gpu-synchronization-in-direct3d-12/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arnocoomans.be/eg2026/&#34; target=&#34;_blank&#34; id=&#34;Real-time Rendering with a Neural Irradiance Volume&#34;&gt;Real-time Rendering with a Neural Irradiance Volume&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents Neural Irradiance Volume (NIV), a technique that replaces traditional probe grids with a compact neural model for pre-computing diffuse global illumination&lt;/li&gt;
&lt;li&gt;demonstrates quality improvement over probe-based methods at equivalent memory budgets while working within strict real-time constraints without requiring ray tracing or denoising&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-430/niv_header.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260301130920/https://arnocoomans.be/eg2026/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ubisoft.com/en-us/news/ignt.58488/shipping-neural-texture-compression-in-assassin-s-creed-mirage&#34; target=&#34;_blank&#34; id=&#34;Shipping Neural Texture Compression in Assassin’s Creed Mirage&#34;&gt;Shipping Neural Texture Compression in Assassin’s Creed Mirage&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;describes the implementation of neural texture compression that uses a latent representation shared across all material channels&lt;/li&gt;
&lt;li&gt;explicitly models BC compression during training to ensure the network is optimized against the exact signal sampled by the renderer at runtime&lt;/li&gt;
&lt;li&gt;achieves approximately 30% memory reduction&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-430/neural_compression.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260226122149/https://www.ubisoft.com/en-us/news/ignt.58488/shipping-neural-texture-compression-in-assassin-s-creed-mirage&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jendrikillner.com/gtc-2026/&#34; target=&#34;_blank&#34; id=&#34;GTC 2026&#34;&gt;GTC 2026&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;NVIDIA GTC is starting March 16 – &lt;a href=&#34;https://nvda.ws/4aAcg3k&#34; target=&#34;_blank&#34;&gt;attend virtually&lt;/a&gt; for free.&lt;/li&gt;
&lt;li&gt;Presenting the latest breakthroughs in generative AI, accelerated computing, simulation technology, and more.&lt;/li&gt;
&lt;li&gt;My top sessions: OpenUSD Crash Course (DLIW82272), Fundamentals of GPU-Accelerated Workflows (DLIW82265) and &lt;a href=&#34;https://www.jendrikillner.com/gtc-2026/&#34;&gt;more&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Win an RTX Pro 6000 GPU and see my full session recommendations &lt;a href=&#34;https://www.jendrikillner.com/gtc-2026/&#34;&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/sponsored/gtc_2026.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/baldurk/renderdoc/releases/v1.43&#34; target=&#34;_blank&#34; id=&#34;RenderDoc - Version v1.43&#34;&gt;RenderDoc - Version v1.43&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces a new custom annotation system that enables rich context information on a per-event or per-object basis&lt;/li&gt;
&lt;li&gt;adds a shader viewer panel showing where debug symbols were loaded from and the paths searched, with support for embedding symbols within captures&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-430/renderdoc.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260302043335/https://github.com/baldurk/renderdoc/releases/v1.43&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/how-to-use-vulkan-debug-printf/&#34; target=&#34;_blank&#34; id=&#34;How to Use Vulkan Debug Printf&#34;&gt;How to Use Vulkan Debug Printf&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how to use Vulkan&amp;rsquo;s Debug Printf feature using VK_KHR_shader_non_semantic_info&lt;/li&gt;
&lt;li&gt;covers implementation in GLSL (debugPrintfEXT), HLSL/Slang (standard printf), and direct SPIR-V instructions, with output viewable in RenderDoc 1.14+ or through Validation Layers&lt;/li&gt;
&lt;li&gt;describes format string restrictions, including limited specifiers, vector support, and limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-430/DebugPrintf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260302045521/https://www.lunarg.com/how-to-use-vulkan-debug-printf/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/new-vulkan-game-engine-tutorial-build-your-own-production-ready-rendering-engine&#34; target=&#34;_blank&#34; id=&#34;New Vulkan Game Engine Tutorial: Build Your Own Production-Ready Rendering Engine&#34;&gt;New Vulkan Game Engine Tutorial: Build Your Own Production-Ready Rendering Engine&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a new tutorial that builds on the Core Vulkan Tutorial to guide developers through more advanced concepts&lt;/li&gt;
&lt;li&gt;addresses aspects such as debugging, profiling, CI/CD, and packaging&lt;/li&gt;
&lt;li&gt;additionally covers dynamic rendering, timeline semaphores, and engine design aspects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-430/2026-blog-vulkan-game-engine-tutorial.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260302043403/https://www.khronos.org/blog/new-vulkan-game-engine-tutorial-build-your-own-production-ready-rendering-engine&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;sponsored_container_superwide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;sponsored_region_start&#34; style=&#34;font-size: small;&#34;&gt;Sponsored Post&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.intel.com/content/www/us/en/developer/topic-technology/gamedev/tech-sessions-gdc.html&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Intel tech sessions @ [GDC]&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Intel will be at GDC in San Francisco (9–13 March), and we’re hosting a series of public technical talks for game developers at the AMA Center in the Marriott Marquis — just a short walk from the main conference.&lt;/p&gt;

&lt;p&gt;Each session runs about 30–40 minutes and is designed to be interactive and informal. Expect real technical deep dives, live discussion, and plenty of time for questions — jump in, challenge us, share your experience. We’re aiming for useful conversations, not slide marathons.&lt;/p&gt;

&lt;p&gt;If you’re around, we’d love to see you there! Click the link and register for the session(s) you’re interested in.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_superwide&#34;&gt;
            &lt;a href=&#34;https://www.intel.com/content/www/us/en/developer/topic-technology/gamedev/tech-sessions-gdc.html&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34;&gt;
                &lt;img src=&#34;https://www.jendrikillner.com/img/sponsored/intel_gdc_26.png&#34; style=&#34;margin:0px&#34;/&gt;
            &lt;/a&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;intel_gdc_week430&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=H39hUNiweYg&#34; target=&#34;_blank&#34; id=&#34;[video] Vulkanised 2026: GPU-Driven Rendering in the Quest 2 and 3&#34;&gt;[video] Vulkanised 2026: GPU-Driven Rendering in the Quest 2 and 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents implementation strategies for GPU-driven rendering pipelines optimized for Meta Quest 2 and Quest 3 mobile VR hardware&lt;/li&gt;
&lt;li&gt;discusses techniques for reducing CPU overhead and maximizing GPU utilization within the power and thermal constraints&lt;/li&gt;
&lt;li&gt;covers Vulkan API features that enable efficient indirect drawing and compute-heavy rendering approaches&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-430/quest_gpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=21RoQsiU8mk&#34; target=&#34;_blank&#34; id=&#34;[video] Shading Languages Symposium 2026: Gigi - A Rapid Graphics R&amp;amp;D Platform&#34;&gt;[video] Shading Languages Symposium 2026: Gigi - A Rapid Graphics R&amp;amp;D Platform&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces Gigi as a rapid prototyping platform for graphics rendering research and development, designed to accelerate experimentation workflows&lt;/li&gt;
&lt;li&gt;demonstrates approaches for streamlining graphics programming iteration cycles and enabling faster testing of rendering algorithms and shader techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-430/gigi_shadig_language_2026.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=4q6EekzAUI0&#34; target=&#34;_blank&#34; id=&#34;[video] Terrain Advanced Auto Material - Terrain Shaders - Episode 16 &#34;&gt;[video] Terrain Advanced Auto Material - Terrain Shaders - Episode 16 &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;demonstrates creating an advanced terrain auto material combining angle blend, height blending, and altitude blending for realistic surface variation&lt;/li&gt;
&lt;li&gt;provides implementation patterns applicable to both Unreal Engine material graphs and Unity shader graphs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-430/terrain_shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.wihlidal.com/&#34; target=&#34;_blank&#34;&gt;Graham Wihlidal&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 429 - February 22nd, 2026</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-429/</link>
      <pubDate>Sun, 22 Feb 2026 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-429/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alielmorsy.github.io/the-art-of-render-graphs/&#34; target=&#34;_blank&#34; id=&#34;The Art of Render Graphs&#34;&gt;The Art of Render Graphs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comprehensive guide to implementing a render graph system using Vulkan&lt;/li&gt;
&lt;li&gt;explains the complete pipeline, including pass dependency recording, resource lifetime computation, graph construction using topological sorting, and automatic pass culling&lt;/li&gt;
&lt;li&gt;covers advanced features like texture aliasing within frames, multi-threaded command buffer recording, and automatic barrier generation between passes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-429/render_graph-2-md.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260222180428/https://alielmorsy.github.io/the-art-of-render-graphs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://vulkan.org/events/vulkanised-2026&#34; target=&#34;_blank&#34; id=&#34;Vulkanised 2026&#34;&gt;Vulkanised 2026&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Vulkanised 2026 talk video and slices have been released&lt;/li&gt;
&lt;li&gt;presentations covering topics from machine learning, performance, system integration, and more&lt;/li&gt;
&lt;li&gt;additionally contains talks about developers using the API for various requirements across various platforms&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-429/vulkanised.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260220134350/https://vulkan.org/events/vulkanised-2026&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=EshkHyYxb3A&#34; target=&#34;_blank&#34; id=&#34;Vulkanised 2026: Vulkan Now and Then (for Hobbyists)&#34;&gt;Vulkanised 2026: Vulkan Now and Then (for Hobbyists)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an accessible overview aimed at hobbyists: history and practical advice for getting started with Vulkan&lt;/li&gt;
&lt;li&gt;highlights helper libraries and learning resources recommended for newcomers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-429/vulkan_hobby.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ludicon.com/castano/blog/2026/02/runtime-mipmap-generation/&#34; target=&#34;_blank&#34; id=&#34;Runtime Mipmap Generation&#34;&gt;Runtime Mipmap Generation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses implementing runtime mipmap generation on the GPU&lt;/li&gt;
&lt;li&gt;presents techniques for correct linear-space filtering using sRGB texture views and high-quality low-pass filters&lt;/li&gt;
&lt;li&gt;explains alpha-weighted filtering to prevent color bleeding, as well as coverage preservation techniques to maintain alpha-tested geometry visibility&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-429/magic-1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260219010227/https://www.ludicon.com/castano/blog/2026/02/runtime-mipmap-generation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://technik90.blogspot.com/2026/02/ibl-optimization-study-iii-shared.html&#34; target=&#34;_blank&#34; id=&#34;IBL Optimization Study III: Shared memory and Latency Hiding &#34;&gt;IBL Optimization Study III: Shared memory and Latency Hiding &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explores optimization techniques for GGX prefiltering in image-based lighting, targeting low-end hardware&lt;/li&gt;
&lt;li&gt;details how using group shared memory to compute Hammersley sequences and GGX samples to reduce per-thread work&lt;/li&gt;
&lt;li&gt;achieves significant performance improvements through partial loop unrolling, tangent-space math, and precomputing LODs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-429/ibl_optimizing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260223040352/https://technik90.blogspot.com/2026/02/ibl-optimization-study-iii-shared.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://marmoset.co/jobs/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphics &amp;amp; Tools Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Remote Work&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Marmoset is looking for skilled programmers to join our team building Toolbag, our industry-leading real-time rendering and authoring application.&lt;/p&gt;

&lt;p&gt;You’ll work with artists and developers to design, implement, and optimize rendering, baking, and texture authoring features in Toolbag. This role is ideal for someone who loves visual computing and creating powerful tools for artists. If you’re passionate about real-time graphics and love building the tools that artists rely on, we’d love to hear from you.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/log_marmoset_with_text.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;marmoset_week_429&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://fragcoord.xyz/&#34; target=&#34;_blank&#34; id=&#34;FragCoord&#34;&gt;FragCoord&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;GLSL shader editor designed for efficient shader development (similar to Shader Toy)&lt;/li&gt;
&lt;li&gt;features a built-in inspector to visualize variables and functions directly in the viewport&lt;/li&gt;
&lt;li&gt;includes a snippet library for common operations, custom uniform support, and a tuner for adjusting numerical values with sliders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-429/fragcoord.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/hip-threads-for-teams-without-gpu-experts/&#34; target=&#34;_blank&#34; id=&#34;HIP Threads: GPU power for teams without GPU experts&#34;&gt;HIP Threads: GPU power for teams without GPU experts&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces HIP Threads, a C++ concurrency library that enables AMD GPU acceleration using familiar CPU threading patterns&lt;/li&gt;
&lt;li&gt;presents how to transition a simple example to execute on the GPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-429/hip-threads-gpu-power-teams-without-gpu-experts.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260219195314/https://gpuopen.com/learn/hip-threads-for-teams-without-gpu-experts/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2026/02/21/adventures-in-neural-rendering-part-2-cooperative-vectors/&#34; target=&#34;_blank&#34; id=&#34;Adventures in Neural Rendering part 2: Cooperative vectors&#34;&gt;Adventures in Neural Rendering part 2: Cooperative vectors&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explores using DirectX Cooperative Vectors to access Tensor cores for neural network inference&lt;/li&gt;
&lt;li&gt;explains how matrix-multiply-accumulate operations on Tensor cores provide significant speedups for MLP evaluation compared to compute shaders&lt;/li&gt;
&lt;li&gt;demonstrates massive speedup, especially on large networks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-429/profile-img.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260222034246/https://interplayoflight.wordpress.com/2026/02/21/adventures-in-neural-rendering-part-2-cooperative-vectors/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/abs/2602.12949&#34; target=&#34;_blank&#34; id=&#34;Real-time Rendering with a Neural Irradiance Volume&#34;&gt;Real-time Rendering with a Neural Irradiance Volume&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents Neural Irradiance Volume (NIV), a neural-based technique for real-time rendering of diffuse global illumination&lt;/li&gt;
&lt;li&gt;uses neural compression to create an adaptive representation of irradiance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-429/neural_irradiance.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260223050859/https://arxiv.org/abs/2602.12949&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://fhahlbohm.github.io/faster-gaussian-splatting/&#34; target=&#34;_blank&#34; id=&#34;TL;DR: An efficient and research-friendly Gaussian Splatting framework&#34;&gt;TL;DR: An efficient and research-friendly Gaussian Splatting framework&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents Faster-GS, an optimized 3D Gaussian Splatting framework that consolidates strategies from prior research&lt;/li&gt;
&lt;li&gt;investigates underexplored aspects, including numerical stability, Gaussian truncation, and gradient approximation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-429/gaussian_splatting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260223040814/https://fhahlbohm.github.io/faster-gaussian-splatting/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=GhlTMsPoaJw&#34; target=&#34;_blank&#34; id=&#34;Texel Splatting | True 3D Pixel Art &#34;&gt;Texel Splatting | True 3D Pixel Art &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;demonstrates &amp;ldquo;texel splatting&amp;rdquo;: rendering 3D-looking pixel art by projecting and blending texels in 3D space&lt;/li&gt;
&lt;li&gt;shows the visual effect of the various stages of the implementation, showing issues encountered along the way&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-429/texel_splatting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://youtu.be/TdScaAdqnDw&#34; target=&#34;_blank&#34; id=&#34;How to Not be Scared of SPIR-V&#34;&gt;How to Not be Scared of SPIR-V&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Introduction to SPIR-V that explains its role as a portable shader/intermediate representation for Vulkan and other APIs&lt;/li&gt;
&lt;li&gt;provides an explanation of the SPIR-V concepts and helps to understand them&lt;/li&gt;
&lt;li&gt;shows practical examples via reading and explaining the disassembly&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-429/spirv.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260223051453/https://vulkan.org/user/pages/09.events/vulkanised-2026/1445-Spencer-Fricke-LunarG.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://x.com/JasperBekkers&#34; target=&#34;_blank&#34;&gt;Jasper Bekkers&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 428 - February 15th, 2026</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-428/</link>
      <pubDate>Sun, 15 Feb 2026 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-428/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/the-khronos-group-celebrates-25-years-shaping-the-future-through-open-standards&#34; target=&#34;_blank&#34; id=&#34;Khronos at 25: Shaping Visual Computing with Open Standards&#34;&gt;Khronos at 25: Shaping Visual Computing with Open Standards&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;blog post that looks back at Khronos Group&amp;rsquo;s 25-year history of enabling graphics programming across platforms&lt;/li&gt;
&lt;li&gt;traces the evolution from OpenGL and OpenGL ES through WebGL, Vulkan, and OpenXR to modern standards like Slang for neural rendering&lt;/li&gt;
&lt;li&gt;closes with a look at the next years of collaboration&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-428/khronos_25.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260216013752/https://www.khronos.org/blog/the-khronos-group-celebrates-25-years-shaping-the-future-through-open-standards&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.maximeheckel.com/posts/shades-of-halftone/&#34; target=&#34;_blank&#34; id=&#34;Shades of Halftone&#34;&gt;Shades of Halftone&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comprehensive walkthrough of implementing halftone effects as shaders from basic circular dot grids to advanced variants&lt;/li&gt;
&lt;li&gt;explores multichannel halftoning with RGB and CMYK color separation&lt;/li&gt;
&lt;li&gt;presents techniques for breaking grid constraints, enabling surface tension effects&lt;/li&gt;
&lt;li&gt;additionally shows how to integrate interactivity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-428/shades_of_halftone.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260212041600/https://blog.maximeheckel.com/posts/shades-of-halftone/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/live/VXN4Gewjk4k&#34; target=&#34;_blank&#34; id=&#34;[video] niagara: Descriptor heaps&#34;&gt;[video] niagara: Descriptor heaps&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;recording of a live stream showing a walkthrough on how to update a Vulkan app to use the new  Descriptor Heaps extension&lt;/li&gt;
&lt;li&gt;showing the necessary definitions in the spec and how to integrate it into an application&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-428/vulkan_descriptor.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=rEXwy9FnNR8&#34; target=&#34;_blank&#34; id=&#34;[video] The Compute Shader // Vulkan For Beginners #28&#34;&gt;[video] The Compute Shader // Vulkan For Beginners #28&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tutorial on using the Vulkan compute‑shader pipeline to render a Shadertoy‑style by integrating compute work into the application&lt;/li&gt;
&lt;li&gt;walk-through covers all the required pieces of the API and how they interact&lt;/li&gt;
&lt;li&gt;full source code is available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-428/vulkan_compute.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2026/02/10/adventures-in-neural-rendering/&#34; target=&#34;_blank&#34; id=&#34;Adventures in Neural Rendering&#34;&gt;Adventures in Neural Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explores using small multilayer perceptrons (MLPs) to encode graphics data like radiance, irradiance, depth, and BRDF information&lt;/li&gt;
&lt;li&gt;compares MLP-based encoding against traditional methods like Spherical Harmonics&lt;/li&gt;
&lt;li&gt;discusses trade-offs in storage size and quality, as well as implementation challenges&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-428/neural_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260214044005/https://interplayoflight.wordpress.com/2026/02/10/adventures-in-neural-rendering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.s-schoener.com/2026-02-09-gui/&#34; target=&#34;_blank&#34; id=&#34;Learnings from creating a GUI library&#34;&gt;Learnings from creating a GUI library&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;documents insights from building an immediate-mode GUI library&lt;/li&gt;
&lt;li&gt;covering interactions and layout logic as well as rendering constraints&lt;/li&gt;
&lt;li&gt;presents a tile-based SDF-based renderer to dispatch specialized shaders for improved occupancy&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-428/gui-charts.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260209182827/https://blog.s-schoener.com/2026-02-09-gui/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ludicon.com/castano/blog/2026/02/an-updated-sponza-gltf/&#34; target=&#34;_blank&#34; id=&#34;An Updated Sponza glTF&#34;&gt;An Updated Sponza glTF&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents an updated Sponza glTF model with cleaned-up uncompressed PNG textures&lt;/li&gt;
&lt;li&gt;compares AVIF texture compression with runtime GPU compression via Spark against precompressed KTX formats&lt;/li&gt;
&lt;li&gt;demonstrates memory and quality comparisons&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-428/avif-hi-spark.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260210142523/https://www.ludicon.com/castano/blog/2026/02/an-updated-sponza-gltf/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/standardizing-hlsl/&#34; target=&#34;_blank&#34; id=&#34;Standardizing HLSL&#34;&gt;Standardizing HLSL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces the formation of a Ecma Technical Committee to standardize HLSL as a cross-platform shader language&lt;/li&gt;
&lt;li&gt;traces HLSL&amp;rsquo;s evolution from DirectX 9, DXC, Clang integration, and the importance of Google&amp;rsquo;s SPIRV code generation contributions&lt;/li&gt;
&lt;li&gt;commits to public development on GitHub with conformance test suite&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-428/hlsl-logo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260210203149/https://devblogs.microsoft.com/directx/standardizing-hlsl/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.abolishcrlf.org//2026/02/10/HLSLState.html&#34; target=&#34;_blank&#34; id=&#34;State of HLSL: February 2026&#34;&gt;State of HLSL: February 2026&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;details progress on Clang HLSL implementation, including improved root signature diagnostics&lt;/li&gt;
&lt;li&gt;explains the rationale behind standardizing HLSL through Ecma TC 57 to address cross-platform shader build pipeline complexity and quality issues&lt;/li&gt;
&lt;li&gt;announces new features to combine Cooperative Vector and Wave Matrix capabilities for efficient neural network evaluation in shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-428/SPIREcosystem2025.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260210203222/https://www.abolishcrlf.org//2026/02/10/HLSLState.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://syllogi-graphikon.vercel.app/posts/metal-single-pass-downsampler/&#34; target=&#34;_blank&#34; id=&#34;Metal Single Pass Downsampler (SPD)&#34;&gt;Metal Single Pass Downsampler (SPD)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;implements AMD&amp;rsquo;s FidelityFX Single Pass Downsampler for Apple Metal API, generating depth pyramid mipmaps in one compute pass&lt;/li&gt;
&lt;li&gt;explains threadgroup organization with 16×16 threads processing 64×64 pixels using threadgroup memory to avoid device memory round-trips&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-428/depth_pyramid.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260216015200/https://syllogi-graphikon.vercel.app/posts/metal-single-pass-downsampler/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/abs/2602.08642&#34; target=&#34;_blank&#34; id=&#34;Forget Superresolution, Sample Adaptively (when Path Tracing)&#34;&gt;Forget Superresolution, Sample Adaptively (when Path Tracing)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents an adaptive sampling and denoising pipeline designed for less than one sample per pixel path tracing systems&lt;/li&gt;
&lt;li&gt;introduces stochastic sample placement formulation enabling gradient estimation&lt;/li&gt;
&lt;li&gt;demonstrates consistent improvements over uniform sparse sampling, particularly in reconstructing specular highlights and shadow boundaries using tonemapping-aware training&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-428/adaptive_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260216015357/https://arxiv.org/abs/2602.08642&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://fabiensanglard.net/quake_asm_optimizations/index.html&#34; target=&#34;_blank&#34; id=&#34;How Michael Abrash doubled Quake framerate&#34;&gt;How Michael Abrash doubled Quake framerate&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;analyzes Michael Abrash&amp;rsquo;s hand-crafted x86 assembly optimizations in Quake&amp;rsquo;s software renderer&lt;/li&gt;
&lt;li&gt;details key techniques including FPU pipeline parallelization, hiding multiplication latency, self-modifying code, and overlapping FDIV with integer pipelines&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-428/quake-render.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260215145812/https://fabiensanglard.net/quake_asm_optimizations/index.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://theorangeduck.com/page/fitting-code-driven-displacement-revisited&#34; target=&#34;_blank&#34; id=&#34;Fitting Code Driven Displacement Revisited&#34;&gt;Fitting Code Driven Displacement Revisited&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;derives mathematical equations for estimating stopping/starting times and distances from critical spring damper character movement systems&lt;/li&gt;
&lt;li&gt;uses Lambert W function (product logarithm) to solve for stopping times from spring parameters&lt;/li&gt;
&lt;li&gt;presents methods to fit spring half-life parameters from measured animation data, including &amp;ldquo;true half-life&amp;rdquo; definition based on exact halfway-point timing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-428/true_halflife_1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260216015959/https://theorangeduck.com/page/fitting-code-driven-displacement-revisited&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevicius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 427 - February 8th, 2026</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-427/</link>
      <pubDate>Sun, 08 Feb 2026 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-427/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dakrunch.blogspot.com/2026/01/the-road-to-substance-modeler-vr-roots.html&#34; target=&#34;_blank&#34; id=&#34;The Road to Substance Modeler: VR Roots, Desktop Reinvention&#34;&gt;The Road to Substance Modeler: VR Roots, Desktop Reinvention&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;details the development journey of Adobe&amp;rsquo;s Substance Modeler from its origins as Oculus Medium to a professional desktop sculpting tool&lt;/li&gt;
&lt;li&gt;describes the sculpting engine&amp;rsquo;s voxel-based SDF architecture with marching cubes tessellation and the rendering engine&amp;rsquo;s COW-based deduplication for handling billions of polygons&lt;/li&gt;
&lt;li&gt;discusses the challenges of supporting both VR and desktop workflows&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-427/substance_sculpt.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260209040139/https://dakrunch.blogspot.com/2026/01/the-road-to-substance-modeler-vr-roots.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=MC95bu9VTJQ&#34; target=&#34;_blank&#34; id=&#34;[video] Terrain Altitude Blending - Terrain Shaders - Episode 15 &#34;&gt;[video] Terrain Altitude Blending - Terrain Shaders - Episode 15 &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tutorial showing how to blend between two terrain layers based on height&lt;/li&gt;
&lt;li&gt;covers practical remapping and smoothing to avoid hard transitions&lt;/li&gt;
&lt;li&gt;part of a longer series of terrain shading&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-427/terrain_blending.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/simplifying-vulkan-one-subsystem-at-a-time&#34; target=&#34;_blank&#34; id=&#34;Simplifying Vulkan One Subsystem at a Time&#34;&gt;Simplifying Vulkan One Subsystem at a Time&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces the Khronos Working Group&amp;rsquo;s new strategy to combat API complexity through complete subsystem replacements&lt;/li&gt;
&lt;li&gt;presents VK_EXT_descriptor_heap as the first implementation of this approach, fully replacing the descriptor set subsystem with a simpler memory-based model where descriptors are just data&lt;/li&gt;
&lt;li&gt;emphasizes broad industry collaboration across the working group and invites feedback before finalizing as a KHR extension&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-427/khronos.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260209061051/https://www.khronos.org/blog/simplifying-vulkan-one-subsystem-at-a-time&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=phbaxNPJxss&#34; target=&#34;_blank&#34; id=&#34;[video] How to optimize (almost) anything &#34;&gt;[video] How to optimize (almost) anything &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;concise guide to investigating performance problems: start with profiling and measurement to find real hotspots rather than guessing&lt;/li&gt;
&lt;li&gt;surveys practical techniques (data-oriented layouts, instancing, background workers, frame spreading, cache-friendly changes) and gives small, actionable examples&lt;/li&gt;
&lt;li&gt;emphasizes pragmatic trade-offs, verifiable wins and beware optimizations that appear to help for the wrong reasons&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-427/optimizing_anything.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/news/press/gltf-gaussian-splatting-press-release&#34; target=&#34;_blank&#34; id=&#34;Khronos Announces glTF Gaussian Splatting Extension&#34;&gt;Khronos Announces glTF Gaussian Splatting Extension&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;release candidate for KHR_gaussian_splatting to store 3D Gaussian splats in glTF&lt;/li&gt;
&lt;li&gt;describes Gaussian splatting (sparse, optimized 3D points with position/scale/orientation/color/opacity) as a fast, scalable format suited to geospatial capture, digital twins and photoreal 3D capture workflows&lt;/li&gt;
&lt;li&gt;designed to be extensible and compression-friendly&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-427/gltf-gaussian-splatting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260210014617/https://www.khronos.org/news/press/gltf-gaussian-splatting-press-release&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.siggraph.org/2026/01/simd-started-it-simt-improved-it.html/&#34; target=&#34;_blank&#34; id=&#34;SIMD Started It, SIMT Improved It&#34;&gt;SIMD Started It, SIMT Improved It&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;traces the evolution from SIMD to SIMT execution models, starting with NVIDIA&amp;rsquo;s G80 architecture in 2006&lt;/li&gt;
&lt;li&gt;explains how SIMT preserves SIMD efficiency while managing divergent control flow through hardware-controlled serialization and masking of inactive threads within warps&lt;/li&gt;
&lt;li&gt;shows how AMD, Intel, and newer GPU vendors adopted similar thread-based execution models&lt;/li&gt;
&lt;li&gt;modern APIs like Vulkan, DirectX 12, and Metal provide subgroup abstractions that map to underlying SIMT hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-427/wrap_block.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260205224006/blog.siggraph.org/2026/01/simd-started-it-simt-improved-it.html/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphicrants.blogspot.com/2026/02/nanite-tessellation.html&#34; target=&#34;_blank&#34; id=&#34;Nanite Tessellation&#34;&gt;Nanite Tessellation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces Nanite Tessellation as a system for dynamically tessellating and displacing meshes using shader graphs, extending Nanite&amp;rsquo;s virtualized geometry capabilities&lt;/li&gt;
&lt;li&gt;discusses the motivation for geometry amplification including data compression advantages of displacement maps and improved artist workflows for procedural content&lt;/li&gt;
&lt;li&gt;explains how displacement is particularly valuable for film-style workflows as well as games requiring scalability across platforms&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-427/patches_nanite.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260203215850/https://graphicrants.blogspot.com/2026/02/nanite-tessellation.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gamesbymason.com/blog/2026/vulkan/&#34; target=&#34;_blank&#34; id=&#34;It&amp;#39;s Not About the API - Fast, Flexible, and Simple Rendering in Vulkan&#34;&gt;It&amp;#39;s Not About the API - Fast, Flexible, and Simple Rendering in Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a talk challenging the perception that Vulkan is overly complex and not worth engaging with as an indie developer&lt;/li&gt;
&lt;li&gt;argues that proper GPU abstraction design matters more than the choice of API&lt;/li&gt;
&lt;li&gt;demonstrates how to build fast, flexible, and simple rendering systems in Vulkan&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-427/api_design.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260208045749/https://gamesbymason.com/blog/2026/vulkan/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ludicon.com/castano/blog/2026/02/normal-map-compression-revisited/&#34; target=&#34;_blank&#34; id=&#34;Normal Map Compression Revisited&#34;&gt;Normal Map Compression Revisited&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;examines practical aspects of normal map compression, including the evolution from DXT5/BC3 swizzled encodings to BC5&amp;rsquo;s capabilities&lt;/li&gt;
&lt;li&gt;discusses Z reconstruction methods and tangent space discontinuities&lt;/li&gt;
&lt;li&gt;presenting solutions for UNORM encoding offsets to represent flat normals at UV seams properly&lt;/li&gt;
&lt;li&gt;explains the tradeoffs between UNORM and SNORM formats&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-427/normal-discontinuity.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260205061836/https://www.ludicon.com/castano/blog/2026/02/normal-map-compression-revisited/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halide.cx/blog/chroma-handling/&#34; target=&#34;_blank&#34; id=&#34;Same Image, Different Score?&#34;&gt;Same Image, Different Score?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;investigates how decoder implementations and chroma upsampling post-processing affect perceived image quality beyond encoder efficiency alone&lt;/li&gt;
&lt;li&gt;tests various decoders, including FFmpeg, jpegli, ImageMagick, dwebp, and dav1d, with different chroma handling strategies&lt;/li&gt;
&lt;li&gt;demonstrates that filtered FFmpeg decoding with Lanczos scaling and accurate chroma interpolation achieves efficiency improvements compared to baseline approaches&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-427/chroma_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260205014605/https://halide.cx/blog/chroma-handling/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://tesseractc.at/shadowglass&#34; target=&#34;_blank&#34; id=&#34;Replicating the Shadowglass 3D pixel-art technique&#34;&gt;Replicating the Shadowglass 3D pixel-art technique&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;analyzes and replicates the Shadowglass technique for achieving stable first-person pixel art without shimmer by rendering to low-resolution cubemaps from fixed positions&lt;/li&gt;
&lt;li&gt;implements reprojection using cubemap depth buffers to raymarch and offset samples based on camera movement, creating parallax effects while maintaining pixel stability&lt;/li&gt;
&lt;li&gt;describes optimizations including different cubemaps for varying distances and resolutions&lt;/li&gt;
&lt;li&gt;presents how to handle transitions between the cubemaps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-427/replication.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260210020515/https://tesseractc.at/shadowglass&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/download/2025_RT_TechReport.pdf&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing using HIP&#34;&gt;Ray Tracing using HIP&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD technical report introducing ray tracing fundamentals and a HIP-based GPU implementation&lt;/li&gt;
&lt;li&gt;highlights Orochi for runtime HIP/CUDA backend switching&lt;/li&gt;
&lt;li&gt;explains core algorithms (ray-triangle intersection, BVH construction and traversal, ambient occlusion, path tracing and next-event estimation) and performance considerations&lt;/li&gt;
&lt;li&gt;provides code examples&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-427/ray_tracing_hip.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260210020448/https://gpuopen.com/download/2025_RT_TechReport.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.reedbeta.com&#34; target=&#34;_blank&#34;&gt;Nathan Reed&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 426 - February 1st, 2026</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-426/</link>
      <pubDate>Sun, 01 Feb 2026 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-426/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pixelcluster.github.io/Mesa-26/&#34; target=&#34;_blank&#34; id=&#34;Inside Mesa 26.0&amp;#39;s RADV RT improvements&#34;&gt;Inside Mesa 26.0&amp;#39;s RADV RT improvements&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;details improvements to RADV&amp;rsquo;s ray tracing pipeline compilation in Mesa 26.0, introducing function calls to the compiler stack&lt;/li&gt;
&lt;li&gt;presents how separately compiling any-hit and intersection shaders instead of inlining them into megashaders dramatically reduces compilation times&lt;/li&gt;
&lt;li&gt;Additionally, it can resolve pipeline stutter in Unreal Engine games&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-426/radv.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260202025159/https://pixelcluster.github.io/Mesa-26/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=K1Je3k8ektk&#34; target=&#34;_blank&#34; id=&#34;[video] Complex numbers are multivectors | Geometric algebra episode 4&#34;&gt;[video] Complex numbers are multivectors | Geometric algebra episode 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains complex numbers from a geometric algebra perspective&lt;/li&gt;
&lt;li&gt;demonstrates key properties with an example-driven lecture&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-426/geometric_algebra.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=CGTPW2mWeGQ&#34; target=&#34;_blank&#34; id=&#34;[video] Simple Terrain Auto Material - Terrain Shaders - Episode 14&#34;&gt;[video] Simple Terrain Auto Material - Terrain Shaders - Episode 14&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tutorial showing a simple auto material that layers terrain materials based on slope angle, part of an ongoing Terrain Shaders series&lt;/li&gt;
&lt;li&gt;covers implementation details and references earlier episodes for implementation details&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-426/terrain.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=FlrTZEJeEXs&#34; target=&#34;_blank&#34; id=&#34;[video] SIGGRAPH Thesis Fastforward 2026&#34;&gt;[video] SIGGRAPH Thesis Fastforward 2026&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;SIGGRAPH&amp;rsquo;s Thesis Fast Forward, where Ph.D. students present research pitches&lt;/li&gt;
&lt;li&gt;includes a range of topics such as Monte Carlo PDE solvers, robust winding-number/SDF algorithms, point-cloud reconstruction, and more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-426/shape_design.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=vehIyWKOa1o&#34; target=&#34;_blank&#34; id=&#34;[video] Texel Density Explained&#34;&gt;[video] Texel Density Explained&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;practical tutorial on texel density: what it is, how to choose appropriate densities for different player POVs, and set targets&lt;/li&gt;
&lt;li&gt;presents how to measure real-world references, visualizing texel density in UE5&lt;/li&gt;
&lt;li&gt;additionally presents a Maya texturing workflow with recommendations and scale references&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-426/texel_density.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rystorm.com/blog/gyms-zoos-museums-your-documentation-should-be-in-game&#34; target=&#34;_blank&#34; id=&#34;Gyms, Zoos, and Museums: Your documentation should be in-game&#34;&gt;Gyms, Zoos, and Museums: Your documentation should be in-game&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a workflow design approach for maintaining game documentation spatially within the game engine itself&lt;/li&gt;
&lt;li&gt;demonstrates how in-game documentation avoids the common problem of external documentation becoming outdated, enabling developers to instantly verify metrics, test systems, and debug assets without searching through external documents&lt;/li&gt;
&lt;li&gt;additionally covers techniques for automated testing and the generation of these documentation levels&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-426/zoo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260129221050/https://rystorm.com/blog/gyms-zoos-museums-your-documentation-should-be-in-game&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.surveymonkey.com/r/LRFD7V6&#34; target=&#34;_blank&#34; id=&#34;Vulkan Ecosystem and SDK Survey - February 2026&#34;&gt;Vulkan Ecosystem and SDK Survey - February 2026&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;annual survey looking for feedback from Vulkan developers to improve the SDK and ecosystem&lt;/li&gt;
&lt;li&gt;asks about developer role and experience, target platforms, SDK usage, and other ecosystem pain points to guide future work and priorities&lt;/li&gt;
&lt;li&gt;closes Feb 25, 2026&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-426/vulkan_lunarg.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260130012644/https://www.surveymonkey.com/r/LRFD7V6&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://juretriglav.si/surfel-based-global-illumination-on-the-web/&#34; target=&#34;_blank&#34; id=&#34;Surfel-based global illumination on the web&#34;&gt;Surfel-based global illumination on the web&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;implements a complete surfel-based global illumination pipeline in WebGPU, including surfelization, spatial acceleration structures, ray tracing, and temporal filtering&lt;/li&gt;
&lt;li&gt;employs advanced techniques such as surfel-guided light sampling to reduce noise, multi-scale mean estimators for temporal stability, and radial depth atlases to prevent light leaking through thin geometry&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-426/surfel_pipeline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260130154521/https://juretriglav.si/surfel-based-global-illumination-on-the-web/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/the-state-of-vulkan-on-apple-jan-2026/&#34; target=&#34;_blank&#34; id=&#34;The State of Vulkan on Apple – Jan. 2026&#34;&gt;The State of Vulkan on Apple – Jan. 2026&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides an updated overview of Vulkan support on Apple platforms through layered implementations on Metal, comparing MoltenVK and the newer fully conformant KosmicKrisp&lt;/li&gt;
&lt;li&gt;details the structure for packaging Vulkan applications on macOS and iOS, including proper placement of the Vulkan loaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-426/Vulkan-on-Apple.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260000000000*/https://www.lunarg.com/the-state-of-vulkan-on-apple-jan-2026/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ludicon.com/castano/blog/2026/01/choosing-texture-formats-for-webgpu-applications/&#34; target=&#34;_blank&#34; id=&#34;Choosing Texture Formats for WebGPU applications&#34;&gt;Choosing Texture Formats for WebGPU applications&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;compares texture format options for WebGPU applications, weighing traditional image formats (WebP, AVIF), GPU block-compressed formats (BC7, ASTC), and universal formats (Basis Universal)&lt;/li&gt;
&lt;li&gt;introduces spark.js as a solution for real-time GPU transcoding&lt;/li&gt;
&lt;li&gt;This allows developers to ship efficient compressed web formats while transcoding to block-compressed GPU textures at runtime&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.reedbeta.com&#34; target=&#34;_blank&#34;&gt;Nathan Reed&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-426/gltf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260131212309/https://www.ludicon.com/castano/blog/2026/01/choosing-texture-formats-for-webgpu-applications/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 425 - January 25th, 2026</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-425/</link>
      <pubDate>Sun, 25 Jan 2026 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-425/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/vulkan-introduces-roadmap-2026-and-new-descriptor-heap-extension#descriptor_heaps&#34; target=&#34;_blank&#34; id=&#34;Vulkan Introduces Roadmap 2026 and New Descriptor Heap Extension&#34;&gt;Vulkan Introduces Roadmap 2026 and New Descriptor Heap Extension&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents the Vulkan Roadmap 2026 milestone, which requires features such as variable-rate shading, shader clock queries, and higher descriptor limits&lt;/li&gt;
&lt;li&gt;announces the VK_EXT_descriptor_heap extension, which exposes direct access to descriptor memory while retaining compatibility with existing descriptor sets&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-425/2026-blog-roadmap-descriptor-heap-banner.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260123163251/https://www.khronos.org/blog/vulkan-introduces-roadmap-2026-and-new-descriptor-heap-extension&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://visualrambling.space/dithering-part-2/&#34; target=&#34;_blank&#34; id=&#34;Dithering Series - Part 2&#34;&gt;Dithering Series - Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains ordered dithering using threshold maps (Bayer matrices) to convert grayscale images into black-and-white patterns&lt;/li&gt;
&lt;li&gt;compares threshold-map families (Bayer, cluster-dot, and void-and-cluster/blue-noise) and their characteristic visual textures&lt;/li&gt;
&lt;li&gt;shows how matrix size affects smoothness and previews the next part on error-diffusion dithering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-425/bayer_matrix_dithering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260127020135/https://visualrambling.space/dithering-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://enikofox.com/posts/reflective-materials-in-block-game/&#34; target=&#34;_blank&#34; id=&#34;Reflective materials in Block Game&#34;&gt;Reflective materials in Block Game&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a system for adding reflections in the Block Game by rendering a back-facing view and applying it via spherized matcaps&lt;/li&gt;
&lt;li&gt;uses reflected rays in view space instead of surface normals to correctly sample the environment map&lt;/li&gt;
&lt;li&gt;implements stochastic blue noise blur for roughness effects and discusses limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-425/matcap-example-2xl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260123000755/https://enikofox.com/posts/reflective-materials-in-block-game/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=DKG-qnJ8GDg&#34; target=&#34;_blank&#34; id=&#34;[video] Terrain Texture Node Parameters - Terrain Shaders - Episode 13&#34;&gt;[video] Terrain Texture Node Parameters - Terrain Shaders - Episode 13&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;demonstrates using the Terrain Texture Node in Unity&amp;rsquo;s Shader Graph to import terrain-system parameters for material layer settings&lt;/li&gt;
&lt;li&gt;shows how to adjust layer properties (color tint, opacity, etc.) and notes practical Inspector/HDRP quirks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-425/terrain_node.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=y7Er4lgxMcQ&#34; target=&#34;_blank&#34; id=&#34;[video] How To Use Marching Cubes Practically In Games [DeepDive][Part 1]&#34;&gt;[video] How To Use Marching Cubes Practically In Games [DeepDive][Part 1]&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;covers practical challenges of using Marching Cubes at scale (performance, mesh transitions, LOD) in large games&lt;/li&gt;
&lt;li&gt;discusses integration strategies (e.g., Transvoxel, streaming meshes) and common pitfalls for scalability&lt;/li&gt;
&lt;li&gt;includes demos, time-coded chapters, and links to implementation resources for further reading&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-425/marching_cubes.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=YHfYJ_EcjNc&#34; target=&#34;_blank&#34; id=&#34;[video] Particle Collision // Physics For Game Dev #2&#34;&gt;[video] Particle Collision // Physics For Game Dev #2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents sphere-based particle collision detection and response, with practical code examples and a demo&lt;/li&gt;
&lt;li&gt;explains momentum, kinetic energy, collision types, and coefficient of restitution, including a 1D→3D generalization&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-425/3d_collision.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.reedbeta.com&#34; target=&#34;_blank&#34;&gt;Nathan Reed&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 424 - January 18th, 2026</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-424/</link>
      <pubDate>Sun, 18 Jan 2026 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-424/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://enikofox.com/posts/software-rendered-occlusion-culling-in-block-game/&#34; target=&#34;_blank&#34; id=&#34;Software occlusion culling in Block Game&#34;&gt;Software occlusion culling in Block Game&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a CPU-based software occlusion culling system for voxel rendering&lt;/li&gt;
&lt;li&gt;uses hierarchical subchunk levels (8x8x8 down to 1x1x1 blocks) to efficiently render occluders at varying distances&lt;/li&gt;
&lt;li&gt;presenting optimization steps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-424/occlusion-header.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260121041447/https://enikofox.com/posts/software-rendered-occlusion-culling-in-block-game/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alexharri.com/blog/ascii-rendering&#34; target=&#34;_blank&#34; id=&#34;ASCII characters are not pixels: a deep dive into ASCII rendering&#34;&gt;ASCII characters are not pixels: a deep dive into ASCII rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explores shape-based ASCII rendering using 6-dimensional sampling vectors to capture character geometry&lt;/li&gt;
&lt;li&gt;introduces directional and global contrast enhancement techniques to sharpen edges between color boundaries&lt;/li&gt;
&lt;li&gt;implements GPU-accelerated sampling and k-d tree lookups with caching&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-424/ascii_art.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260122164023/https://alexharri.com/blog/ascii-rendering&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0015/01/02/&#34; target=&#34;_blank&#34; id=&#34;Optimizing spatiotemporal variance-guided filtering for modern GPU architectures&#34;&gt;Optimizing spatiotemporal variance-guided filtering for modern GPU architectures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents memory access optimizations for the à-trous wavelet transform used in SVGF denoising&lt;/li&gt;
&lt;li&gt;achieves 1.3-2.5x performance improvement by optimizing for modern GPU cache hierarchies&lt;/li&gt;
&lt;li&gt;maintains filtering quality while reducing execution time without imposing filter configuration limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-424/spatiotemporal.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260123031511/https://jcgt.org/published/0015/01/02/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://uaasoftware.bitbucket.io/vrhi.html&#34; target=&#34;_blank&#34; id=&#34;High-Level Vulkan RHI&#34;&gt;High-Level Vulkan RHI&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces VRHI, an immediate-mode Vulkan RHI with DX11/DX9-style API design&lt;/li&gt;
&lt;li&gt;includes transient staging buffers, cached descriptor sets/PSOs, and threaded backend support&lt;/li&gt;
&lt;li&gt;described as AI-generated educational material intended to inspire better RHI implementations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-424/vulkan_abstraction.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260123030420/https://uaasoftware.bitbucket.io/vrhi.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bkaradzic.github.io/posts/webgpu/&#34; target=&#34;_blank&#34; id=&#34;bgfx WebGPU backend, second take!&#34;&gt;bgfx WebGPU backend, second take!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;documents the reimplementation of bgfx&amp;rsquo;s WebGPU backend using Tint for SPIR-V to WGSL shader translation&lt;/li&gt;
&lt;li&gt;critiques WebGPU&amp;rsquo;s design choices (versioning chaos, texture format tiers, structure chaining) while praising simplified buffer/texture management&lt;/li&gt;
&lt;li&gt;discusses Dawn/Tint bugs encountered and provides build instructions for native WebGPU development&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-424/bgfx_webgpu.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260121023946/https://bkaradzic.github.io/posts/webgpu/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ncannasse.github.io/picogpu/&#34; target=&#34;_blank&#34; id=&#34;Pico GPU&#34;&gt;Pico GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;virtual GPU designed for learning and experimenting with shaders in a constrained 300KB memory environment&lt;/li&gt;
&lt;li&gt;supports 640x480 rendering at 60 FPS with vertex/fragment buffers, render targets, and GPU-based sound synthesis&lt;/li&gt;
&lt;li&gt;includes save/load functionality as PNG screenshots containing all application data for easy sharing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-424/pico_gpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/krQve&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/mastering-gfxreconstruct-part-4/&#34; target=&#34;_blank&#34; id=&#34;Mastering GFXReconstruct: Part 4&#34;&gt;Mastering GFXReconstruct: Part 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains the structure and contents of .gfxr capture files for Vulkan, Direct3D, and OpenXR applications&lt;/li&gt;
&lt;li&gt;details what gets captured (API calls, memory snapshots, pipeline state) and achieving replay across platforms&lt;/li&gt;
&lt;li&gt;discusses portability considerations and additional tools that are using the format&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-424/Mastering-GFXReconstruct.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260123031045/https://www.lunarg.com/mastering-gfxreconstruct-part-4/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=rd2glMlHwYI&#34; target=&#34;_blank&#34; id=&#34;[video] Learn to Read &amp;#43; Edit HLSL in 40 min&#34;&gt;[video] Learn to Read &amp;#43; Edit HLSL in 40 min&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;beginner-friendly HLSL tutorial that builds a custom shader from scratch&lt;/li&gt;
&lt;li&gt;covers shader structure, properties &amp;amp; variables, vertex vs fragment shaders, interpolators, vertex streams, and writing/animating  effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-424/hlsl_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=cDs0vgtGjeA&#34; target=&#34;_blank&#34; id=&#34;[video] Adding Terrain Detail Meshes - Terrain Shaders - Episode 12&#34;&gt;[video] Adding Terrain Detail Meshes - Terrain Shaders - Episode 12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;demonstrates using built-in tools in Unreal and Unity to add foliage and detail meshes to terrain and landscapes&lt;/li&gt;
&lt;li&gt;discusses practical workflows (painting vs procedural placement), performance trade-offs (instancing vs SRP batching) and LOD considerations for large scenes&lt;/li&gt;
&lt;li&gt;part of a Terrain Shaders playlist with step-by-step demos and recommended resources for terrain detail pipelines&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-424/terrain_meshes.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.reedbeta.com&#34; target=&#34;_blank&#34;&gt;Nathan Reed&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 423 - January 11th, 2026</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-423/</link>
      <pubDate>Sun, 11 Jan 2026 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-423/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.corsix.org/content/thoughts-on-no-graphics-api&#34; target=&#34;_blank&#34; id=&#34;Thoughts on No Graphics API&#34;&gt;Thoughts on No Graphics API&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses Sebastian Aaltonen&amp;rsquo;s &amp;ldquo;No Graphics API&amp;rdquo; article&lt;/li&gt;
&lt;li&gt;examines which graphics-specific functions might be stripped and the implications for multi-device/multi-process setups&lt;/li&gt;
&lt;li&gt;highlights practical concerns (write-combining memory pitfalls, deadlock avoidance, and 32-bit compatibility)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-423/cuda.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260113235937/https://www.corsix.org/content/thoughts-on-no-graphics-api&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://static.graphicsprogrammingconference.com/public/2025/slides/shader2human/Mittring-shadertohuman-s2h-hlsl-glsl-library-for-debugging-shaders.pdf&#34; target=&#34;_blank&#34; id=&#34;Shader To Human&#34;&gt;Shader To Human&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces Shader2Human, a lightweight HLSL/GLSL library that exposes debugging tools directly from shaders&lt;/li&gt;
&lt;li&gt;provides macros and helpers to make shader diagnostics and rapid iteration easier without heavy capture tooling&lt;/li&gt;
&lt;li&gt;slides walk through usage patterns and examples for faster shader development&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-423/shader_to_human.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260114165121/https://static.graphicsprogrammingconference.com/public/2025/slides/shader2human/Mittring-shadertohuman-s2h-hlsl-glsl-library-for-debugging-shaders.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/cverrier/tinygrad-tutos/blob/main/tutos/gpu_memory.md&#34; target=&#34;_blank&#34; id=&#34;GPU Memory Fundamentals&#34;&gt;GPU Memory Fundamentals&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tutorial on GPU memory concepts, covers movement between VRAM and compute units, and the role of memory speed, interface width and bandwidth&lt;/li&gt;
&lt;li&gt;explains memory-bound vs compute-bound operations via arithmetic intensity and practical tinygrad benchmarks, with concrete optimization guidelines&lt;/li&gt;
&lt;li&gt;includes hands-on examples and timing tips for accurate GPU benchmarking and optimization&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-423/memory_talk.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260114170003/https://github.com/cverrier/tinygrad-tutos/blob/main/tutos/gpu_memory.md&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0015/01/01/&#34; target=&#34;_blank&#34; id=&#34;Practically Utilizing Neural Networks in CPU-based Production Rendering&#34;&gt;Practically Utilizing Neural Networks in CPU-based Production Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;demonstrates how lightweight neural networks can be integrated into CPU-based production path tracers to improve memory, speed, and image quality under low-latency constraints&lt;/li&gt;
&lt;li&gt;discusses practical inference considerations on CPU and the trade-offs when bringing ML into offline rendering pipelines&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-423/ml-offline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260114170529/https://jcgt.org/published/0015/01/01/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://auzaiffe.wordpress.com/2026/01/10/sample-decorrelation-in-brdf-preconvolution-for-image-based-lighting/&#34; target=&#34;_blank&#34; id=&#34;Sample Decorrelation in BRDF Preconvolution for Image Based Lighting&#34;&gt;Sample Decorrelation in BRDF Preconvolution for Image Based Lighting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;investigates a seam artifact in HDRP&amp;rsquo;s LD preconvolution caused by reusing identical sample sequences per pixel combined with local-frame singularities at cube-face boundaries&lt;/li&gt;
&lt;li&gt;suggests practical fixes and recommends decorrelation as a pragmatic patch&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-423/image-variance.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260114191042/https://auzaiffe.wordpress.com/2026/01/10/sample-decorrelation-in-brdf-preconvolution-for-image-based-lighting/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://superluminal.eu/efficiently-sorting-gigabytes-the-deferred-merge-sort/&#34; target=&#34;_blank&#34; id=&#34;Efficiently sorting gigabytes: the Deferred Merge Sort&#34;&gt;Efficiently sorting gigabytes: the Deferred Merge Sort&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a low-memory approach for globally sorting mostly-ordered event streams&lt;/li&gt;
&lt;li&gt;leverages data patterns (nearly sorted streams, local disorder) to prefetch and hide I/O, making global sorting cheaper&lt;/li&gt;
&lt;li&gt;discusses comparisons to k-way lazy merge and proposes a hybrid JIT-sort fallback&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-423/merge_sort.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260106225431/https://superluminal.eu/efficiently-sorting-gigabytes-the-deferred-merge-sort/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphicsprogrammingconference.com/archive/2025/&#34; target=&#34;_blank&#34; id=&#34;Graphics Programming Conference 2025 - slides released&#34;&gt;Graphics Programming Conference 2025 - slides released&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;GPC 2025 archive with session descriptions and slides from a wide range of real-time graphics talks&lt;/li&gt;
&lt;li&gt;inluding Shader2Human (shader debugging), Blender Cycles architecture, real-time path tracing, neural shading, profiling &amp;amp; platform optimization talks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-423/blender.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260110135759/https://graphicsprogrammingconference.com/archive/2025/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=il-TXbn5iMA&#34; target=&#34;_blank&#34; id=&#34;[video] I&amp;#39;m making a game engine based on dynamic signed distance fields (SDFs)&#34;&gt;[video] I&amp;#39;m making a game engine based on dynamic signed distance fields (SDFs)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;showcases an SDF-based engine for high-fidelity, non-destructive world edits&lt;/li&gt;
&lt;li&gt;covers architecture &amp;amp; optimizations:&lt;/li&gt;
&lt;li&gt;discusses ray-marching performance issues, physics/collision integration, terrain as SDF and practical trade-offs versus triangle meshes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-423/sdf-engine.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=f0aT0ifRo-k&#34; target=&#34;_blank&#34; id=&#34;Indirect Rendering // Vulkan For Beginners #27 &#34;&gt;Indirect Rendering // Vulkan For Beginners #27 &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;practical tutorial on implementing indirect rendering in Vulkan, covering vertex/index/uniform buffer offsets, indirect buffers, and vkCmdDrawIndirect&lt;/li&gt;
&lt;li&gt;demonstrates a new pipeline class and shows how to enable indirect rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-423/indirect_rendering_vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=08mmKNLQVHU&#34; target=&#34;_blank&#34; id=&#34;[video] Coding Adventure: Analyzing Audio&#34;&gt;[video] Coding Adventure: Analyzing Audio&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;walkthrough of programmatic audio analysis: techniques for computing FFTs, spectrograms and extracting features from audio signals&lt;/li&gt;
&lt;li&gt;includes code examples and visualizations to illustrate frequency vs time behaviour and practical tips for real-time analysis&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-423/fft.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://erichaines.com/&#34; target=&#34;_blank&#34;&gt;Eric Haines&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 422 - January 4th, 2026</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-422/</link>
      <pubDate>Sun, 04 Jan 2026 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-422/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/abs/2512.23696&#34; target=&#34;_blank&#34; id=&#34;OpenPBR: Novel Features and Implementation Details&#34;&gt;OpenPBR: Novel Features and Implementation Details&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;companion document to the OpenPBR specification providing deeper implementation guidance for the standardized uber-shader&lt;/li&gt;
&lt;li&gt;covers slab-based layering, statistical mixing, and microfacet theory with mathematical derivations and code examples&lt;/li&gt;
&lt;li&gt;discusses physical components including metallic, dielectric, subsurface substrates, thin-film iridescence, and planned extensions like hazy specular reflection&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-422/Brushes_Arnold_FINAL.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251230030839/https://arxiv.org/abs/2512.23696&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/articles/state_of_gpu_hardware_2025.php&#34; target=&#34;_blank&#34; id=&#34;State of GPU Hardware (End of Year 2025)&#34;&gt;State of GPU Hardware (End of Year 2025)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;analysis of GPU market share and D3D12 feature support using Steam Hardware Survey and D3d12infoDB&lt;/li&gt;
&lt;li&gt;examines adoption rates for DXR, Shader Model 6.6-6.8, Mesh Shaders, Enhanced Barriers, VRS, and Work Graphs across GPU architectures&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-422/mesh_shader_support.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251229195522/https://asawicki.info/articles/state_of_gpu_hardware_2025.php&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.acm.org/publications/openaccess&#34; target=&#34;_blank&#34; id=&#34;ACM&amp;#39;s Transition to Full Open Access&#34;&gt;ACM&amp;#39;s Transition to Full Open Access&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces ACM&amp;rsquo;s transition to fully open access publishing model&lt;/li&gt;
&lt;li&gt;makes all ACM research content freely available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-422/acm-milestones-timeline.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260102043906/https://www.acm.org/publications/openaccess&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alextardif.com/BindlessProgramming.html&#34; target=&#34;_blank&#34; id=&#34;Bindless Oriented Graphics Programming&#34;&gt;Bindless Oriented Graphics Programming&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;advocates for bindless rendering as an accessible gateway to GPU-driven rendering with lowered complexity&lt;/li&gt;
&lt;li&gt;demonstrates how bindless resources enable event-driven draw management with reduced CPU involvement&lt;/li&gt;
&lt;li&gt;proposes treating GPU data as database tables with compute shaders only modifying tables for simplified renderer architecture&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-422/bindlessdb.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260107003150/https://alextardif.com/BindlessProgramming.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.howtovulkan.com/&#34; target=&#34;_blank&#34; id=&#34;How to Vulkan in 2026&#34;&gt;How to Vulkan in 2026&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;extensive tutorial demonstrating modern Vulkan 1.3 programming with simplified features like dynamic rendering and buffer device address&lt;/li&gt;
&lt;li&gt;creates functional 3D rendering application with textured meshes, lighting, and user interaction in single-file example&lt;/li&gt;
&lt;li&gt;leverages recent API improvements including descriptor indexing, synchronization2, and Slang shader language to reduce verbosity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-422/Vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260104030248/https://www.howtovulkan.com/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpfault.net/posts/aabb-tricks.html&#34; target=&#34;_blank&#34; id=&#34;A Couple 3D AABB Tricks&#34;&gt;A Couple 3D AABB Tricks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents practical techniques for working with axis-aligned bounding boxes including slab-based min/max representation for simpler merging operations&lt;/li&gt;
&lt;li&gt;demonstrates an approach to extract individual vertex coordinates from AABB using vertex index without floating-point math&lt;/li&gt;
&lt;li&gt;explains efficient ray-AABB intersection test&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-422/aabb.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251230111229/https://gpfault.net/posts/aabb-tricks.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jjbannister.github.io/tinydiffrast/&#34; target=&#34;_blank&#34; id=&#34;TinyDiffRast project&#34;&gt;TinyDiffRast project&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;educational course implementing differentiable triangle rasterization from scratch inspired by tiny renderer&lt;/li&gt;
&lt;li&gt;teaches inverse rendering techniques allowing 3D scene parameters to be learned from 2D images through gradient-based optimization&lt;/li&gt;
&lt;li&gt;covers automatic differentiation, discontinuity handling, and practical applications including optimizing geometry, materials, lighting, and camera parameters&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-422/simple_diff.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241125141558/https://jjbannister.github.io/tinydiffrast/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://irradiance.ca/posts/microshadowing-part1/&#34; target=&#34;_blank&#34; id=&#34;Improving Direct Lighting Material Occlusion - Part 1&#34;&gt;Improving Direct Lighting Material Occlusion - Part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;analyzes limitations of traditional micro-occlusion texture baking for material-level direct lighting occlusion&lt;/li&gt;
&lt;li&gt;compares micro-shadowing approaches from Naughty Dog and Activision with analytical formulas and visual results&lt;/li&gt;
&lt;li&gt;proposes improved analytical alternative using cone angle calculations with better handling of full occlusion and roughness variation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-422/Analytical.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251227001625/https://irradiance.ca/posts/microshadowing-part1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lisyarus.github.io/blog/posts/a-silly-diffuse-shading-model.html&#34; target=&#34;_blank&#34; id=&#34;A silly diffuse shading model&#34;&gt;A silly diffuse shading model&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;proposes alternative diffuse lighting formula that avoids completely black unlit areas&lt;/li&gt;
&lt;li&gt;provides simple one-liner solution for test projects that preserves geometric detail without complex lighting setups&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-422/dragon-fake-diffuse-2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20260101222451/https://lisyarus.github.io/blog/posts/a-silly-diffuse-shading-model.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.abolishcrlf.org//2025/12/31/Printf.html&#34; target=&#34;_blank&#34; id=&#34;An Experimental Approach to printf in HLSL&#34;&gt;An Experimental Approach to printf in HLSL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a prototype implementation of printf debugging for HLSL shaders&lt;/li&gt;
&lt;li&gt;uses compile-time string table extraction and builtin functions to convert format strings into buffer offsets&lt;/li&gt;
&lt;li&gt;implemented entirely in HLSL using variadic templates&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-422/printf_shaders.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/BlNL1&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/events/shading-languages-symposium-2026#registration&#34; target=&#34;_blank&#34; id=&#34;Early-bird deadline for the Shading Languages Symposium 2026&#34;&gt;Early-bird deadline for the Shading Languages Symposium 2026&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;conference program has been released&lt;/li&gt;
&lt;li&gt;Combined passes for the Shading Languages Symposium + Vulkanised are available&lt;/li&gt;
&lt;li&gt;Early bird ticket sales are still available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-418/symposium-event-banner.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251202044724/https://www.khronos.org/events/shading-languages-symposium-2026#registration&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=VTrdeqMMMK0&#34; target=&#34;_blank&#34; id=&#34;[video] SIGGRAPH 2025 Advances in Real-Time Rendering in Games: Fast as Hell: idTech8 Global Illumination&#34;&gt;[video] SIGGRAPH 2025 Advances in Real-Time Rendering in Games: Fast as Hell: idTech8 Global Illumination&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presentation detailing the path-traced global illumination system in idTech8&lt;/li&gt;
&lt;li&gt;discusses optimizations for dynamic lighting, material complexity, and scene complexity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-422/idTech7.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/playlist?list=PLwFtWV3PS6y_oTOfHjbE0Zk8N9_QuQlHy&#34; target=&#34;_blank&#34; id=&#34;[video] Getting started with BGFX&#34;&gt;[video] Getting started with BGFX&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video tutorial series introducing BGFX, a cross-platform graphics rendering library&lt;/li&gt;
&lt;li&gt;covers setup, basic rendering concepts, and how to create simple graphics applications&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-422/bgfx.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=--gVJq8_aEA&#34; target=&#34;_blank&#34; id=&#34;[video] Painting Holes in Terrain - Terrain Shaders - Episode 10&#34;&gt;[video] Painting Holes in Terrain - Terrain Shaders - Episode 10&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video tutorial showing how to create holes or cutouts in terrain geometry&lt;/li&gt;
&lt;li&gt;demonstrates shader techniques for masking and clipping terrain based on texture data&lt;/li&gt;
&lt;li&gt;covers practical applications like caves, tunnels, or dynamic terrain destruction&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-422/terrain_holes.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jms55.github.io/posts/2025-12-27-solari-bevy-0-18/&#34; target=&#34;_blank&#34; id=&#34;Realtime Raytracing in Bevy 0.18 (Solari)&#34;&gt;Realtime Raytracing in Bevy 0.18 (Solari)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;details improvements to Bevy&amp;rsquo;s dynamic raytraced lighting system in version 0.18&lt;/li&gt;
&lt;li&gt;adds specular material support with GGX BRDF including importance sampling and proper handling for mirror surfaces&lt;/li&gt;
&lt;li&gt;fixes energy loss bugs, reduces ReSTIR resampling correlations, and improves world cache performance with adaptive blend factors and lifetime management&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-422/bevy-raytracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251228010215/https://jms55.github.io/posts/2025-12-27-solari-bevy-0-18/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevicius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 421 - December 28th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-421/</link>
      <pubDate>Sun, 28 Dec 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-421/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.sebastianaaltonen.com/blog/no-graphics-api&#34; target=&#34;_blank&#34; id=&#34;No Graphics API&#34;&gt;No Graphics API&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;very detailed blog post that discusses the reality of modern GPU hardware&lt;/li&gt;
&lt;li&gt;presenting the disconnect between API models and hardware&lt;/li&gt;
&lt;li&gt;proposes a minimalistic modern graphics API design that reduces complexity while maintaining performance&lt;/li&gt;
&lt;li&gt;blog post contains an example of what such an API might look like&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-421/amd_dcc_cache.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251227213517/https://www.sebastianaaltonen.com/blog/no-graphics-api&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aousd.org/blog/foundations-of-open-3d-development-introducing-aousd-core-specification-1-0/&#34; target=&#34;_blank&#34; id=&#34;OpenUSD Core Spec 1.0 is Here: Now We Need You&#34;&gt;OpenUSD Core Spec 1.0 is Here: Now We Need You&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces the release of the OpenUSD Core Specification 1.0 defining formal semantics for scene descriptions&lt;/li&gt;
&lt;li&gt;specifies six essential pillars including grammar, composition algorithm, and compliance framework&lt;/li&gt;
&lt;li&gt;provides sample implementations and conformance testing tools for validating implementations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-421/open_usd.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251218113736/https://aousd.org/blog/foundations-of-open-3d-development-introducing-aousd-core-specification-1-0/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1795_secrets_of_direct3d_12_the_behavior_of_clearunorderedaccessviewuintfloat&#34; target=&#34;_blank&#34; id=&#34;Secrets of Direct3D 12: The Behavior of ClearUnorderedAccessViewUint/Float&#34;&gt;Secrets of Direct3D 12: The Behavior of ClearUnorderedAccessViewUint/Float&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;investigates behavior of ClearUnorderedAccessViewUint and ClearUnorderedAccessViewFloat functions&lt;/li&gt;
&lt;li&gt;reveals inconsistent type conversions across NVIDIA, AMD, and Intel GPUs for various buffer formats&lt;/li&gt;
&lt;li&gt;demonstrates that unsigned integer clears work differently than documented in DirectX 11&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-421/dx12.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251224031021/https://asawicki.info/news_1795_secrets_of_direct3d_12_the_behavior_of_clearunorderedaccessviewuintfloat&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=8boeQyIEk9Q&#34; target=&#34;_blank&#34; id=&#34;[video] Filtering -vs- Graphics Round 2&#34;&gt;[video] Filtering -vs- Graphics Round 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;continues the series with practical solutions and sample patterns for real-time renderers&lt;/li&gt;
&lt;li&gt;shows shader-level techniques (sample distributions, MSAA-aware approaches) and links to Shadertoy experiments for direct testing&lt;/li&gt;
&lt;li&gt;covers trade-offs between artifact reduction and performance, with suggestions that are implementable in real-time&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-421/filtering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/NVIDIA/cuda-tile&#34; target=&#34;_blank&#34; id=&#34;CUDA Tile IR&#34;&gt;CUDA Tile IR&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces an MLIR-based intermediate representation for CUDA kernel targeting tensor cores&lt;/li&gt;
&lt;li&gt;provides domain-specific operations for tile-based computations with Python bindings&lt;/li&gt;
&lt;li&gt;includes bytecode serialization format&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-421/CUDA-Tile.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251227002849/https://github.com/NVIDIA/cuda-tile&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lessvrong.com/cs/nexels/&#34; target=&#34;_blank&#34; id=&#34;Nexels: Neurally-Textured Surfels for Real-Time Novel View Synthesis with Sparse Geometries&#34;&gt;Nexels: Neurally-Textured Surfels for Real-Time Novel View Synthesis with Sparse Geometries&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a novel representation combining surfels with neural texturing for view synthesis&lt;/li&gt;
&lt;li&gt;achieves quality matching 3D Gaussian splatting using 9.7x fewer primitives on outdoor scenes&lt;/li&gt;
&lt;li&gt;aims to improve render times compared to existing methods by selectively texturing high-weight samples&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-421/nexels.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251217040214/https://lessvrong.com/cs/nexels/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=CWwJNqPlirM&#34; target=&#34;_blank&#34; id=&#34;[video] Parallax Occlusion and Nanite Displacement - Terrain Shaders - Episode 9&#34;&gt;[video] Parallax Occlusion and Nanite Displacement - Terrain Shaders - Episode 9&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;walkthrough of parallax occlusion mapping (POM) techniques for Unity&lt;/li&gt;
&lt;li&gt;integrating Nanite displacement for terrain rendering and how Nanite displacement changes displacement workflows&lt;/li&gt;
&lt;li&gt;discusses performance implications and offers tips for balancing quality vs cost in terrain shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-421/terrain_parallax.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=1vMJcJNNrCc&#34; target=&#34;_blank&#34; id=&#34;[video] Filtering -vs- Graphics Round 3&#34;&gt;[video] Filtering -vs- Graphics Round 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;short talk focused on micro-optimizations to the filter kernel and their real-world impact&lt;/li&gt;
&lt;li&gt;examines kernel tweaks that reduce aliasing artifacts while keeping shader cost low&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-421/remap_kernels.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=eALXNAYUVsY&#34; target=&#34;_blank&#34; id=&#34;[video] Basic Framework - Physics For Game Dev #1&#34;&gt;[video] Basic Framework - Physics For Game Dev #1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;sets up an initial physics framework and demonstrates simple particle dynamics&lt;/li&gt;
&lt;li&gt;walks through application/physics system classes and a short demo showcasing the physics update&lt;/li&gt;
&lt;li&gt;rendering is implmeneted using OpenGL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-421/physics_engine_render.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=d04h0sZPwFU&#34; target=&#34;_blank&#34; id=&#34;[video] niagara: Cooking geometry&#34;&gt;[video] niagara: Cooking geometry&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;live stream focused on making scene loading faster by caching optimized geometry on disk and adding compression&lt;/li&gt;
&lt;li&gt;walks through implementing a basic scene cache, switching to memory-mapped loading, adding compression, and profiling cold/hot runs and page-fault behaviour&lt;/li&gt;
&lt;li&gt;practical andf focused session with profiling runs, implementation details and trade-offs for robust cache/IO design&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-421/niagara_profiling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=rG2aok2SdbU&#34; target=&#34;_blank&#34; id=&#34;[video] Sparse Radiance Cascades: goodbye screenspace&#34;&gt;[video] Sparse Radiance Cascades: goodbye screenspace&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents the results of replacing the screenspace raymarcher implementation with a hardware-accelerated raytracer enabling offscreen lights and more stable GI&lt;/li&gt;
&lt;li&gt;achieves real-time per-frame GI (no denoiser) on a 4090&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-421/gi_results.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevicius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 420 - December 14h, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-420/</link>
      <pubDate>Sun, 14 Dec 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-420/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://meshoptimizer.org/v1.html&#34; target=&#34;_blank&#34; id=&#34;meshoptimizer v1.0 GitHub&#34;&gt;meshoptimizer v1.0 GitHub&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;highlights improvements to clusterization algorithms, producing higher-quality meshlets and better partitioning for hierarchical structures&lt;/li&gt;
&lt;li&gt;stabilizes all experimental features with API, ABI, and behavior compatibility guarantees&lt;/li&gt;
&lt;li&gt;additionally announces the inclusion of clusterlod, a single header library for continuous level of detail generation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-420/v1_clusters.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251216225051/https://meshoptimizer.org/v1.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://real-mrbeam.github.io/2025/12/11/Optimizing-Mannequin.html&#34; target=&#34;_blank&#34; id=&#34;Optimizing mannequin&#34;&gt;Optimizing mannequin&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;details performance optimizations for a VR title on Quest 2&lt;/li&gt;
&lt;li&gt;describes improved culling and draw call reduction strategies&lt;/li&gt;
&lt;li&gt;presents solutions for reducing draw calls through manual instancing, Custom Primitive Data, and LOD bias techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-420/PropSizeDefinitions.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251216225825/https://real-mrbeam.github.io/2025/12/11/Optimizing-Mannequin.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://frozenfractal.com/blog/2025/12/12/around-the-world-28-scaling-up/&#34; target=&#34;_blank&#34; id=&#34;Around The World, Part 28: Scaling up&#34;&gt;Around The World, Part 28: Scaling up&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses a simple world wrapping implementation using a chunk-based hierarchy in Godot&lt;/li&gt;
&lt;li&gt;presents a terrain LOD system with skirts to prevent cracks&lt;/li&gt;
&lt;li&gt;additionally presents tree impostors for distant vegetation using billboards&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-420/world_origin.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251216230422/https://frozenfractal.com/blog/2025/12/12/around-the-world-28-scaling-up/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://meshsplatting.github.io/&#34; target=&#34;_blank&#34; id=&#34;MeshSplatting: Differentiable Rendering with Opaque Meshes&#34;&gt;MeshSplatting: Differentiable Rendering with Opaque Meshes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a mesh-based reconstruction approach that jointly optimizes geometry and appearance through differentiable rendering&lt;/li&gt;
&lt;li&gt;uses restricted Delaunay triangulation to enforce connectivity and creates smooth surfaces with opaque triangles&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-420/mesh_splatting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251211234133/https://meshsplatting.github.io/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=vDByyuwT7Q4&#34; target=&#34;_blank&#34; id=&#34;[video] Filtering -Vs- Graphics&#34;&gt;[video] Filtering -Vs- Graphics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video discusses filtering considerations when implementing real-time graphics&lt;/li&gt;
&lt;li&gt;compares against cinema quality and presents what causes games to have a specific look&lt;/li&gt;
&lt;li&gt;additionally presents games that achieved particularly good results in image clarity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-420/sample_quality.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=1nNqxtvCVlY&#34; target=&#34;_blank&#34; id=&#34;Eliminate Slope Stretching - Terrain Shaders - Episode 8 &#34;&gt;Eliminate Slope Stretching - Terrain Shaders - Episode 8 &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video presents how to update the texture projection logic so that it can better deal with horizontal slopes&lt;/li&gt;
&lt;li&gt;approaches the problem by projecting textures from the front and sides instead of only the top&lt;/li&gt;
&lt;li&gt;shows how to implement the technique in both Unreal and Unity visual scripting&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-420/terrain_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphics.cs.utah.edu/research/projects/psms-restir/&#34; target=&#34;_blank&#34; id=&#34;Sample Space Partitioning and Spatiotemporal Resampling for Specular Manifold Sampling&#34;&gt;Sample Space Partitioning and Spatiotemporal Resampling for Specular Manifold Sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;extends Specular Manifold Sampling for interactive caustic rendering using tile-based sample space partitioning&lt;/li&gt;
&lt;li&gt;restricts expensive Newton iterations to the vicinity of seed paths by building per-frame prior distributions&lt;/li&gt;
&lt;li&gt;applies ReSTIR spatiotemporal resampling to amortize sample generation costs and achieve variance reduction&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-420/sms_restir.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.youtube.com/watch?v=cD_jnCAqxWk&#34; style=&#34;color:white;&#34;&gt;video &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251216232517/https://graphics.cs.utah.edu/research/projects/psms-restir/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphics.cs.utah.edu/research/projects/ipbf/&#34; target=&#34;_blank&#34; id=&#34;Implicit Position-Based Fluids (IPBF)&#34;&gt;Implicit Position-Based Fluids (IPBF)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces a novel incompressible SPH scheme using second-order implicit descent&lt;/li&gt;
&lt;li&gt;demonstrates improved incompressibility and stability compared to velocity-based methods like IISPH and DFSPH&lt;/li&gt;
&lt;li&gt;remains unconditionally stable even for large time steps while avoiding the compression artifacts of standard position-based methods&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-420/position_based_physics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.youtube.com/watch?v=I3ri18uJ7XU&#34; style=&#34;color:white;&#34;&gt;video &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251216232643/https://graphics.cs.utah.edu/research/projects/ipbf/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://pharr.org/matt&#34; target=&#34;_blank&#34;&gt;Matt Pharr&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 419 - December 7th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-419/</link>
      <pubDate>Sun, 07 Dec 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-419/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/focus-on-your-algorithm-nvidia-cuda-tile-handles-the-hardware/&#34; target=&#34;_blank&#34; id=&#34;Focus on Your Algorithm—NVIDIA CUDA Tile Handles the Hardware&#34;&gt;Focus on Your Algorithm—NVIDIA CUDA Tile Handles the Hardware&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces CUDA Tile, a tile-based programming model launching with CUDA 13.1&lt;/li&gt;
&lt;li&gt;provides developers with cuTile Python for accessible GPU programming and CUDA Tile IR for building custom DSL or libraries&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-419/Tile-model.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251208013342/https://developer.nvidia.com/blog/focus-on-your-algorithm-nvidia-cuda-tile-handles-the-hardware/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/vk-ext-present-timing-the-journey-to-state-of-the-art-frame-pacing-in-vulkan&#34; target=&#34;_blank&#34; id=&#34;VK_EXT_present_timing: the Journey to State-of-the-Art Frame Pacing in Vulkan&#34;&gt;VK_EXT_present_timing: the Journey to State-of-the-Art Frame Pacing in Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces VK_EXT_present_timing extension to enable precise frame pacing control in Vulkan&lt;/li&gt;
&lt;li&gt;provides timing feedback from previous frames and allows specifying target presentation times for future frames&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-419/frame_pacing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/agm4I&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://anki3d.org/minimalist-ray-tracing-leveraging-only-acceleration-structures/&#34; target=&#34;_blank&#34; id=&#34;Minimalist ray-tracing leveraging only acceleration structures&#34;&gt;Minimalist ray-tracing leveraging only acceleration structures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a low-quality ray tracing mode using ray queries and data stored in acceleration structures&lt;/li&gt;
&lt;li&gt;eliminates ray pipelines, shader binding tables, and texture access by storing average diffuse color in TLAS instanceCustomIndex&lt;/li&gt;
&lt;li&gt;uses VK_KHR_ray_tracing_position_fetch to compute face normals from triangle vertex positions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-419/ray_tracing_low_quality.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251207215724/https://anki3d.org/minimalist-ray-tracing-leveraging-only-acceleration-structures/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://yunfan.zone/gswt_webpage/&#34; target=&#34;_blank&#34; id=&#34;GSWT: Gaussian Splatting Wang Tiles&#34;&gt;GSWT: Gaussian Splatting Wang Tiles&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;proposes a tile-based framework for synthesizing large-scale terrains from 3D Gaussian Splatting exemplars&lt;/li&gt;
&lt;li&gt;builds on Wang Tiles with boundary constraints to enable seamless tiling of Gaussian fields&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-419/wang_tiles.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251208014456/https://yunfan.zone/gswt_webpage/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://thegeeko.me/blog/amd-gpu-debugging/&#34; target=&#34;_blank&#34; id=&#34;AMD GPU Debugger&#34;&gt;AMD GPU Debugger&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a walkthrough of implementing a GPU debugger for AMD hardware&lt;/li&gt;
&lt;li&gt;explains how to use registers and trap handlers to pause GPU execution and inspect register state&lt;/li&gt;
&lt;li&gt;demonstrates stepping through shaders, examining variables, and integrating with SPIR-V compilation through RADV&amp;rsquo;s ACO compiler&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-419/amd_debugger.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251206150558/https://thegeeko.me/blog/amd-gpu-debugging/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/ARM-software/libGPUCounters/tree/main/specification&#34; target=&#34;_blank&#34; id=&#34;libGPUCounters Machine Readable Specification&#34;&gt;libGPUCounters Machine Readable Specification&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides a machine-readable specification for Arm Mali GPU performance counters starting from Mali-G71&lt;/li&gt;
&lt;li&gt;offers Python wrappers that resolve symbolic counter references for any supported GPU&lt;/li&gt;
&lt;li&gt;enables structured iteration through counters based on various orders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-419/arm-mali.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251208013926/https://github.com/ARM-software/libGPUCounters/tree/main/specification&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.pkh.me/p/48-a-series-of-tricks-and-techniques-i-learned-doing-tiny-glsl-demos.html&#34; target=&#34;_blank&#34; id=&#34;A series of tricks and techniques I learned doing tiny GLSL demos&#34;&gt;A series of tricks and techniques I learned doing tiny GLSL demos&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shares techniques learned from creating four tiny GLSL demos constrained to 512 characters&lt;/li&gt;
&lt;li&gt;covers isometric projection setup, smooth minimum operations, and various domain warping techniques for procedural generation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-419/glsl_shaders.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251207202558/https://blog.pkh.me/p/48-a-series-of-tricks-and-techniques-i-learned-doing-tiny-glsl-demos.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=vnbARZHccpQ&#34; target=&#34;_blank&#34; id=&#34;[video] New GPU Profiler and RHI Submission Pipeline | Unreal Fest Stockholm 2025&#34;&gt;[video] New GPU Profiler and RHI Submission Pipeline | Unreal Fest Stockholm 2025&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presentation covering improvements to Unreal Engine&amp;rsquo;s GPU profiler&lt;/li&gt;
&lt;li&gt;discusses the redesigned RHI submission pipeline architecture and implementation&lt;/li&gt;
&lt;li&gt;shows how to leverage these tools for performance analysis, optimization and crash debugging&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-419/unreal_rhi.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=z3f1bE41daI&#34; target=&#34;_blank&#34; id=&#34;[video] Better Tile Breakup - Terrain Shaders - Episode 7&#34;&gt;[video] Better Tile Breakup - Terrain Shaders - Episode 7&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video tutorial on techniques to reduce tiling artifacts in terrain textures&lt;/li&gt;
&lt;li&gt;demonstrates methods to break up repetitive patterns in large-scale terrain rendering&lt;/li&gt;
&lt;li&gt;part of an ongoing series on terrain shader development&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-419/terrain_tiling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/leonardoetcheverry/&#34; target=&#34;_blank&#34;&gt;Leonardo Etcheverry&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 418 - November 30th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-418/</link>
      <pubDate>Sun, 30 Nov 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-418/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/boosting-ray-tracing-performance-with-shader-execution-reordering-introducing-vk-ext-ray-tracing-invocation-reorder&#34; target=&#34;_blank&#34; id=&#34;Boosting Ray Tracing Performance with Shader Execution Reordering: Introducing VK_EXT_ray_tracing_invocation_reorder&#34;&gt;Boosting Ray Tracing Performance with Shader Execution Reordering: Introducing VK_EXT_ray_tracing_invocation_reorder&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces the multi-vendor Vulkan extension VK_EXT_ray_tracing_invocation_reorder for Shader Execution Reordering (SER) to reduce divergence in ray tracing workloads&lt;/li&gt;
&lt;li&gt;explains how SER uses hit objects to separate ray traversal from shader invocation and allows the GPU to reorder invocations for improved coherence&lt;/li&gt;
&lt;li&gt;provides best practices, GLSL/Slang code examples, and how to profile with NVIDIA and AMD tools&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-418/shader_execution_reordering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251119022519/https://www.khronos.org/blog/boosting-ray-tracing-performance-with-shader-execution-reordering-introducing-vk-ext-ray-tracing-invocation-reorder&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.evolvebenchmark.com/blog-posts/shader-execution-reordering-benchmarked&#34; target=&#34;_blank&#34; id=&#34;Shader Execution Reordering Benchmarked&#34;&gt;Shader Execution Reordering Benchmarked&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;benchmarks Shader Execution Reordering (SER) using the Evolve pipeline path tracing benchmark across NVIDIA, AMD, and Intel GPUs&lt;/li&gt;
&lt;li&gt;tests reordering strategies based on material index and material properties mask to improve wave coherence&lt;/li&gt;
&lt;li&gt;shows significant performance improvements on NVIDIA hardware, while AMD and Intel showed minimal or no improvement&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-418/shader_reorder_benchmark.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251202044437/https://www.evolvebenchmark.com/blog-posts/shader-execution-reordering-benchmarked&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2025/11/23/spatial-hashing-for-raytraced-ambient-occlusion/&#34; target=&#34;_blank&#34; id=&#34;Spatial hashing for raytraced ambient occlusion&#34;&gt;Spatial hashing for raytraced ambient occlusion&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;implements a spatial hash structure to cache and accelerate ray-traced ambient occlusion for static scenes&lt;/li&gt;
&lt;li&gt;presents hash functions using PCG and xxhash32 with position and normal quantization to create cells that accumulate AO samples&lt;/li&gt;
&lt;li&gt;discusses distance-based cell sizing, conflict resolution via linear probing, and temporal management to handle hashmap capacity limits&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-418/ambient_occlusion.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251202043138/https://interplayoflight.wordpress.com/2025/11/23/spatial-hashing-for-raytraced-ambient-occlusion/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/gi-1-2-multibounce-indirect-rendering/&#34; target=&#34;_blank&#34; id=&#34;Introducing AMD GI-1.2 with multibounce indirect real-time rendering&#34;&gt;Introducing AMD GI-1.2 with multibounce indirect real-time rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces AMD GI-1.2 as part of the Capsaicin Framework v1.3&lt;/li&gt;
&lt;li&gt;extends the ray path by adding 2nd bounce hash grid cells to capture light from further bounces&lt;/li&gt;
&lt;li&gt;presents the algorithm steps for radiance accumulation and filtering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-418/gi_bounce.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251202043242/https://gpuopen.com/learn/gi-1-2-multibounce-indirect-rendering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=CGR1gu2KW2s&#34; target=&#34;_blank&#34; id=&#34;[video] Demystifying Vulkan Ray Tracing&#34;&gt;[video] Demystifying Vulkan Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video presentation covering the fundamentals of ray tracing&lt;/li&gt;
&lt;li&gt;covers the overview of the Vulkan API&lt;/li&gt;
&lt;li&gt;presents and explains ambient occlusion as a practical use case&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-418/ray_tracing_principles.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/SpectralRendering3Results.html&#34; target=&#34;_blank&#34; id=&#34;Spectral rendering, part 3: Spectral vs. RGB&#34;&gt;Spectral rendering, part 3: Spectral vs. RGB&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;compares RGB rendering against spectral rendering using various illuminant types from white light to monochromatic spectra&lt;/li&gt;
&lt;li&gt;demonstrates how spectral rendering accurately handles color shifts under different light sources&lt;/li&gt;
&lt;li&gt;discusses the advantages of spectral rendering for production workflows&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-418/rgb_spectral.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/save/https://momentsingraphics.de/SpectralRendering3Results.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://real-mrbeam.github.io/2025/10/28/Lighting-Mannequin.html&#34; target=&#34;_blank&#34; id=&#34;Lighting mannequin&#34;&gt;Lighting mannequin&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;describes a lighting workflow for the Quest 2 that uses Lumen for fast iteration and GPU Lightmass for final bakes&lt;/li&gt;
&lt;li&gt;presents techniques to fake light shafts without volumetric fog using Geometry Script-generated meshes and bloom effects without Mobile HDR&lt;/li&gt;
&lt;li&gt;covers solutions to enable dynamic shadows on PC while keeping static lighting on mobile hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-418/mannequin.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251202041427/https://real-mrbeam.github.io/2025/10/28/Lighting-Mannequin.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.romainguy.dev/posts/2025/finger-shadows/&#34; target=&#34;_blank&#34; id=&#34;Finger Shadows in Compose&#34;&gt;Finger Shadows in Compose&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;demonstrates using Android&amp;rsquo;s RuntimeShader API to simulate soft shadows projected by the user&amp;rsquo;s finger onto the UI&lt;/li&gt;
&lt;li&gt;models the finger as a 3D capsule and computes soft shadow visibility by calculating the spherical caps&amp;rsquo; intersection&lt;/li&gt;
&lt;li&gt;provides the complete AGSL shader implementation, including optimized trigonometric functions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-418/finger_capsule.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251202043646/https://www.romainguy.dev/posts/2025/finger-shadows/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://iquilezles.org/articles/bboxes2d/&#34; target=&#34;_blank&#34; id=&#34;2D axis aligned bounding boxes&#34;&gt;2D axis aligned bounding boxes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides a collection of 2D axis-aligned bounding box (AABB) functions for SDF primitives to enable culling and pruning&lt;/li&gt;
&lt;li&gt;covers triangles, oriented boxes, segments, pies, quadratic and cubic Bezier curves, parabolas, cut disks, eggs, stars, and vesica segments&lt;/li&gt;
&lt;li&gt;includes Shadertoy demos for each primitive&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-418/bezier_bounding.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251202043933/https://iquilezles.org/articles/bboxes2d/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=qJHFTMF_pPk&#34; target=&#34;_blank&#34; id=&#34;[video] Introducing geometric algebra&#34;&gt;[video] Introducing geometric algebra&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;first video in a series introducing geometric algebra as a framework for manipulating geometric objects through algebraic calculations&lt;/li&gt;
&lt;li&gt;provides an overview of applications, advantages over traditional linear algebra approaches, and common educational pitfalls&lt;/li&gt;
&lt;li&gt;covers the distinction between parallel and orthogonal components and sets up the foundation for deeper exploration&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-418/geometric_algebra.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rg3.name/202511262000.html&#34; target=&#34;_blank&#34; id=&#34;Notes about VK_EXT_custom_resolve&#34;&gt;Notes about VK_EXT_custom_resolve&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains the new VK_EXT_custom_resolve Vulkan extension that allows custom shaders for resolving multisample images&lt;/li&gt;
&lt;li&gt;describes how the extension enables combining resolve operations with post-processing like tone-mapping in a single shader&lt;/li&gt;
&lt;li&gt;covers the dynamic rendering support via vkCmdBeginCustomResolveEXT&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-418/valve_hardware.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251201142843/https://rg3.name/202511262000.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1794_all_sources_of_directx_12_documentation&#34; target=&#34;_blank&#34; id=&#34;All Sources of DirectX 12 Documentation&#34;&gt;All Sources of DirectX 12 Documentation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides a comprehensive guide to all D3D12 documentation sources&lt;/li&gt;
&lt;li&gt;covers the primary Microsoft documentation,  Functional Specification, DirectX-Specs, etc&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-418/d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251202043103/https://asawicki.info/news_1794_all_sources_of_directx_12_documentation&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ZI8kh0FKlMM&#34; target=&#34;_blank&#34; id=&#34;[video] SIGGRAPH Asia 2025 - Technical Papers Trailer&#34;&gt;[video] SIGGRAPH Asia 2025 - Technical Papers Trailer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;official trailer showcasing the technical papers presented at SIGGRAPH Asia 2025&lt;/li&gt;
&lt;li&gt;previews the latest research in computer graphics and interactive techniques&lt;/li&gt;
&lt;li&gt;presents a short overview of the various papers presented&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-418/siggraph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/events/shading-languages-symposium-2026#registration&#34; target=&#34;_blank&#34; id=&#34;Early-bird deadline for the Shading Languages Symposium 2026&#34;&gt;Early-bird deadline for the Shading Languages Symposium 2026&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;conference program has been released&lt;/li&gt;
&lt;li&gt;Combined passes for the Shading Languages Symposium + Vulkanised are available&lt;/li&gt;
&lt;li&gt;Early bird ticket sales are still available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-418/symposium-event-banner.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251202044724/https://www.khronos.org/events/shading-languages-symposium-2026#registration&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 417 - November 15th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-417/</link>
      <pubDate>Sat, 15 Nov 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-417/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=8O44TBN4sQc&#34; target=&#34;_blank&#34; id=&#34;[video] SIGGRAPH 2025 Advances: STOCHASTIC TILE-BASED LIGHTING IN HYPEHYPE&#34;&gt;[video] SIGGRAPH 2025 Advances: STOCHASTIC TILE-BASED LIGHTING IN HYPEHYPE&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;SIGGRAPH 2025 presentation on stochastic tile-based lighting techniques implemented in HypeHype&lt;/li&gt;
&lt;li&gt;cover motivations for the technique and how it compares against other solutions&lt;/li&gt;
&lt;li&gt;detailed discussion of the implementation&lt;/li&gt;
&lt;li&gt;covers how it interactics with other effects such as shadows&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-417/tile-sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/SpectralRendering2Rendering.html&#34; target=&#34;_blank&#34; id=&#34;Spectral rendering, part 2: Real-time rendering&#34;&gt;Spectral rendering, part 2: Real-time rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents techniques for implementing spectral rendering in real-time applications using Monte Carlo integration&lt;/li&gt;
&lt;li&gt;describes importance sampling strategies for wavelength selection based on illuminant spectra and color matching functions&lt;/li&gt;
&lt;li&gt;demonstrates that spectral rendering introduces only modest overhead compared to RGB rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-417/spectral_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251114003706/https://momentsingraphics.de/SpectralRendering2Rendering.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.shlom.dev/articles/geometry-behind-normal-maps/&#34; target=&#34;_blank&#34; id=&#34;The Geometry Behind Normal Maps&#34;&gt;The Geometry Behind Normal Maps&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains the mathematical foundations of tangent space and its role in normal mapping&lt;/li&gt;
&lt;li&gt;details how UV coordinates define the orientation of the tangent frame on surfaces&lt;/li&gt;
&lt;li&gt;presents the construction of the TBN matrix and its application in transforming texture-space normals to surface space&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-417/001_tangent_plane.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251112140431/https://www.shlom.dev/articles/geometry-behind-normal-maps/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=qPmKFRUf-zM&#34; target=&#34;_blank&#34; id=&#34;[video] Terrain Tiling Break-Up - Terrain Shaders - Episode 4&#34;&gt;[video] Terrain Tiling Break-Up - Terrain Shaders - Episode 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses techniques to hide or reduce visible tiling patterns in terrain shaders&lt;/li&gt;
&lt;li&gt;presents shader based solutions&lt;/li&gt;
&lt;li&gt;additionally discusess alternative art authoring solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-417/texture-tiling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ZHKayVNqosE&#34; target=&#34;_blank&#34; id=&#34;[video] Neural Shading Course: Part 1 - Introduction&#34;&gt;[video] Neural Shading Course: Part 1 - Introduction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introductory video for a course on neural shading techniques&lt;/li&gt;
&lt;li&gt;first part of an 11 video part series exploring what neural shaders are, what hardware they provide access to&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-417/neural-shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/introducing-the-vulkan-drivers-tab/&#34; target=&#34;_blank&#34; id=&#34;Introducing the Vulkan Drivers Tab&#34;&gt;Introducing the Vulkan Drivers Tab&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces a new Vulkan Drivers tab in the Vulkan Configurator (vkconfig)&lt;/li&gt;
&lt;li&gt;provides a graphical interface to add additional drivers, force specific physical devices, and reorder device enumeration&lt;/li&gt;
&lt;li&gt;streamlines multi-GPU testing and debugging by eliminating manual JSON configuration and environment variable tweaks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-417/Vulkan-Driver-Tabs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=GsnOWtptPM0&#34; target=&#34;_blank&#34; id=&#34;[video] Descriptor Indexing // Vulkan For Beginners #26&#34;&gt;[video] Descriptor Indexing // Vulkan For Beginners #26&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video tutorial covering descriptor indexing in Vulkan&lt;/li&gt;
&lt;li&gt;explains how to access shader resources dynamically without binding individual descriptors&lt;/li&gt;
&lt;li&gt;demonstrates the modern approach to managing textures and buffers in Vulkan applications&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-417/vulkan-descriptor.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=F-c0GovaNyc&#34; target=&#34;_blank&#34; id=&#34;[video] Optimizing RTX Mega Geometry with Nsight Graphics GPU Trace&#34;&gt;[video] Optimizing RTX Mega Geometry with Nsight Graphics GPU Trace&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;demonstrates how to use Nsight Graphics GPU Trace to profile and optimize RTX Mega Geometry&lt;/li&gt;
&lt;li&gt;shows detailed view of the available performance counter&lt;/li&gt;
&lt;li&gt;provides practical workflow for analyzing shader performance and identifying bottlenecks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-417/nsight-graphics-trace.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/Geolm/bc_crunch&#34; target=&#34;_blank&#34; id=&#34;bc_crunch&#34;&gt;bc_crunch&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tiny dependency-free C99 library (~700 LOC) for lossless compression of GPU-compressed texture blocks (BC1, BC3, BC4, BC5)&lt;/li&gt;
&lt;li&gt;exploits spatial patterns, endpoint deltas, and Morton-ordered indices specific to BC formats achieving compression ratios of 1.5x-6x&lt;/li&gt;
&lt;li&gt;features deterministic bit-exact reconstruction with no malloc or external dependencies&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-417/brick_extracts.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251117015153/https://github.com/Geolm/bc_crunch&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=pHqcHzxx6I8&#34; target=&#34;_blank&#34; id=&#34;[video] Making GPUs Actually Fast: A Deep Dive into Training Performance&#34;&gt;[video] Making GPUs Actually Fast: A Deep Dive into Training Performance&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;deep dive into GPU performance details and why GPUs are effective for neural network training&lt;/li&gt;
&lt;li&gt;contains high level overview of gpu achitecture&lt;/li&gt;
&lt;li&gt;identifies common bottlenecks (memory bandwidth, kernel-launch overhead, CPU–GPU imbalance) and how to overcome them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-417/sm-learning.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cultured-avenue-f13.notion.site/GNN-From-Scratch-2a3dfe9550dd80ac87deee4fe6cd0696&#34; target=&#34;_blank&#34; id=&#34;GNN From Scratch&#34;&gt;GNN From Scratch&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tutorial on implementing Graph Neural Networks from scratch&lt;/li&gt;
&lt;li&gt;provides step-by-step explanation of GNN architecture and components&lt;/li&gt;
&lt;li&gt;covers fundamental concepts and practical implementation details&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-417/gnn.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/bPdRJ&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.wihlidal.com&#34; target=&#34;_blank&#34;&gt;Graham Wihlidal&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 416 - November 9th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-416/</link>
      <pubDate>Sun, 09 Nov 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-416/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/baldurk/renderdoc/releases/v1.41&#34; target=&#34;_blank&#34; id=&#34;RenderDoc - Version v1.41&#34;&gt;RenderDoc - Version v1.41&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;major release adding threaded shader debugging support for D3D11, D3D12, and Vulkan&lt;/li&gt;
&lt;li&gt;correctly simulates wave/subgroup operations, group-shared memory, and whole-workgroup interactions&lt;/li&gt;
&lt;li&gt;includes numerous bugfixes for pixel history, descriptor buffers, and multi-GPU scenarios&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-416/renderdoc_threads.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251111042253/https://github.com/baldurk/renderdoc/releases/v1.41&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hgpu.org/?p=30343&#34; target=&#34;_blank&#34; id=&#34;CudaForge: An Agent Framework with Hardware Feedback for CUDA Kernel Optimization&#34;&gt;CudaForge: An Agent Framework with Hardware Feedback for CUDA Kernel Optimization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a multi-agent workflow for automatic CUDA kernel generation and optimization&lt;/li&gt;
&lt;li&gt;uses LLM agents to iteratively generate, correct, and optimize kernels while integrating Nsight Compute metrics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-416/cuda_forge.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251111042052/https://arxiv.org/pdf/2511.01884&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/SpectralRendering1Spectra.html&#34; target=&#34;_blank&#34; id=&#34;Spectral rendering, part 1: Spectra&#34;&gt;Spectral rendering, part 1: Spectra&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces spectral rendering for more accurate color reproduction&lt;/li&gt;
&lt;li&gt;explains how to obtain illuminant spectra from databases and convert RGB textures to reflectance spectra using Fourier sRGB&lt;/li&gt;
&lt;li&gt;presents the mathematical foundations of spectral upsampling that enable working with existing assets&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-416/spectral_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251108010058/https://momentsingraphics.de/SpectralRendering1Spectra.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gboisse.github.io/posts/this-is-us/&#34; target=&#34;_blank&#34; id=&#34;Coding This is Us&#34;&gt;Coding This is Us&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;technical post-mortem of graphics techniques used in the &amp;ldquo;This is Us&amp;rdquo; demo presented at Revision 2025&lt;/li&gt;
&lt;li&gt;describes real-time path tracing implementation using radiance caching with spatial hashing and ReSTIR GI&lt;/li&gt;
&lt;li&gt;presents SPH fluid simulation using tiled approach with LDS pre-fetching and marching cubes meshing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-416/this-is-us.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251106214040/https://gboisse.github.io/posts/this-is-us/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.evolvebenchmark.com/blog-posts/inline-vs-pipeline-ray-tracing&#34; target=&#34;_blank&#34; id=&#34;Inline vs Pipeline Ray Tracing&#34;&gt;Inline vs Pipeline Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;compares inline and pipeline ray tracing approaches with detailed explanations&lt;/li&gt;
&lt;li&gt;benchmarks both methods on AMD, NVIDIA, and Intel Arc&lt;/li&gt;
&lt;li&gt;shows AMD achieves significantly better performance with pipeline ray tracing, while NVIDIA and Intel perform similarly with both approaches&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-416/inline-vs-pipeline-ray-tracing-score.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251111043122/https://www.evolvebenchmark.com/blog-posts/inline-vs-pipeline-ray-tracing&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://simplygon.com/posts/11f00494-a699-4f41-a5f1-33b17b3e19ab/&#34; target=&#34;_blank&#34; id=&#34;How animation hides LOD Transitions&#34;&gt;How animation hides LOD Transitions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;investigates how animation affects the visibility of LOD transitions in 3D models&lt;/li&gt;
&lt;li&gt;finds that animated models can switch LODs much closer to the camera compared to static models&lt;/li&gt;
&lt;li&gt;demonstrates that animation effectively masks geometry changes, potentially eliminating the need for cross-fade transitions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-416/animated_lods.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251111043351/https://simplygon.com/posts/11f00494-a699-4f41-a5f1-33b17b3e19ab/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/events/shading-languages-symposium-2026#registration&#34; target=&#34;_blank&#34; id=&#34;Registration now open for the Shading Languages Symposium 2026&#34;&gt;Registration now open for the Shading Languages Symposium 2026&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Registration for the Shading Languages Symposium 2026 is open&lt;/li&gt;
&lt;li&gt;The program has been published and features keynotes and sessions covering Slang, SPIR-V, HLSL, GLSL, WGSL, Gigi, WESL, and more&lt;/li&gt;
&lt;li&gt;aimed at attending work on shader languages, compilers, tools, or rendering pipelines&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-416/symposium-event-banner.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251111043545/https://www.khronos.org/events/shading-languages-symposium-2026#registration&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Q5sslZf2g_w&#34; target=&#34;_blank&#34; id=&#34;[video] Fixing GLSL HLSL&#34;&gt;[video] Fixing GLSL HLSL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video discusses additional shader hints that the author would like to see expressed in shader code&lt;/li&gt;
&lt;li&gt;explains the reasoning and advantages of the various requests&lt;/li&gt;
&lt;li&gt;demonstrates suggested shader code syntax&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-416/shader_expose.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=0L5Azq6ugyo&#34; target=&#34;_blank&#34; id=&#34;[video] Terrain Shader Structure - Terrain Shaders - Episode 3&#34;&gt;[video] Terrain Shader Structure - Terrain Shaders - Episode 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;third episode in a series on terrain shader development&lt;/li&gt;
&lt;li&gt;explains how to extend a single-layer material into a 4-layer blend setup&lt;/li&gt;
&lt;li&gt;presents a height-based blending approach between layers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-416/terrain_blending.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=SurwAUTGp18&#34; target=&#34;_blank&#34; id=&#34;[video] Vertex Shaders &amp;amp; Tessellation | Unity Shader Code Basics 05&#34;&gt;[video] Vertex Shaders &amp;amp; Tessellation | Unity Shader Code Basics 05&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how to use vertex shaders to animate a simple wave&lt;/li&gt;
&lt;li&gt;shows that vertex density affects the quality of the effect&lt;/li&gt;
&lt;li&gt;provides a detailed walkthrough on how to set up the mesh tessellation pipeline using Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-416/unity_tesselation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/Tellusim/Tellusim_Core_SDK&#34; target=&#34;_blank&#34; id=&#34;Tellusim Core SDK - Open Source&#34;&gt;Tellusim Core SDK - Open Source&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces open source release of Tellusim Core SDK for cross-platform graphics and compute development&lt;/li&gt;
&lt;li&gt;provides unified C++ API with bindings for C#, Rust, Swift, Python, Java, and JavaScript&lt;/li&gt;
&lt;li&gt;includes comprehensive examples covering meshlets, ray tracing, UI, and more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-416/interface_svg.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250000000000*/https://github.com/Tellusim/Tellusim_Core_SDK&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://erichaines.com/&#34; target=&#34;_blank&#34;&gt;Eric Haines&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 415 - November 2nd, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-415/</link>
      <pubDate>Sun, 02 Nov 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-415/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://typefully.com/DanHollick/why-do-we-need-dithering-Ut7oD4k&#34; target=&#34;_blank&#34; id=&#34;Why do we need dithering?&#34;&gt;Why do we need dithering?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how dithering techniques trick spatial averaging in human vision to perceive more colors than are actually present&lt;/li&gt;
&lt;li&gt;covers ordered dithering using Bayer matrices and error diffusion methods like the Floyd-Steinberg algorithm&lt;/li&gt;
&lt;li&gt;discusses how dithering was historically necessary for limited color palettes but has now become primarily a retro aesthetic choice&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-415/dithering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251104044443/https://typefully.com/DanHollick/why-do-we-need-dithering-Ut7oD4k&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/mastering-gfxreconstruct-part-2/&#34; target=&#34;_blank&#34; id=&#34;Mastering GFXReconstruct: Part 2&#34;&gt;Mastering GFXReconstruct: Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comprehensive guide to installing and setting up GFXReconstruct for capturing and replaying Vulkan and DirectX 12 API calls&lt;/li&gt;
&lt;li&gt;covers both prebuilt binaries from the Vulkan SDK and building from source for custom configurations&lt;/li&gt;
&lt;li&gt;provides detailed troubleshooting steps and verification tests for both Vulkan and DirectX 12 workflows&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-415/Mastering-GFXReconstruct.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251104044654/https://www.lunarg.com/mastering-gfxreconstruct-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/onnx-directlml-execution-provider-guide-part1/&#34; target=&#34;_blank&#34; id=&#34;ONNX and DirectML execution provider guide - part 1&#34;&gt;ONNX and DirectML execution provider guide - part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;demonstrates how to build native inference pipelines on AMD GPUs using ONNX Runtime with DirectML execution provider&lt;/li&gt;
&lt;li&gt;explains sharing the DirectX 12 context between DirectML and user code to avoid CPU-GPU data transfers&lt;/li&gt;
&lt;li&gt;shows how to map resources directly into ONNX Runtime tensors for efficient preprocessing and postprocessing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-415/directml.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251104045907/https://gpuopen.com/learn/onnx-directlml-execution-provider-guide-part1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://simplygon.com/posts/9886e4da-8e1c-48fe-916f-9b6e8bfe19e3&#34; target=&#34;_blank&#34; id=&#34;Introduction to Clustered Meshlet Optimization&#34;&gt;Introduction to Clustered Meshlet Optimization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces Simplygon&amp;rsquo;s clustered meshlet optimizer for dividing models into independently cullable parts with continuous LOD&lt;/li&gt;
&lt;li&gt;explains that streaming levels contain partial data requiring a combination of all lower levels for full detail&lt;/li&gt;
&lt;li&gt;provides complete implementation examples, including Python generation scripts and Unity C# visualization code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-415/meshlet_generation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251104045319/https://simplygon.com/posts/9886e4da-8e1c-48fe-916f-9b6e8bfe19e3&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/PG2025.html&#34; target=&#34;_blank&#34; id=&#34;Iterative Lightmap Updates for Scene Editing&#34;&gt;Iterative Lightmap Updates for Scene Editing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Pacific Graphics 2025 paper presenting an iterative algorithm to update lightmaps when objects are inserted or removed efficiently&lt;/li&gt;
&lt;li&gt;focuses on updating only the paths affected by scene changes rather than full recomputation&lt;/li&gt;
&lt;li&gt;implements an importance sampling scheme on a GPU suitable for interactive scene editing scenarios&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-415/updating_lightmaps.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251104045450/https://momentsingraphics.de/PG2025.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/SiggraphAsia2025.html&#34; target=&#34;_blank&#34; id=&#34;Jackknife Transmittance and MIS Weight Estimation&#34;&gt;Jackknife Transmittance and MIS Weight Estimation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;SIGGRAPH Asia 2025 paper introducing a biased transmittance estimator with significantly reduced bias compared to naive ray marching&lt;/li&gt;
&lt;li&gt;applies the UMVU estimator based on nearly normally distributed optical depth estimates from stratified jittered sampling&lt;/li&gt;
&lt;li&gt;extends the theory to estimate MIS weights and proposes two new integrators combining MIS with improved transmittance estimation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-415/representative_image.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251030161003/https://momentsingraphics.de/SiggraphAsia2025.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://perso.telecom-paristech.fr/boubek/papers/Glinty/&#34; target=&#34;_blank&#34; id=&#34;Evaluating and Sampling Glinty NDFs in Constant Time&#34;&gt;Evaluating and Sampling Glinty NDFs in Constant Time&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;SIGGRAPH Asia 2025 paper presenting a method for rendering glint effects from microfacet geometry in constant time&lt;/li&gt;
&lt;li&gt;represents faceted geometry as a 4D point process on a multiscale grid to find highlight-causing facets efficiently&lt;/li&gt;
&lt;li&gt;supports various appearances, including anisotropic materials and individually colored particles, while converging to standard NDFs like GGX&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-415/Glinty.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251104044322/https://perso.telecom-paristech.fr/boubek/papers/Glinty/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=2wa6UbtKvMs&#34; target=&#34;_blank&#34; id=&#34;[video] Depth | Unity Shader Code Basics 04&#34;&gt;[video] Depth | Unity Shader Code Basics 04&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video tutorial explaining how to work with depth information in Unity shaders&lt;/li&gt;
&lt;li&gt;covers fundamental concepts like the depth buffer, depth textures, and their use in effects&lt;/li&gt;
&lt;li&gt;provides practical examples and shader code for implementing depth-based visual effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-415/shader_basics_depth.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=KONdF3WEXa0&#34; target=&#34;_blank&#34; id=&#34;[video] Advanced Physically Based Rendering With ClearCoat&#34;&gt;[video] Advanced Physically Based Rendering With ClearCoat&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tutorial on implementing a transparent coat layer for physically based rendering (PBR) materials&lt;/li&gt;
&lt;li&gt;explains the principles behind simulating a transparent coating over a base material&lt;/li&gt;
&lt;li&gt;demonstrates the shader implementation and shows how it enhances the realism of surfaces like car paint or polished wood&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-415/car_clearcoat.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=3AGeLuO5WdY&#34; target=&#34;_blank&#34; id=&#34;[video] Demetri Spanos – Foliated Distance Fields – BSC 2025&#34;&gt;[video] Demetri Spanos – Foliated Distance Fields – BSC 2025&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a BSC 2025 talk on Foliated Distance Fields for representing and rendering complex geometry&lt;/li&gt;
&lt;li&gt;discusses how this technique can be used for high-quality, real-time rendering of intricate surfaces&lt;/li&gt;
&lt;li&gt;explores the implementation details and performance characteristics of the approach&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-415/sdf_raster.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://erichaines.com/&#34; target=&#34;_blank&#34;&gt;Eric Heines&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 414 - October 26th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-414/</link>
      <pubDate>Sun, 26 Oct 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-414/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=gjOO5g4cgng&#34; target=&#34;_blank&#34; id=&#34;[video] npacking Terrain Textures - Terrain Shaders - Episode 2&#34;&gt;[video] npacking Terrain Textures - Terrain Shaders - Episode 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video tutorial demonstrating how to unpack terrain textures efficiently&lt;/li&gt;
&lt;li&gt;explains creating terrain layer subgraphs using only two texture samples&lt;/li&gt;
&lt;li&gt;shares optimization techniques to improve terrain shader performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-414/texture_terrain_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=p1lFbWhOwHU&#34; target=&#34;_blank&#34; id=&#34;[video] Shape Shader Functions WITHOUT Knowing Math!&#34;&gt;[video] Shape Shader Functions WITHOUT Knowing Math!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;demonstrates how to use Desmos to visualize functions and transform them into shader code&lt;/li&gt;
&lt;li&gt;provides various examples of the transformation steps&lt;/li&gt;
&lt;li&gt;additionally presents how to use the functions to distort UVs to create interesting visual effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-414/shape_functions.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1791_calculating_the_bounding_rectangle_of_a_circular_sector&#34; target=&#34;_blank&#34; id=&#34;Calculating the Bounding Rectangle of a Circular Sector&#34;&gt;Calculating the Bounding Rectangle of a Circular Sector&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents an algorithm for calculating bounding boxes of circular sectors in 2D&lt;/li&gt;
&lt;li&gt;provides a GLSL implementation using vector operations&lt;/li&gt;
&lt;li&gt;useful for area-of-effect queries in game development, such as attacks or spell casting&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-414/bounding_rectangle_of_a_circular_sector_diagram.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251025183128/https://asawicki.info/news_1791_calculating_the_bounding_rectangle_of_a_circular_sector/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.playstation.com/2025/10/23/ghost-of-yotei-tech-deep-dive/&#34; target=&#34;_blank&#34; id=&#34;Ghost of Yōtei – tech deep dive&#34;&gt;Ghost of Yōtei – tech deep dive&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Sucker Punch details the rendering technology behind Ghost of Yōtei&lt;/li&gt;
&lt;li&gt;discusses GPU compute rendering for vast landscapes with large instance counts&lt;/li&gt;
&lt;li&gt;covers advanced features including terrain tessellation, volumetric fog with cloud shadows, and PS5 Pro ray-traced global illumination&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-414/ghost_plants.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251028054531/https://blog.playstation.com/2025/10/23/ghost-of-yotei-tech-deep-dive/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://tomclabault.github.io/blog/2025/regir/&#34; target=&#34;_blank&#34; id=&#34;ReGIR - An advanced implementation for many-lights offline rendering&#34;&gt;ReGIR - An advanced implementation for many-lights offline rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comprehensive deep-dive into implementing ReGIR for efficient many-lights sampling&lt;/li&gt;
&lt;li&gt;explains Reservoir-based Grid Importance Resampling using hash grids and spatial/temporal reuse&lt;/li&gt;
&lt;li&gt;demonstrates significant performance improvements over power sampling and light hierarchies in complex scenes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-414/regir.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251028154809/https://tomclabault.github.io/blog/2025/regir/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.unrealengine.com/en-US/developer-interviews/nitro-gen-omega-bringing-the-art-style-of-spaghetti-anime-to-life-with-ue5&#34; target=&#34;_blank&#34; id=&#34;NITRO GEN OMEGA: Bringing the art style of spaghetti anime to life with UE5&#34;&gt;NITRO GEN OMEGA: Bringing the art style of spaghetti anime to life with UE5&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;An interview with the developers of &amp;ldquo;NITRO GEN OMEGA&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Discusses how they achieved the &amp;ldquo;spaghetti anime&amp;rdquo; art style in Unreal Engine 5&lt;/li&gt;
&lt;li&gt;Covers the use of cel shading, stylized VFX, and other techniques to create a umique look&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-414/ue-style.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251028160844/https://www.unrealengine.com/en-US/developer-interviews/nitro-gen-omega-bringing-the-art-style-of-spaghetti-anime-to-life-with-ue5&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Peter Kohaut for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 413 - October 19th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-413/</link>
      <pubDate>Sun, 19 Oct 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-413/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://docs.vulkan.org/tutorial/latest/courses/18_Ray_tracing/00_Overview.html&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2025: Hands-on Vulkan Ray Tracing with Dynamic Rendering&#34;&gt;SIGGRAPH 2025: Hands-on Vulkan Ray Tracing with Dynamic Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;hands-on tutorial series for implementing ray tracing with Vulkan&lt;/li&gt;
&lt;li&gt;implements ray-query-based shadow rays with alpha-test transparency support&lt;/li&gt;
&lt;li&gt;includes debugging tips using RenderDoc and Nsight Graphics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-413/vulkan_raytracing_tutorial.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250922043847/https://docs.vulkan.org/tutorial/latest/courses/18_Ray_tracing/05_Shadow_transparency.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://irradiance.ca/posts/pbr/&#34; target=&#34;_blank&#34; id=&#34;Physically Based Content&#34;&gt;Physically Based Content&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comprehensive guide covering physically based approaches for geometry, materials, lighting, and cameras&lt;/li&gt;
&lt;li&gt;discusses the various material properties with real-world examples&lt;/li&gt;
&lt;li&gt;covers physically based lighting units, including candela, lumen, nit, and lux, with practical measurement techniques&lt;/li&gt;
&lt;li&gt;emphasizes the importance of physically based content for reusable assets and consistent results across lighting conditions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-413/pbr_content.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251020034911/https://irradiance.ca/posts/pbr/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.maximeheckel.com/posts/field-guide-to-tsl-and-webgpu/&#34; target=&#34;_blank&#34; id=&#34;Field Guide to TSL and WebGPU&#34;&gt;Field Guide to TSL and WebGPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comprehensive guide to Three.js using WebGPU&lt;/li&gt;
&lt;li&gt;presents three.js Shading Language (TSL) as well as WGsl for web graphics development&lt;/li&gt;
&lt;li&gt;provides practical examples, including displacement, glass materials, particles, and post-processing effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-413/tsl_webgpu_guide.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251015034802/https://blog.maximeheckel.com/posts/field-guide-to-tsl-and-webgpu/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=XwHpIsPROEQ&#34; target=&#34;_blank&#34; id=&#34;[video] Texturing &amp;amp; UVs | Unity Shader Code Basics 02&#34;&gt;[video] Texturing &amp;amp; UVs | Unity Shader Code Basics 02&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video tutorial covering texture sampling in Unity shader code&lt;/li&gt;
&lt;li&gt;explains the concept of UV coordinates, texture samplers&lt;/li&gt;
&lt;li&gt;shows how to implement texture mapping into a simple shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-413/unity_shader_uv.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zino2201.substack.com/p/heterogenous-aos-instance-encoding&#34; target=&#34;_blank&#34; id=&#34;Heterogenous AoS instance encoding for a GPU-driven renderer&#34;&gt;Heterogenous AoS instance encoding for a GPU-driven renderer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a per-instance encoding technique for GPU-driven rendering with varying instance data requirements&lt;/li&gt;
&lt;li&gt;instances use type discriminants to allow different memory layouts within a unified buffer&lt;/li&gt;
&lt;li&gt;reduces memory bandwidth and footprint by eliminating unused fields&lt;/li&gt;
&lt;li&gt;allows different instance types to coexist efficiently in the same buffer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-413/heterogenous_aos.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251020034721/https://zino2201.substack.com/p/heterogenous-aos-instance-encoding&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=IwzAPafwepQ&#34; target=&#34;_blank&#34; id=&#34;[video] GPU Side Input&#34;&gt;[video] GPU Side Input&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video exploring GPU-side input handling (late latching)&lt;/li&gt;
&lt;li&gt;discusses how to efficiently manage input data directly on the GPU with cache-line-sized packets&lt;/li&gt;
&lt;li&gt;covers practical implementation and how to avoid mid-frame cache flushes from the CPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-413/gpu_side_input.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=7exuYa1X0QM&#34; target=&#34;_blank&#34; id=&#34;[video] Vulkan WORM&#34;&gt;[video] Vulkan WORM&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video demonstrating a write-once read-many model (WORM) for authoring compute workloads&lt;/li&gt;
&lt;li&gt;presents how Vulkan compute code can be written to take advantage of the cache structure to ensure no cache flushes are required&lt;/li&gt;
&lt;li&gt;discusses considerations when designing the data model to match hardware caches&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-413/vulkan_worm.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bumbershootsoft.wordpress.com/2025/10/11/sharp-bilinear-filters-big-clean-pixels-for-pixel-art/&#34; target=&#34;_blank&#34; id=&#34;Sharp Bilinear Filters: Big Clean Pixels for Pixel Art&#34;&gt;Sharp Bilinear Filters: Big Clean Pixels for Pixel Art&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains the sharp bilinear filtering technique for scaling pixel art without blur&lt;/li&gt;
&lt;li&gt;solves common artifacts from nearest-neighbor and standard bilinear filtering&lt;/li&gt;
&lt;li&gt;Derives the mathematical formulas behind the shader implementation step by step&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-413/sharp_bilinear.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251012111053/https://bumbershootsoft.wordpress.com/2025/10/11/sharp-bilinear-filters-big-clean-pixels-for-pixel-art/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/3d-rotation&#34; target=&#34;_blank&#34; id=&#34;Mini: 3D Rotation&#34;&gt;Mini: 3D Rotation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tutorial covering Euler angles and axis-angle rotation methods for 3D graphics&lt;/li&gt;
&lt;li&gt;explains how to stack 2D rotations for yaw, pitch, and roll transformations&lt;/li&gt;
&lt;li&gt;presents axis-angle rotation formula using mix, cross product, and trigonometric functions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-413/3d_rotation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251019071821/https://mini.gmshaders.com/p/3d-rotation&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.pkh.me/p/46-fast-calculation-of-the-distance-to-cubic-bezier-curves-on-the-gpu.html&#34; target=&#34;_blank&#34; id=&#34;Fast calculation of the distance to cubic Bezier curves on the GPU&#34;&gt;Fast calculation of the distance to cubic Bezier curves on the GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;details the mathematical approach to computing distance from a point to cubic Bézier curves&lt;/li&gt;
&lt;li&gt;presents and compares recent algorithm improvements&lt;/li&gt;
&lt;li&gt;providing GLSL implementations of the presented techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-413/bezier_distance.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251019134002/https://blog.pkh.me/p/46-fast-calculation-of-the-distance-to-cubic-bezier-curves-on-the-gpu.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Peter Kohaut for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 412 - October 12th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-412/</link>
      <pubDate>Sun, 12 Oct 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-412/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.evolvebenchmark.com/blog-posts/dynamic-levels-of-detail-in-evolve&#34; target=&#34;_blank&#34; id=&#34;Dynamic levels of detail in Evolve&#34;&gt;Dynamic levels of detail in Evolve&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;details a GPU-driven LOD system using solid angle calculations on camera unit spheres&lt;/li&gt;
&lt;li&gt;projects mesh AABBs onto the unit sphere to estimate screen coverage for LOD selection&lt;/li&gt;
&lt;li&gt;implements bindless rendering with unified vertex/index buffer access across all LOD levels&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-412/evolve.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250913154050/https://www.evolvebenchmark.com/blog-posts/dynamic-levels-of-detail-in-evolve&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/elias1518693/jpeg_textures&#34; target=&#34;_blank&#34; id=&#34;Variable-Rate Texture Compression: Real-Time Rendering with JPEG&#34;&gt;Variable-Rate Texture Compression: Real-Time Rendering with JPEG&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;demonstrates a technique to use JPEG textures for real-time integration using OpenGL and CUDA&lt;/li&gt;
&lt;li&gt;uses deferred rendering to identify required JPEG blocks before collaborative workgroup decoding&lt;/li&gt;
&lt;li&gt;presents the pipeline that is defined by geometry, mark, decode, and finally the resolve pass&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-412/jpeg_texture.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251015040256/https://github.com/elias1518693/jpeg_textures&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://randygaul.github.io/cute_framework/topics/renderer/&#34; target=&#34;_blank&#34; id=&#34;A Tour of Cute Framework&amp;#39;s Renderer&#34;&gt;A Tour of Cute Framework&amp;#39;s Renderer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comprehensive overview of a 2D renderer that unifies sprites, shapes, and text in single draw calls&lt;/li&gt;
&lt;li&gt;presents runtime sprite atlas compilation that automatically manages texture packing for the user&lt;/li&gt;
&lt;li&gt;uses signed distance functions for shape rendering with unified antialiasing, rounding, and stroke support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-412/cute_render.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251015035941/https://randygaul.github.io/cute_framework/topics/renderer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=L1BcCKvG7nc&#34; target=&#34;_blank&#34; id=&#34;[video] Cubemaps // Vulkan For Beginners #25&#34;&gt;[video] Cubemaps // Vulkan For Beginners #25&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tutorial covering cubemap implementation in Vulkan&lt;/li&gt;
&lt;li&gt;explains cubemap texture setup and sampling techniques&lt;/li&gt;
&lt;li&gt;demonstrates environment mapping to render a skybox around the viewer position&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-412/cubemap.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://over17.github.io//2025/10/01/burst-occlusion-culling.html&#34; target=&#34;_blank&#34; id=&#34;Converting SSE intrinsics code to Neon. Burst masked occlusion culling&#34;&gt;Converting SSE intrinsics code to Neon. Burst masked occlusion culling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;details the process of translating SSE intrinsics to Neon for Unity&amp;rsquo;s Burst compiler&lt;/li&gt;
&lt;li&gt;presents optimization techniques that improved performance by 2.3x through removing allocations&lt;/li&gt;
&lt;li&gt;discusses challenges with instruction equivalence and shows SIMD vectorization achieving 7-15x speedups&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-412/burst-occlusion-culling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251015040732/https://over17.github.io//2025/10/01/burst-occlusion-culling.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Q78wvrQ9xsU&#34; target=&#34;_blank&#34; id=&#34;[video] Coding Adventure: Simulating Smoke&#34;&gt;[video] Coding Adventure: Simulating Smoke&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video walkthrough of implementing a fluid dynamics simulation for smoke&lt;/li&gt;
&lt;li&gt;covers the mathematical foundations and implementation details of smoke simulation&lt;/li&gt;
&lt;li&gt;covers Navier-Stokes equations as well as dynamic simulation with pressure solving and velocity interpolation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-412/smoke_simulation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://30fps.net/pages/better-srgb-to-greyscale/&#34; target=&#34;_blank&#34; id=&#34;Better sRGB to greyscale conversion&#34;&gt;Better sRGB to greyscale conversion&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents an improved formula for converting sRGB colors to greyscale in gamma space&lt;/li&gt;
&lt;li&gt;explains why the standard Rec. 709 coefficients are technically incorrect when used with gamma-corrected values&lt;/li&gt;
&lt;li&gt;compares alternative coefficients optimized for nonlinear color space with visual examples&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-412/luma_error_maps.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251014024329/https://30fps.net/pages/better-srgb-to-greyscale/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=eMWrMRdP5jY&#34; target=&#34;_blank&#34; id=&#34;[video] Your First Shader | Unity Shader Code Basics 01&#34;&gt;[video] Your First Shader | Unity Shader Code Basics 01&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introductory video tutorial on writing shaders in Unity&lt;/li&gt;
&lt;li&gt;covers the fundamental concepts of shader programming for beginners&lt;/li&gt;
&lt;li&gt;walks through creating a basic shader from scratch&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-412/shader_getting_started.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hugodaniel.com/posts/webgpu-diagnostics/&#34; target=&#34;_blank&#34; id=&#34;WebGPU and the price of compiling WGSL &#34;&gt;WebGPU and the price of compiling WGSL &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces a diagnostic tool for measuring WGSL shader compilation times in WebGPU&lt;/li&gt;
&lt;li&gt;provides complexity sliders to generate shaders of various sizes for benchmarking&lt;/li&gt;
&lt;li&gt;reveals significant differences between cold and warm compilation timings across browsers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-412/webgpu_diagnostics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251007002308/https://hugodaniel.com/posts/webgpu-diagnostics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shader-slang.org/blog/2025/10/06/siggraph-roundup/&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2025 Materials Now Available: Recordings and Resources from Our Events&#34;&gt;SIGGRAPH 2025 Materials Now Available: Recordings and Resources from Our Events&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces the availability of recordings and materials from Slang&amp;rsquo;s SIGGRAPH 2025 sessions&lt;/li&gt;
&lt;li&gt;includes hands-on lab materials covering language fundamentals, modules, and automatic differentiation&lt;/li&gt;
&lt;li&gt;provides access to neural shading course materials as well as a session presenting how developers use the technology&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-412/siggraph_2025_slang.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251007215855/https://shader-slang.org/blog/2025/10/06/siggraph-roundup/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ukobLRLKZDM&#34; target=&#34;_blank&#34; id=&#34;[video] Reinforcement Learning 04 : Motion Fields For Interactive Character Animation&#34;&gt;[video] Reinforcement Learning 04 : Motion Fields For Interactive Character Animation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video presentation on the Motion Fields for Interactive Character Animation paper&lt;/li&gt;
&lt;li&gt;discusses reinforcement learning techniques for generating responsive character movements&lt;/li&gt;
&lt;li&gt;present a practical implementation of the technique with an in-depth explanation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-412/reinforcement_learning.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=j0wJBEZdwLs&#34; target=&#34;_blank&#34; id=&#34;[video] But what is a Laplace Transform?&#34;&gt;[video] But what is a Laplace Transform?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video explaining the intuition and mathematics behind Laplace transforms&lt;/li&gt;
&lt;li&gt;presents the transform as a tool for converting differential equations into algebraic ones&lt;/li&gt;
&lt;li&gt;shows visual interpretations of the mathematical concepts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-412/laplace_transform.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://x.com/keithoconor&#34; target=&#34;_blank&#34;&gt;Keith O&amp;rsquo;Conor&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 411 - October 5th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-411/</link>
      <pubDate>Sun, 05 Oct 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-411/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://themaister.net/blog/2025/10/05/a-case-for-learning-gpu-programming-with-a-compute-first-mindset/&#34; target=&#34;_blank&#34; id=&#34;A case for learning GPU programming with a compute-first mindset&#34;&gt;A case for learning GPU programming with a compute-first mindset&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;proposes teaching GPU programming through compute shaders before graphics pipelines&lt;/li&gt;
&lt;li&gt;demonstrates starting from simple compute shaders in Vulkan, and using RenderDoc debugging as an essential teaching tool&lt;/li&gt;
&lt;li&gt;presents how to develop from this to understand the execution model, binding model, and how to integrate shader toy examples&lt;/li&gt;
&lt;li&gt;additionally presents next learning steps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-411/compute_vulkan_learning.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251006121039/themaister.net/blog/2025/10/05/a-case-for-learning-gpu-programming-with-a-compute-first-mindset/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rtryan98.github.io/2025/10/04/ocean-rendering-part-1.html&#34; target=&#34;_blank&#34; id=&#34;Ocean Rendering, Part 1 - Simulation&#34;&gt;Ocean Rendering, Part 1 - Simulation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;details the theory and mathematics behind FFT-based ocean simulation&lt;/li&gt;
&lt;li&gt;covers oceanographic spectra including JONSWAP and TMA, directional spreading functions, and dispersion relationships&lt;/li&gt;
&lt;li&gt;presents implementation details for cascaded simulation and FFT using compute shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-411/ocean_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251007025740/https://rtryan98.github.io/2025/10/04/ocean-rendering-part-1.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=BDvf1gsMgmY&#34; target=&#34;_blank&#34; id=&#34;Nintendo Switch 2 DLSS Image Quality Analysis: Tiny DLSS/Full-Fat DLSS Confirmed&#34;&gt;Nintendo Switch 2 DLSS Image Quality Analysis: Tiny DLSS/Full-Fat DLSS Confirmed&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video analyzing DLSS image quality on Nintendo Switch 2&lt;/li&gt;
&lt;li&gt;compares different DLSS implementations and their visual quality&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-411/dlss_switch.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=BKaAzhMHJZ0&#34; target=&#34;_blank&#34; id=&#34;Avowed: A GPU Technical Retrospective | Unreal Fest Orlando 2025&#34;&gt;Avowed: A GPU Technical Retrospective | Unreal Fest Orlando 2025&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presentation covering the GPU rendering optimization process in Avowed using Unreal Engine&lt;/li&gt;
&lt;li&gt;shares insights from the development process and technical challenges encountered&lt;/li&gt;
&lt;li&gt;covers aspects from art authoring, material optimization, ray tracing, nanite tweaks, and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-411/avowed.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://advances.realtimerendering.com/s2025/content/AVBOIT_SIG2025_MDROBOT-final.pdf&#34; target=&#34;_blank&#34; id=&#34;ADAPTIVE VOXEL-BASED ORDER-INDEPENDENT TRANSPARENCY&#34;&gt;ADAPTIVE VOXEL-BASED ORDER-INDEPENDENT TRANSPARENCY&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents an adaptive voxel-based approach for order-independent transparency rendering&lt;/li&gt;
&lt;li&gt;demonstrates performance and quality against other OIT methods&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-411/adaptive_vboid.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251007031010/https://advances.realtimerendering.com/s2025/content/AVBOIT_SIG2025_MDROBOT-final.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=2K-rwy4aMmU&#34; target=&#34;_blank&#34; id=&#34;RAY TRACING THE WORLD OF ASSASSIN&amp;#39;S CREED SHADOWS (Advances in Real-Time Rendering SIGGRAPH 2025)&#34;&gt;RAY TRACING THE WORLD OF ASSASSIN&amp;#39;S CREED SHADOWS (Advances in Real-Time Rendering SIGGRAPH 2025)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video presentation on ray tracing implementation in Assassin&amp;rsquo;s Creed: Shadows&lt;/li&gt;
&lt;li&gt;focuses on the algorithms and implementations&lt;/li&gt;
&lt;li&gt;followed by the challenges specific to AC and a look at performance&lt;/li&gt;
&lt;li&gt;additionally discusses the limitations of the presented techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-411/ac_probe.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cyanilux.com/tutorials/gpu-instanced-grass-breakdown/&#34; target=&#34;_blank&#34; id=&#34;GPU Instanced Grass Breakdown&#34;&gt;GPU Instanced Grass Breakdown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tutorial covering GPU instancing for rendering of grass efficiently&lt;/li&gt;
&lt;li&gt;explains setup using Graphics.RenderMeshPrimitives and compute buffers for instance data&lt;/li&gt;
&lt;li&gt;includes GPU frustum culling implementation and optimization techniques for Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-411/FrustumCulling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251007032449/https://www.cyanilux.com/tutorials/gpu-instanced-grass-breakdown/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.pkh.me/p/45-code-golfing-a-tiny-demo-using-maths-and-a-pinch-of-insanity.html&#34; target=&#34;_blank&#34; id=&#34;Code golfing a tiny demo using maths and a pinch of insanity&#34;&gt;Code golfing a tiny demo using maths and a pinch of insanity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents the creation of a 448-character GLSL procedural demo featuring mountains, clouds, and fog&lt;/li&gt;
&lt;li&gt;explains techniques for generating noise using sine waves, rotation matrices, and FBM accumulation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-411/canvas.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251007032955/https://blog.pkh.me/p/45-code-golfing-a-tiny-demo-using-maths-and-a-pinch-of-insanity.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://indico.freedesktop.org/event/10/contributions/402/&#34; target=&#34;_blank&#34; id=&#34;Descriptors are Hard&#34;&gt;Descriptors are Hard&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;XDC 2025 talk providing an overview of resource mapping from API and hardware perspectives&lt;/li&gt;
&lt;li&gt;discusses the differences in approaches to descriptors and how varios drivers map it onto the hardware&lt;/li&gt;
&lt;li&gt;additionally presents a preview of the new descriptor model coming to Vulkan&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-411/vulkan_stages.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251007033236/https://indico.freedesktop.org/event/10/contributions/402/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zeux.io/2025/09/30/billions-of-triangles-in-minutes/&#34; target=&#34;_blank&#34; id=&#34;Billions of triangles in minutes&#34;&gt;Billions of triangles in minutes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;details optimization work improving meshoptimizer&amp;rsquo;s hierarchical clustered LOD generation&lt;/li&gt;
&lt;li&gt;achieves 3.5x speedup through addressing memory sparsity, thread balancing, and SIMD optimizations&lt;/li&gt;
&lt;li&gt;demonstrates processing NVIDIA&amp;rsquo;s 1.64 billion-triangle Zorah scene in under 3 minutes, down from 30 at the start of the article&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-411/zorah_12.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251007034649/https://zeux.io/2025/09/30/billions-of-triangles-in-minutes/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.aleksagordic.com/blog/matmul&#34; target=&#34;_blank&#34; id=&#34;Inside NVIDIA GPUs: Anatomy of high performance matmul kernels&#34;&gt;Inside NVIDIA GPUs: Anatomy of high performance matmul kernels&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comprehensive guide covering GPU architecture fundamentals, including memory hierarchies and compute pipelines&lt;/li&gt;
&lt;li&gt;explains PTX/SASS assembly languages and analyzes compiler-generated code from CUDA kernels&lt;/li&gt;
&lt;li&gt;progresses from warp-tiling synchronous kernels to SOTA Hopper asynchronous implementations using TMA and tensor cores&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-411/h100_l1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20251007035520/https://www.aleksagordic.com/blog/matmul&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=hoXBqJrByz8&#34; target=&#34;_blank&#34; id=&#34;Series Summary and What&amp;#39;s Next - Game Optimization - Episode 11&#34;&gt;Series Summary and What&amp;#39;s Next - Game Optimization - Episode 11&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video summarizing the Game Optimization series of video tutorials&lt;/li&gt;
&lt;li&gt;recaps key optimization techniques covered throughout the series&lt;/li&gt;
&lt;li&gt;discusses future content directions and advanced optimization topics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-411/shader_optimization.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=-j8PzkZ70Lg&#34; target=&#34;_blank&#34; id=&#34;Why complex exponents matter | Laplace Transform Prelude&#34;&gt;Why complex exponents matter | Laplace Transform Prelude&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video from 3Blue1Brown explaining the mathematical foundations of complex exponents&lt;/li&gt;
&lt;li&gt;connects dynamics and Euler&amp;rsquo;s formula through visualization&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-411/calculus.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.reedbeta.com&#34; target=&#34;_blank&#34;&gt;Nathan Reed&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 410 - September 28th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-410/</link>
      <pubDate>Sun, 28 Sep 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-410/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.figma.com/blog/figma-rendering-powered-by-webgpu/&#34; target=&#34;_blank&#34; id=&#34;Figma rendering: Powered by WebGPU&#34;&gt;Figma rendering: Powered by WebGPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;details Figma&amp;rsquo;s migration from WebGL to WebGPU&lt;/li&gt;
&lt;li&gt;presents challenges in modernizing the graphics interface, including shader processing, uniform buffer management, and cross-platform deployment&lt;/li&gt;
&lt;li&gt;discusses the rollout strategy with dynamic fallback systems and device compatibility testing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-410/figma_webgpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250929025534/https://www.figma.com/blog/figma-rendering-powered-by-webgpu/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://nvpro-samples.github.io/vk_raytracing_tutorial_KHR/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Vulkan Ray Tracing Tutorial &#34;&gt;NVIDIA Vulkan Ray Tracing Tutorial &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;step-by-step tutorial series on implementing Vulkan ray tracing with KHR extensions&lt;/li&gt;
&lt;li&gt;guides readers through acceleration structures, ray generation, and shader binding with practical code examples&lt;/li&gt;
&lt;li&gt;highlights recent improvements: Vulkan 1.4 support, VMA integration, Slang shader compilation, glTF 2.0 asset loading, and a cleaner codebase&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-410/rtx_tuto.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250929030600/https://github.com/nvpro-samples/vk_raytracing_tutorial_KHR/tree/v2&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/agility-sdk-1-618/&#34; target=&#34;_blank&#34; id=&#34;Agility SDK 1.618: Advanced Shader Delivery and 1.716 out of preview&#34;&gt;Agility SDK 1.618: Advanced Shader Delivery and 1.716 out of preview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces new DirectX Agility SDK release featuring the advanced shader delivery system&lt;/li&gt;
&lt;li&gt;presents the various steps of the process&lt;/li&gt;
&lt;li&gt;talks about pipeline data collection, offline compilers, as well as new APIs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-410/d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250925211142/https://devblogs.microsoft.com/directx/agility-sdk-1-618/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-2509-25/&#34; target=&#34;_blank&#34; id=&#34;PIX 2509.25 – support for new D3D features and devices, and misc bug fixes&#34;&gt;PIX 2509.25 – support for new D3D features and devices, and misc bug fixes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;PIX tool update with support for tracking driver &amp;amp; application combination specific state&lt;/li&gt;
&lt;li&gt;supports recreation of resource at specific virtual addresses for improved playback&lt;/li&gt;
&lt;li&gt;additionally contains various other fixes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-410/pix_on_windows.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250926122218/https://devblogs.microsoft.com/pix/pix-2509-25/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/animating-geometry-with-amd-dgf/&#34; target=&#34;_blank&#34; id=&#34;Animating geometry with AMD DGF&#34;&gt;Animating geometry with AMD DGF&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces animation capabilities for AMD&amp;rsquo;s Dense Geometry Format (DGF) with linear vertex blending techniques&lt;/li&gt;
&lt;li&gt;demonstrates the animation pipeline that overwrites vertex positions within DGF blocks each frame&lt;/li&gt;
&lt;li&gt;shows quantization approaches and the effects on performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-410/DGFAnimationPipeline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250925234028/https://gpuopen.com/learn/animating-geometry-with-amd-dgf/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hgpu.org/?p=30267&#34; target=&#34;_blank&#34; id=&#34;Towards GPU Parallelism Abstractions in Rust: A Case Study with Linear Pipelines&#34;&gt;Towards GPU Parallelism Abstractions in Rust: A Case Study with Linear Pipelines&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;research paper introduces high-level GPU programming abstractions in Rust using procedural macros for automatic code generation&lt;/li&gt;
&lt;li&gt;presents linear pipeline parallel patterns for simplified GPU execution&lt;/li&gt;
&lt;li&gt;benchmarks against manual OpenCL implementations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-410/sobel_rust_paper.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250929025814/https://hgpu.org/?p=30267&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://buttondown.com/jaffray/archive/i-misunderstood-rejection-sampling-all-this-time/&#34; target=&#34;_blank&#34; id=&#34;I Misunderstood Rejection Sampling All This Time&#34;&gt;I Misunderstood Rejection Sampling All This Time&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;clarifies common misconceptions about rejection sampling techniques in statistical computing and graphics&lt;/li&gt;
&lt;li&gt;explains the mathematical foundations and implementation considerations&lt;/li&gt;
&lt;li&gt;showing how to combine multiple sample distributions to improve sample efficiency&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-410/rejection_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250923054830/https://buttondown.com/jaffray/archive/i-misunderstood-rejection-sampling-all-this-time/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://martinfullerblog.wordpress.com/2025/09/26/anisotropic-scaling-in-indiana-jones-and-the-great-circle-and-doom-the-dark-ages/&#34; target=&#34;_blank&#34; id=&#34;Anisotropic Scaling in Indiana Jones and the Great Circle and DOOM: The Dark Ages&#34;&gt;Anisotropic Scaling in Indiana Jones and the Great Circle and DOOM: The Dark Ages&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post discusses performance issues related to Anisotropic samples found on Indiana Jones and the Great Circle, as well as DOOM&lt;/li&gt;
&lt;li&gt;presents an algorithm that can be used to vary AnisotropicSampleCount in a dynamic resolution scenario&lt;/li&gt;
&lt;li&gt;additionally brings up the option of using the same technique for values where infrequent change, particularly with a moving camera, may go unnoticed&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-410/indy.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250927032227/https://martinfullerblog.wordpress.com/2025/09/26/anisotropic-scaling-in-indiana-jones-and-the-great-circle-and-doom-the-dark-ages/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphicsprogrammingconference.com/&#34; target=&#34;_blank&#34; id=&#34;Graphics Programming Conference - Schedule&#34;&gt;Graphics Programming Conference - Schedule&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces the schedule for the Graphics Programming Conference  in Breda, Netherlands, later this year&lt;/li&gt;
&lt;li&gt;covers a large variety of topics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-410/gpc_banner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250929030815/https://graphicsprogrammingconference.com/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=wxRcsZtx6GM&#34; target=&#34;_blank&#34; id=&#34;[video] Shader Optimization - Game Optimization - Episode 10&#34;&gt;[video] Shader Optimization - Game Optimization - Episode 10&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video tutorial focusing on GPU shader optimization techniques&lt;/li&gt;
&lt;li&gt;covers common shader bottlenecks, how to identify performance issues, and possible solutions&lt;/li&gt;
&lt;li&gt;presents optimization scenarios in both Unreal and Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-410/shader_optimization.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=IjwL_pTAxWw&#34; target=&#34;_blank&#34; id=&#34;[video] Physically Based Rendering In OpenGL Using GLTF2&#34;&gt;[video] Physically Based Rendering In OpenGL Using GLTF2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comprehensive tutorial implementing physically based rendering (PBR) in OpenGL using the GLTF 2.0 format&lt;/li&gt;
&lt;li&gt;covers material property handling, including albedo, metallic, roughness, and normal mapping&lt;/li&gt;
&lt;li&gt;demonstrates proper lighting calculations and implementation of the PBR shading model&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-410/gltf_opengl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=hUCzAfN4wqI&#34; target=&#34;_blank&#34; id=&#34;[youtube] CRT Spatial Scaling&#34;&gt;[youtube] CRT Spatial Scaling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;starts by providing an overview of the current landscape of upscaling techniques and associated performance and quality effects&lt;/li&gt;
&lt;li&gt;explores CRT display emulation techniques, focusing on spatial scaling algorithms&lt;/li&gt;
&lt;li&gt;demonstrates methods for accurately reproducing retro gaming visuals on modern high-resolution displays&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-410/lcd_scaling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Stephen Hill for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 409 - September 21st, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-409/</link>
      <pubDate>Sun, 21 Sep 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-409/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jms55.github.io/posts/2025-09-20-solari-bevy-0-17/&#34; target=&#34;_blank&#34; id=&#34;Realtime Raytracing in Bevy 0.17 (Solari)&#34;&gt;Realtime Raytracing in Bevy 0.17 (Solari)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comprehensive technical breakdown of Solari, a real-time raytracing system integrated into Bevy 0.17&lt;/li&gt;
&lt;li&gt;discusses the motivation and development history&lt;/li&gt;
&lt;li&gt;implements ReSTIR Direct and global illumination with a world-space irradiance cache&lt;/li&gt;
&lt;li&gt;uses DLSS Ray Reconstruction for denoising and upscaling&lt;/li&gt;
&lt;li&gt;presents a look at the performance of the various implementation steps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-409/solari_bevy.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/save/https://jms55.github.io/posts/2025-09-20-solari-bevy-0-17/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.4rknova.com/blog/2025/09/12/triple-buffering&#34; target=&#34;_blank&#34; id=&#34;Triple Buffering in Rendering APIs&#34;&gt;Triple Buffering in Rendering APIs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how triple buffering improves frame pacing and throughput by preventing GPU stalls when VSync is enabled&lt;/li&gt;
&lt;li&gt;provides practical implementation examples for Vulkan, DirectX 12, and OpenGL&lt;/li&gt;
&lt;li&gt;briefly mentions the disadvantages of the techniques and common pitfalls&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-409/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250922035402/https://www.4rknova.com/blog/2025/09/12/triple-buffering&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1790_bezier_curve_as_easing_function_in_c&#34; target=&#34;_blank&#34; id=&#34;Bezier Curve as Easing Function In C&amp;#43;&amp;#43;&#34;&gt;Bezier Curve as Easing Function In C&amp;#43;&amp;#43;&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;blog post introduces a library for implementing cubic Bézier curve representation in just 28 bytes&lt;/li&gt;
&lt;li&gt;provides comparisons in time and quality against other implementations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-409/bezier_easing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250920204430/https://asawicki.info/news_1790_bezier_curve_as_easing_function_in_c&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://astrobotic-technology-inc.primepay-recruit.com/job/955337/senior-graphics-and-simulation-software-engineer&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Simulation Software Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Pittsburgh, PA&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;At Astrobotic, we’re building the future of space robotics, from lunar landers to autonomous systems- and simulation is central to that mission. We’re seeking engineers with strong skills in C++, graphics, and simulation to develop high-fidelity environments that enable spacecraft testing and mission operations.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/AstroboticLogo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;astrobotic_week_409&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/nvpro-samples/vk_lod_clusters/blob/main/docs/blas_sharing.md&#34; target=&#34;_blank&#34; id=&#34;BLAS Sharing for ray tracing cluster-based continous level of detail&#34;&gt;BLAS Sharing for ray tracing cluster-based continous level of detail&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents techniques for reducing BLAS builds for cluster-based continuous level of detail systems&lt;/li&gt;
&lt;li&gt;discusses BLAS Sharing, Caching, and Merging&lt;/li&gt;
&lt;li&gt;releases the implementation of the techniques with a detailed discussion of the implementation choices&lt;/li&gt;
&lt;li&gt;additionally presents performance and memory profiling results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-409/blas_techniques.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250922035753/https://github.com/nvpro-samples/vk_lod_clusters/blob/main/docs/blas_sharing.md&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=M-MgQC6z3VU&#34; target=&#34;_blank&#34; id=&#34;[video] What was Euclid really doing?&#34;&gt;[video] What was Euclid really doing?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video exploring the foundational principles and methodologies behind Euclidean geometry&lt;/li&gt;
&lt;li&gt;examines how Euclid&amp;rsquo;s systematic approach to mathematical proofs laid the groundwork for modern mathematical reasoning&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-409/euclid_geometry.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Qe_m7PdQH2U&#34; target=&#34;_blank&#34; id=&#34;[video] Easy Color Theory: A Beginner&amp;#39;s Guide&#34;&gt;[video] Easy Color Theory: A Beginner&amp;#39;s Guide&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introductory video covering fundamental color theory concepts for beginners&lt;/li&gt;
&lt;li&gt;explains color relationships, harmony principles, and practical applications in design and digital art&lt;/li&gt;
&lt;li&gt;provides accessible guidance on using the color wheel and understanding color interactions for improved visual compositions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-409/color_theory.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2025/09/21/the-performance-impact-of-vertex-shader-exports/&#34; target=&#34;_blank&#34; id=&#34;The performance impact of vertex shader exports&#34;&gt;The performance impact of vertex shader exports&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;detailed analysis of how increasing vertex shader exports affects rendering performance on NVIDIA GPUs and AMD integrated GPUs&lt;/li&gt;
&lt;li&gt;demonstrates that drawcall costs can significantly increase when exporting more data to the vertex shader stage&lt;/li&gt;
&lt;li&gt;uses Nsight Graphics profiling to show how bottlenecks and memory allocation patterns impact vertex-to-pixel data flow&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-409/vertex_exports.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250922040205/https://interplayoflight.wordpress.com/2025/09/21/the-performance-impact-of-vertex-shader-exports/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hgpu.org/?p=30221&#34; target=&#34;_blank&#34; id=&#34;Towards Robust Agentic CUDA Kernel Benchmarking, Verification, and Optimization&#34;&gt;Towards Robust Agentic CUDA Kernel Benchmarking, Verification, and Optimization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces robust-kbench, a comprehensive benchmark for evaluating CUDA kernel performance and correctness across varied scenarios&lt;/li&gt;
&lt;li&gt;presents an agentic framework that uses large language models to discover, verify, and optimize CUDA kernels automatically&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-409/cuda_agentic.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250922040237/https://hgpu.org/?p=30221&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Stephen Hill for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 408 - September 14th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-408/</link>
      <pubDate>Sun, 14 Sep 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-408/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/dot-noise&#34; target=&#34;_blank&#34; id=&#34;Dot Noise&#34;&gt;Dot Noise&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces a cost-effective alternative to 3D simplex noise using modified gyroid functions&lt;/li&gt;
&lt;li&gt;provides code and presents practical examples of the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-408/dot_noise.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250909113313/https://mini.gmshaders.com/p/dot-noise&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://passivestar.xyz/posts/light-beam-shader-in-godot/&#34; target=&#34;_blank&#34; id=&#34;Light beam shader in godot &#34;&gt;Light beam shader in godot &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tutorial implementing volumetric light beams using billboard techniques inspired by Half-Life 2&lt;/li&gt;
&lt;li&gt;covers billboarding mathematics, proximity fade implementation, and procedural beam shape generation&lt;/li&gt;
&lt;li&gt;includes gradient overlays and animated noise to improve the visuals further&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-408/light_beam_godot.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250913021141/https://passivestar.xyz/posts/light-beam-shader-in-godot/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=a-K-VbwhChA&#34; target=&#34;_blank&#34; id=&#34;[video] The History of the GPU | GDEX 2025&#34;&gt;[video] The History of the GPU | GDEX 2025&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presentation tracing the evolution of graphics processing units from early hardware to todays designs&lt;/li&gt;
&lt;li&gt;covers key milestones in GPU development and their impact&lt;/li&gt;
&lt;li&gt;additionally covers more recent hardware developments and what might be next&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-408/gpu_hardware.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://chipsandcheese.com/p/amds-rdna4-gpu-architecture-at-hot&#34; target=&#34;_blank&#34; id=&#34;AMD&amp;#39;s RDNA4 GPU Architecture at Hot Chips 2025&#34;&gt;AMD&amp;#39;s RDNA4 GPU Architecture at Hot Chips 2025&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;detailed analysis of AMD&amp;rsquo;s RDNA4 GPU architecture focusing on efficiency improvements in raytracing and compute&lt;/li&gt;
&lt;li&gt;discusses enhanced memory subsystem, improved compression and memory barrier improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-408/rdna4.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250914002004/https://chipsandcheese.com/p/amds-rdna4-gpu-architecture-at-hot&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jax-ml.github.io/scaling-book/gpus/&#34; target=&#34;_blank&#34; id=&#34;How to Think About GPUs&#34;&gt;How to Think About GPUs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comprehensive guide to understanding GPU architecture for machine learning applications&lt;/li&gt;
&lt;li&gt;compares GPU and TPU design philosophies, covering memory hierarchies and networking topologies&lt;/li&gt;
&lt;li&gt;provides practical analysis for scaling large language models on GPU clusters&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-408/b200-node.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250910233707/https://jax-ml.github.io/scaling-book/gpus/#summary-of-gpu-specs&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=_WjU5d26Cc4&#34; target=&#34;_blank&#34; id=&#34;[video] Intel Just Changed Computer Graphics Forever!&#34;&gt;[video] Intel Just Changed Computer Graphics Forever!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how gaussian splats can be used to compress images&lt;/li&gt;
&lt;li&gt;starts with a high level explonation of gaussian splats&lt;/li&gt;
&lt;li&gt;takes this information as starting point to explain the compression process step by step&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-408/gaussian_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=1hrzCXyBIis&#34; target=&#34;_blank&#34; id=&#34;[video] Optimizing Individual Draw Calls - Game Optimization - Episode 9&#34;&gt;[video] Optimizing Individual Draw Calls - Game Optimization - Episode 9&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video tutorial focusing on performance optimization for individual rendering draw calls&lt;/li&gt;
&lt;li&gt;presents how to use PIX to identif long draw calls, investigate the pipeline state to detect performance issues&lt;/li&gt;
&lt;li&gt;how to apply the investigation results back in the engine(s) and the effect of the optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-408/pix_results.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=q1Uq8b2ooVk&#34; target=&#34;_blank&#34; id=&#34;[video] Ed Catmull - SIGGRAPH Pioneers Featured Speaker 2025&#34;&gt;[video] Ed Catmull - SIGGRAPH Pioneers Featured Speaker 2025&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presentation by computer graphics pioneer Ed Catmull at SIGGRAPH 2025 pioneers session&lt;/li&gt;
&lt;li&gt;discusses the story of making Toy Story&lt;/li&gt;
&lt;li&gt;followed by an extensive Q&amp;amp;A session&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-408/ed_siggraph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Jhon Adams for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 407 - September 7th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-407/</link>
      <pubDate>Sun, 07 Sep 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-407/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://imadr.me/pbr/&#34; target=&#34;_blank&#34; id=&#34;Physically based rendering from first principles&#34;&gt;Physically based rendering from first principles&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides a comprehensive introduction to physically based rendering, starting by explaining the physical concepts&lt;/li&gt;
&lt;li&gt;explains the bidirectional reflectance distribution function (BRDF) and how light interacts with surfaces&lt;/li&gt;
&lt;li&gt;demonstrates the mathematical foundations behind microfacet theory and importance sampling techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-407/pbr_concepts.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250907053914/https://imadr.me/pbr/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.makingsoftware.com/chapters/color-spaces-models-and-gamuts&#34; target=&#34;_blank&#34; id=&#34;What is a color space?&#34;&gt;What is a color space?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides a comprehensive explanation of color spaces, color models, and gamuts in digital imaging&lt;/li&gt;
&lt;li&gt;covers the mathematical foundations of how colors are represented and transformed between different systems&lt;/li&gt;
&lt;li&gt;explains practical implications for developers working with color-accurate workflows and display technologies&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-407/srgb-gamut-3D.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250901054027/https://www.makingsoftware.com/chapters/color-spaces-models-and-gamuts&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.frost.kiwi/dual-kawase/&#34; target=&#34;_blank&#34; id=&#34;Video Game Blurs (and how the best one works)&#34;&gt;Video Game Blurs (and how the best one works)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a detailed article that covers the various steps that are required to understand blurs&lt;/li&gt;
&lt;li&gt;provides interactive examples for the various components&lt;/li&gt;
&lt;li&gt;analyzes different blur algorithms and their performance characteristics&lt;/li&gt;
&lt;li&gt;closes with a discussion of Kawase blur technique and how it achieves high-quality blur effects with fewer texture samples than traditional methods&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-407/blur.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250906133247/https://blog.frost.kiwi/dual-kawase/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=wXSJUjgIX6w&#34; target=&#34;_blank&#34; id=&#34;[video] Advances in Order Independent Transparency for Real-Time &amp;amp; Virtual Production Workflows - P. Kakkar&#34;&gt;[video] Advances in Order Independent Transparency for Real-Time &amp;amp; Virtual Production Workflows - P. Kakkar&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explores modern techniques for achieving order-independent transparency in real-time rendering&lt;/li&gt;
&lt;li&gt;discusses the challenges of transparent object rendering and various solutions to depth sorting issues&lt;/li&gt;
&lt;li&gt;presents advances in per-pixel linked lists and weighted blended transparency methods&lt;/li&gt;
&lt;li&gt;covers applications in virtual production workflows where accurate transparency is critical&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-407/oit_landscape.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gamesbymason.com/blog/2025/stop-shipping-pngs/&#34; target=&#34;_blank&#34; id=&#34;Stop Shipping PNGs In Your Games&#34;&gt;Stop Shipping PNGs In Your Games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;demonstrates the benefits of GPU-compatible texture compression for storage size, VRAM usage, and sampling performance&lt;/li&gt;
&lt;li&gt;provides practical guidance on texture format conversion tools and automation workflows for game development&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-407/Universal-GPU-Compressed-Textures.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250907174922/https://gamesbymason.com/blog/2025/stop-shipping-pngs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=w5vC_7yECdQ&#34; target=&#34;_blank&#34; id=&#34;[video] Multiple Frames In Flight // Vulkan For Beginners #24&#34;&gt;[video] Multiple Frames In Flight // Vulkan For Beginners #24&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;demonstrates how to overlap CPU and GPU work by having multiple command buffers and synchronization objects&lt;/li&gt;
&lt;li&gt;covers the synchronization challenges and resource management needed when multiple frames are being processed simultaneously&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-407/vulkan_frames.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=i3NB6qBhCcw&#34; target=&#34;_blank&#34; id=&#34;[video] Optimizing Based On Analysis - Game Optimization - Episode 8&#34;&gt;[video] Optimizing Based On Analysis - Game Optimization - Episode 8&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;demonstrates how to use profiling data and performance analysis to guide optimization decisions&lt;/li&gt;
&lt;li&gt;covers systematic approaches to identifying bottlenecks in game performance&lt;/li&gt;
&lt;li&gt;explains the importance of measuring before optimizing to avoid premature optimization pitfalls&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-407/pix_preview.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@raphaelhorion/unreal-engine-5-is-not-just-a-performance-problem-it-is-a-ux-problem-1e3bdf86cac4&#34; target=&#34;_blank&#34; id=&#34;Unreal Engine 5 is not just a performance problem, it is a UX problem&#34;&gt;Unreal Engine 5 is not just a performance problem, it is a UX problem&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;argues that often UE5 performance issues stem from a poor user experience design rather than just technical limitations&lt;/li&gt;
&lt;li&gt;discusses how hidden system dependencies and lack of performance visibility make optimization difficult for teams&lt;/li&gt;
&lt;li&gt;proposes better profiling tools and feature-level cost indicators to help developers understand what systems are active&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-407/engine_top_down.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250908043603/https://medium.com/@raphaelhorion/unreal-engine-5-is-not-just-a-performance-problem-it-is-a-ux-problem-1e3bdf86cac4&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=GTSRNGQNOe4&#34; target=&#34;_blank&#34; id=&#34;[video] MaterialX Virtual Town Hall 2025&#34;&gt;[video] MaterialX Virtual Town Hall 2025&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents updates and developments in the MaterialX open standard&lt;/li&gt;
&lt;li&gt;discusses community contributions and adoption across different software and studios&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-407/materialx.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://therealmjp.github.io/posts/ten-years-of-d3d12/&#34; target=&#34;_blank&#34; id=&#34;Ten Years of D3D12&#34;&gt;Ten Years of D3D12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;retrospectively examines the evolution of Direct3D 12 over its first decade since release&lt;/li&gt;
&lt;li&gt;details the significant API additions, including ray tracing, mesh shaders, work graphs, and enhanced barriers&lt;/li&gt;
&lt;li&gt;covers new shader features like wave operations, bindless resources, and HLSL language improvements&lt;/li&gt;
&lt;li&gt;reflects on how development workflows and programming patterns have changed with modern D3D12 features&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-407/vrs.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250908230943/https://therealmjp.github.io/posts/ten-years-of-d3d12/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://x.com/aortizelguero&#34; target=&#34;_blank&#34;&gt;Angel Ortiz&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 406 - August 31st, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-406/</link>
      <pubDate>Sun, 31 Aug 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-406/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://advances.realtimerendering.com/s2025/index.html&#34; target=&#34;_blank&#34; id=&#34;Advances in Real-Time Rendering in Games&#34;&gt;Advances in Real-Time Rendering in Games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents the Siggraph 2025 course collection on advances in real-time rendering techniques for games&lt;/li&gt;
&lt;li&gt;discusses latest advances in ray tracing, global illumination, and hybrid rendering pipelines for interactive applications&lt;/li&gt;
&lt;li&gt;Slides for most talks have been released&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-406/advances_siggraph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250901050540/https://advances.realtimerendering.com/s2025/index.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://advances.realtimerendering.com/s2025/content/s2025_stb_lighting_v1.1_notes.pdf&#34; target=&#34;_blank&#34; id=&#34;Stochastic tile-based lighting in HypeHype&#34;&gt;Stochastic tile-based lighting in HypeHype&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a stochastic approach to tile-based lighting&lt;/li&gt;
&lt;li&gt;discusses probabilistic light sampling techniques that maintain visual quality while reducing computational overhead&lt;/li&gt;
&lt;li&gt;demonstrates implementation details for integrating stochastic methods with existing tile-based deferred rendering pipelines&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-406/big_tile.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250828064813/https://advances.realtimerendering.com/s2025/content/s2025_stb_lighting_v1.1_notes.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hexaquo.at/pages/grass-rendering-series-part-4-level-of-detail-tricks-for-infinite-plains-of-grass-in-godot/&#34; target=&#34;_blank&#34; id=&#34;Grass Rendering Series Part 4: Level-Of-Detail Tricks for Infinite Plains of Grass in Godot &#34;&gt;Grass Rendering Series Part 4: Level-Of-Detail Tricks for Infinite Plains of Grass in Godot &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents techniques for implementing level-of-detail systems for grass rendering&lt;/li&gt;
&lt;li&gt;demonstrates the creation of grass impostors using custom shaders that replicate albedo, ambient occlusion, and normal maps without geometry&lt;/li&gt;
&lt;li&gt;shows how to implement smooth transitions between high-detail grass meshes and performance-optimized impostor representations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-406/grass_terrain.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250827175000/https://hexaquo.at/pages/grass-rendering-series-part-4-level-of-detail-tricks-for-infinite-plains-of-grass-in-godot/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.4rknova.com/blog/2025/08/30/foil-sticker&#34; target=&#34;_blank&#34; id=&#34;Implementing a foil sticker effect&#34;&gt;Implementing a foil sticker effect&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents shader techniques for creating realistic metallic foil sticker effects using reflection and refraction&lt;/li&gt;
&lt;li&gt;discusses texture mapping approaches for simulating the characteristic rainbow iridescence of holographic materials&lt;/li&gt;
&lt;li&gt;shader code is included&lt;/li&gt;
&lt;li&gt;additionally contains a real-time implementation in the browser that allows experimentation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-406/foil_sticker.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250901051912/https://www.4rknova.com/blog/2025/08/30/foil-sticker&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.bowerbyte.com/posts/blocky-planet/&#34; target=&#34;_blank&#34; id=&#34;Blocky Planet — Making Minecraft Spherical&#34;&gt;Blocky Planet — Making Minecraft Spherical&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents techniques for transforming cubic voxel worlds into spherical geometries using quad sphere mapping&lt;/li&gt;
&lt;li&gt;discusses map distortion artifacts and how to overcome them for a Minecraft-like world&lt;/li&gt;
&lt;li&gt;provides visual explanations of the issues and how to resolve them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-406/spherical_planet.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250829124404/https://www.bowerbyte.com/posts/blocky-planet/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/func-mix&#34; target=&#34;_blank&#34; id=&#34;Functions: Mix&#34;&gt;Functions: Mix&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents the mix() function used for linear interpolation between values&lt;/li&gt;
&lt;li&gt;discusses practical applications, including color blending, texture transitions, and animation smoothing&lt;/li&gt;
&lt;li&gt;demonstrates various practical use-cases&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-406/glsl_mix.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250901052101/https://mini.gmshaders.com/p/func-mix&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=L71zSWE3krk&#34; target=&#34;_blank&#34; id=&#34;[video] Analyze Your Game With PIX - Game Optimization - Episode 7&#34;&gt;[video] Analyze Your Game With PIX - Game Optimization - Episode 7&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video tutorial demonstrating how to use Microsoft PIX to analyze game GPU performance&lt;/li&gt;
&lt;li&gt;shows the necessary steps to set up the system&lt;/li&gt;
&lt;li&gt;presents a first brief walkthrough of a GPU frame in Unity and Unreal using PIX&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-406/pix_for_games.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2025/08/29/gpu-utilisation-and-performance-improvements/&#34; target=&#34;_blank&#34; id=&#34;GPU utilisation and performance improvements&#34;&gt;GPU utilisation and performance improvements&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explores strategies for maximizing GPU VALU utilization and overall throughput by identifying and removing bottlenecks&lt;/li&gt;
&lt;li&gt;discusses when to use different shader types (pixel vs compute) based on workload characteristics and hardware limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-406/perf_counters_gpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250901050306/https://interplayoflight.wordpress.com/2025/08/29/gpu-utilisation-and-performance-improvements/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphicsprogrammingconference.com/tickets/&#34; target=&#34;_blank&#34; id=&#34;Graphics Programming Conference&#34;&gt;Graphics Programming Conference&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces the Graphics Programming Conference tickets are on sale now&lt;/li&gt;
&lt;li&gt;Many sessions are also already announced&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-406/gpc_banner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250829002736/https://graphicsprogrammingconference.com/tickets/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1789_recommended_programming_newsletters&#34; target=&#34;_blank&#34; id=&#34;Recommended Programming Newsletters&#34;&gt;Recommended Programming Newsletters&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a curated collection of programming newsletters covering various development topics (mine is included as well)&lt;/li&gt;
&lt;li&gt;discusses newsletters focusing on graphics programming, game development, and rendering techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-406/2025-07-25.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250831072210/https://asawicki.info/news_1789_recommended_programming_newsletters&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://x.com/aortizelguero&#34; target=&#34;_blank&#34;&gt;Angel Ortiz&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 405 - August 24th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-405/</link>
      <pubDate>Sun, 24 Aug 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-405/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=g2dA8FhdmGM&#34; target=&#34;_blank&#34; id=&#34;[video] Elden Ring, scrolling textures, swirling tornadoes.&#34;&gt;[video] Elden Ring, scrolling textures, swirling tornadoes.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video explains the implementation of a tornado effect as found in Elden Ring&lt;/li&gt;
&lt;li&gt;shows the modeling, UV manipulation, and shader work in Godot&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-405/elden_ring_textures.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=hjjodpsZ70Q&#34; target=&#34;_blank&#34; id=&#34;[video] What to do if you&amp;#39;re GPU Bound - Game Optimization - Episode 6&#34;&gt;[video] What to do if you&amp;#39;re GPU Bound - Game Optimization - Episode 6&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video tutorial covering optimization strategies when games are GPU-limited&lt;/li&gt;
&lt;li&gt;presents techniques for identifying GPU bottlenecks and performance issues&lt;/li&gt;
&lt;li&gt;demonstrates effects of lights, shadows, post-processing, as well as overdraw optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-405/gpu_bound_optimization.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2025/08/24/This-many-points-is-surely-out-of-scope/&#34; target=&#34;_blank&#34; id=&#34;This many points is surely out of scope!&#34;&gt;This many points is surely out of scope!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The author explores GPU point rendering performance bottlenecks&lt;/li&gt;
&lt;li&gt;investigates why millions of points cause dramatic slowdowns on Apple GPUs when heavily overlapped&lt;/li&gt;
&lt;li&gt;compares regular point rasterization vs compute shader approaches across 30+ GPU models&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-405/scopes-waveform-new.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250825040142/https://aras-p.info/blog/2025/08/24/This-many-points-is-surely-out-of-scope/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://huggingface.co/Arm/neural-super-sampling&#34; target=&#34;_blank&#34; id=&#34;Neural Super Sampling&#34;&gt;Neural Super Sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Arm releases a temporal super sampling model optimized for mobile Neural Accelerators  &lt;/li&gt;
&lt;li&gt;enables upscaling from 540p to 1080p&lt;/li&gt;
&lt;li&gt;includes explanations on how to get started with the model as well as how to train and evaluate it&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-405/neural_super_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250825040358/https://huggingface.co/Arm/neural-super-sampling&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aschrein.github.io/jekyll/update/2025/08/23/compute_graph.html&#34; target=&#34;_blank&#34; id=&#34;Notes on AutoGrad&#34;&gt;Notes on AutoGrad&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comprehensive guide to automatic differentiation in machine learning from a practical perspective&lt;/li&gt;
&lt;li&gt;covers DAG computation graphs, dynamic graph building, and gradient computation using the chain rule&lt;/li&gt;
&lt;li&gt;includes toy AutoGrad implementation in Python, demonstrating forward and backward passes&lt;/li&gt;
&lt;li&gt;explores regularization techniques, skip connections, and gradient management in modern frameworks like PyTorch&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-405/mm.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250825040421/https://aschrein.github.io/jekyll/update/2025/08/23/compute_graph.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://samwho.dev/big-o/&#34; target=&#34;_blank&#34; id=&#34;Big O&#34;&gt;Big O&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;interactive tutorial on Big O notation explaining algorithm complexity analysis&lt;/li&gt;
&lt;li&gt;covers O(1), O(log n), O(n), and O(n²) with practical examples including bubble sort and binary search&lt;/li&gt;
&lt;li&gt;demonstrates performance implications through visual demonstrations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-405/big_o.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250824045920/https://samwho.dev/big-o/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0014/02/01/&#34; target=&#34;_blank&#34; id=&#34;Neural Visibility Cache for Real-Time Light Sampling&#34;&gt;Neural Visibility Cache for Real-Time Light Sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;trained neural cache storing visibility between lights and 3D positions for direct illumination&lt;/li&gt;
&lt;li&gt;integrates MLP with multi-resolution hash-grid encoding&lt;/li&gt;
&lt;li&gt;feeds light visibility data to weighted reservoir sampling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-405/neural_visibility_cache.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250825040657/https://jcgt.org/published/0014/02/01/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jakub.kr/components/oklch-colors&#34; target=&#34;_blank&#34; id=&#34;OKLCH colors&#34;&gt;OKLCH colors&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;perceptually uniform color model based on OKLab color space, offering improved color manipulation&lt;/li&gt;
&lt;li&gt;enables consistent brightness across different hues by maintaining the same lightness value&lt;/li&gt;
&lt;li&gt;produces better gradients without muddy midpoints and predictable shades without hue drift&lt;/li&gt;
&lt;li&gt;supports wider Display-P3 gamut colors beyond sRGB&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-405/oklch.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250821173603/https://jakub.kr/components/oklch-colors&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/introducing-advanced-shader-delivery/&#34; target=&#34;_blank&#34; id=&#34;Introducing Advanced Shader Delivery&#34;&gt;Introducing Advanced Shader Delivery&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Microsoft&amp;rsquo;s solution to shader compilation stuttering by moving shader compilation to cloud infrastructure&lt;/li&gt;
&lt;li&gt;creates State Object Database (SODB) from game data and Precompiled Shader Database (PSDB) for distribution&lt;/li&gt;
&lt;li&gt;initially launching on ROG Xbox Ally devices and later broader through the AgilitySDK&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-405/shader_delivery.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250825041056/https://devblogs.microsoft.com/directx/introducing-advanced-shader-delivery/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/amd-fidelityfx-sdk-2-0/&#34; target=&#34;_blank&#34; id=&#34;AMD FidelityFX SDK 2.0 launches our neural rendering technologies for developers&#34;&gt;AMD FidelityFX SDK 2.0 launches our neural rendering technologies for developers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;major revision introducing ML-based neural rendering technologies, including AMD FSR 4 upscaling&lt;/li&gt;
&lt;li&gt;requires pre-built, signed DLL architecture with automatic hardware-appropriate fallback from FSR 4 to FSR 3.1.5&lt;/li&gt;
&lt;li&gt;enables automatic driver-based technology upgrades for FSR 4 upscaling and upcoming FSR ML Frame Generation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-405/fx_sdk_2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250820173210/https://gpuopen.com/learn/amd-fidelityfx-sdk-2-0/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://haukethiessen.com/introducing-the-mip-explorer/&#34; target=&#34;_blank&#34; id=&#34;Introducing the MIP Explorer&#34;&gt;Introducing the MIP Explorer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Python tool for analyzing texture resolution requirements by examining mipmap level information distribution&lt;/li&gt;
&lt;li&gt;calculates per-pixel differences between consecutive mip levels to identify needlessly large textures&lt;/li&gt;
&lt;li&gt;helps to optimize texture memory usage and streaming performance by providing objective metrics for size reduction decisions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-405/MipExplorer.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250825041332/https://haukethiessen.com/introducing-the-mip-explorer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://pharr.org/matt/&#34; target=&#34;_blank&#34;&gt;Matt Pharr&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 404 - August 17th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-404/</link>
      <pubDate>Sun, 17 Aug 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-404/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.selfshadow.com/publications/s2025-shading-course/&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2025 Course: Physically Based Shading in Theory and Practice &#34;&gt;SIGGRAPH 2025 Course: Physically Based Shading in Theory and Practice &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;annual SIGGRAPH course covering the latest developments in physically based shading research and practice&lt;/li&gt;
&lt;li&gt;features presentations on OpenPBR, EON energy-preserving diffuse reflection, spectral rendering in RGB workflows, and neural materials&lt;/li&gt;
&lt;li&gt;additionally covers hair/fur shading models and tone mapping techniques from Gran Turismo 7&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-404/pbs_course.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250817145024/https://blog.selfshadow.com/publications/s2025-shading-course/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.selfshadow.com/2025/08/15/siggraph-2025-links&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2025 Links&#34;&gt;SIGGRAPH 2025 Links&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comprehensive collection of links to SIGGRAPH 2025 content including courses, talks, papers, and emerging technologies&lt;/li&gt;
&lt;li&gt;covers session recordings, technical papers, and innovative demonstrations from the conference&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-404/s25_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250817144416/https://blog.selfshadow.com/2025/08/15/siggraph-2025-links/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/lunarg-at-siggraph-2025-updates-on-ecosystem-and-gfxreconstruct/&#34; target=&#34;_blank&#34; id=&#34;LunarG at SIGGRAPH 2025: Updates on Ecosystem and GFXReconstruct&#34;&gt;LunarG at SIGGRAPH 2025: Updates on Ecosystem and GFXReconstruct&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;LunarG&amp;rsquo;s SIGGRAPH 2025 presentations on Vulkan SDK updates and GFXReconstruct capabilities&lt;/li&gt;
&lt;li&gt;details improvements to validation layers, new tooling features, and ecosystem advancements since 2024&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-404/LunarG-SIGGRAPH.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250814071101/https://www.lunarg.com/lunarg-at-siggraph-2025-updates-on-ecosystem-and-gfxreconstruct/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ludicon.com/castano/blog/2025/08/spark-1-3-and-spark-js/&#34; target=&#34;_blank&#34; id=&#34;Spark 1.3 and spark.js&#34;&gt;Spark 1.3 and spark.js&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;release of Spark 1.3 with full WebGPU support and introduction of spark.js for browser-based GPU texture compression&lt;/li&gt;
&lt;li&gt;introduces new BC7 RGBA codec and improved quality across all formats&lt;/li&gt;
&lt;li&gt;performance improvements for EAC compression on mobile GPUs and expanded platform support including older OpenGL versions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-404/spark_js.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250818043157/https://www.ludicon.com/castano/blog/2025/08/spark-1-3-and-spark-js/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.evolvebenchmark.com/blog-posts/learning-about-gpus-through-measuring-memory-bandwidth&#34; target=&#34;_blank&#34; id=&#34;Learning About GPUs Through Measuring Memory Bandwidth&#34;&gt;Learning About GPUs Through Measuring Memory Bandwidth&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Explains descriptors, buffer types, and texture units in practical terms&lt;/li&gt;
&lt;li&gt;Walks through cache behavior (write-back/combining, globallycoherent) and latency hiding&lt;/li&gt;
&lt;li&gt;Shares findings from a purpose-built microbenchmark across multiple GPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-404/gpu_memory_bandwidth.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250727093106/https://www.evolvebenchmark.com/blog-posts/learning-about-gpus-through-measuring-memory-bandwidth&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.thomaspoulet.fr/posts/anno-1800-frame-analysis/&#34; target=&#34;_blank&#34; id=&#34;Anno 1800: Frame Analysis&#34;&gt;Anno 1800: Frame Analysis&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;in-depth technical analysis of Anno 1800&amp;rsquo;s custom rendering pipeline from terrain virtual textures to final output&lt;/li&gt;
&lt;li&gt;explores techniques like GPU-driven rendering, compute-based particle systems, and async wave simulation&lt;/li&gt;
&lt;li&gt;detailed breakdown of the forward rendering approach including depth prepass, shadows, and post-processing stack&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-404/anno_feature.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250818043315/https://blog.thomaspoulet.fr/posts/anno-1800-frame-analysis/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2025/08/16/derivatives-gradients-jacobians-and-hessians-oh-my/&#34; target=&#34;_blank&#34; id=&#34;Derivatives, Gradients, Jacobians and Hessians – Oh My!&#34;&gt;Derivatives, Gradients, Jacobians and Hessians – Oh My!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;educational article explaining the relationships between derivatives, gradients, Jacobian matrices, and Hessian matrices&lt;/li&gt;
&lt;li&gt;demonstrates practical applications in optimization, machine learning, and computer graphics&lt;/li&gt;
&lt;li&gt;explains how these concepts are used in rendering techniques like gradient descent and SDF antialiasing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-404/derivatives_math.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250817165948/https://blog.demofox.org/2025/08/16/derivatives-gradients-jacobians-and-hessians-oh-my/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hexaquo.at/pages/environment-and-light-in-godot-setting-up-for-photorealistic-3d-graphics/&#34; target=&#34;_blank&#34; id=&#34;Environment and Light in Godot: Setting Up For Photorealistic 3D Graphics&#34;&gt;Environment and Light in Godot: Setting Up For Photorealistic 3D Graphics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comprehensive guide to setting up realistic lighting and environments in Godot 4&lt;/li&gt;
&lt;li&gt;covers WorldEnvironment setup, physical sky materials, HDR tone mapping, and global illumination techniques&lt;/li&gt;
&lt;li&gt;explains practical aspects of ambient occlusion, bloom, fog, and color grading for achieving high-quality visuals&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-404/godot_photorealistic.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250818043404/https://hexaquo.at/pages/environment-and-light-in-godot-setting-up-for-photorealistic-3d-graphics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=xGArZnotM8k&#34; target=&#34;_blank&#34; id=&#34;[video] HDR And Tone Mapping Using OpenGL // Intermediate OpenGL Series&#34;&gt;[video] HDR And Tone Mapping Using OpenGL // Intermediate OpenGL Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video tutorial explaining high dynamic range rendering and tone mapping implementation in OpenGL&lt;/li&gt;
&lt;li&gt;covers the theory behind HDR color spaces and why traditional 0-1 RGB values are insufficient for realistic lighting&lt;/li&gt;
&lt;li&gt;demonstrates practical implementation of tone mapping operators to convert HDR to displayable LDR formats&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-404/hdr_tone_map.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=wA1KVZ1eOuA&#34; target=&#34;_blank&#34; id=&#34;[video] I Tried Ray-Tracing Glass and Rainbows&#34;&gt;[video] I Tried Ray-Tracing Glass and Rainbows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video demonstrating ray tracing implementation for glass materials and dispersion effects to create rainbows&lt;/li&gt;
&lt;li&gt;explores the physics of light refraction and how to simulate wavelength-dependent refractive indices&lt;/li&gt;
&lt;li&gt;presents visual explanations of the pheonmenos and how to implement them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-404/ray_tracing_glass.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 403 - August 10th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-403/</link>
      <pubDate>Sun, 10 Aug 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-403/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/amd-fsr3-ue5-6-redstone/&#34; target=&#34;_blank&#34; id=&#34;Get ready for FSR Redstone with AMD FSR 3.1.4 and our new UE 5.6 plugin&#34;&gt;Get ready for FSR Redstone with AMD FSR 3.1.4 and our new UE 5.6 plugin&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces FSR Redstone, AMD&amp;rsquo;s upcoming suite of ML-powered neural rendering techniques&lt;/li&gt;
&lt;li&gt;includes Neural Radiance Caching for real-time global illumination, ML Ray Regeneration for restoring details from low sample counts, Super Resolution (FSR 4), including frame generation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-403/fsr_redstone.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250811043758/https://gpuopen.com/learn/amd-fsr3-ue5-6-redstone/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://coburggraphicslab.github.io/workgraphs&#34; target=&#34;_blank&#34; id=&#34;GPU Work Graphs Course&#34;&gt;GPU Work Graphs Course&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Siggraph course covering GPU Work Graphs for D3D12&lt;/li&gt;
&lt;li&gt;starts with an in-depth look at graphics and API history and remaining limitations that work graphs aim to solve&lt;/li&gt;
&lt;li&gt;provides detailed tutorials and examples for using the API and understanding related concepts&lt;/li&gt;
&lt;li&gt;additionally explains how the driver implementation maps it onto the hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-403/gpu_work_graphs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250811024005/https://coburggraphicslab.github.io/workgraphs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.selfshadow.com/publications/s2025-shading-course/&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2025 Course: Physically Based Shading in Theory and Practice &#34;&gt;SIGGRAPH 2025 Course: Physically Based Shading in Theory and Practice &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;2025 editions of SIGGRAPH courses on physically based shading&lt;/li&gt;
&lt;li&gt;covers topics including OpenPBR implementation details, spectral rendering in RGB, strand shading for hair/fur/feathers, and neural materials&lt;/li&gt;
&lt;li&gt;additionally features talks on EON rough diffuse reflection, tone mapping in Gran Turismo 7, and bridging the gap between offline and real-time rendering&lt;/li&gt;
&lt;li&gt;Slides are already available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-403/pbr_shading.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250811044148/https://blog.selfshadow.com/publications/s2025-shading-course/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.yiningkarlli.com/projects/gpuptex.html&#34; target=&#34;_blank&#34; id=&#34;A Texture Streaming Pipeline for Real-Time GPU Ray Tracing&#34;&gt;A Texture Streaming Pipeline for Real-Time GPU Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents Disney Animation&amp;rsquo;s solution for handling massive Ptex datasets (1.5 TB) in GPU ray tracing using only 2 GB of GPU VRAM&lt;/li&gt;
&lt;li&gt;employs a fast LRU eviction scheme and caps GPU cache size to maintain zero-stall experience while preserving texture detail&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-403/disney_texture_streaming.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250811044249/https://www.yiningkarlli.com/projects/gpuptex.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/dense-geometry-format-amd-vulkan-extension/&#34; target=&#34;_blank&#34; id=&#34;AMD releases Vulkan support for Dense Geometry Format&#34;&gt;AMD releases Vulkan support for Dense Geometry Format&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces VK_AMDX_dense_geometry_format, a provisional Vulkan extension for using pre-compressed DGF data in acceleration structure builds&lt;/li&gt;
&lt;li&gt;eliminates performance and memory costs of separate decoding steps by providing DGF data directly to the GPU&lt;/li&gt;
&lt;li&gt;improves BLAS build time and reduces memory footprint on hardware with native DGF support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-403/dgf_vulkan.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250811044628/https://gpuopen.com/learn/dense-geometry-format-amd-vulkan-extension/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://nvda.ws/45hoVGa&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH - NVIDIA Research Special Address&#34;&gt;SIGGRAPH - NVIDIA Research Special Address&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;NVIDIA AI Research Leaders present the latest breakthroughs in computer graphics and Physical AI&lt;/li&gt;
&lt;li&gt;Topics will include advancements in data generation, and their impact across industries from media to manufacturing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-403/sigg25_research.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/a-vulkan-on-metal-mesa-3d-graphics-driver/&#34; target=&#34;_blank&#34; id=&#34;A Vulkan on Metal Mesa 3D Graphics Driver&#34;&gt;A Vulkan on Metal Mesa 3D Graphics Driver&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces KosmicKrisp, LunarG&amp;rsquo;s new Vulkan driver for Apple hardware built within the Mesa 3D framework&lt;/li&gt;
&lt;li&gt;targets Vulkan 1.3 conformance level&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-403/KosmicKrisp.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250808205016/https://www.lunarg.com/a-vulkan-on-metal-mesa-3d-graphics-driver/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/news/press/inaugural-shading-language-symposium-siggraph-2025&#34; target=&#34;_blank&#34; id=&#34;Khronos Group Announces Inaugural Shading Languages Symposium&#34;&gt;Khronos Group Announces Inaugural Shading Languages Symposium&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces the first-ever Shading Languages Symposium scheduled for February 12-13, 2026, in San Diego, California&lt;/li&gt;
&lt;li&gt;Representative for GLSL, HLSL, MSL, OSL, Slang, SPIR-V, and WGSL will be in attendance&lt;/li&gt;
&lt;li&gt;Call for submission is open&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-403/shader_language_conference.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250811044909/https://www.khronos.org/news/press/inaugural-shading-language-symposium-siggraph-2025&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.c0de517e.com/025_cubeproj.htm&#34; target=&#34;_blank&#34; id=&#34;Half-baked: Probe warping&#34;&gt;Half-baked: Probe warping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explores a technique for &amp;ldquo;warping&amp;rdquo; probe data to approximate lighting information at different spatial locations&lt;/li&gt;
&lt;li&gt;describes an algorithm that uses planes and ray intersections to reproject cubemap data, similar to parallax mapping but applied to spherical probes&lt;/li&gt;
&lt;li&gt;presents a ShaderToy implementation that demonstrates the concepts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-403/toy3_warped.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250811044906/https://www.c0de517e.com/025_cubeproj.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Yd0xNTYNfss&#34; target=&#34;_blank&#34; id=&#34;[video] 5 Ways To Make An Awesome Skybox In Unity&#34;&gt;[video] 5 Ways To Make An Awesome Skybox In Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video tutorial demonstrating five different techniques for creating compelling skyboxes in Unity&lt;/li&gt;
&lt;li&gt;covers various approaches from basic cubemap setups to more advanced procedural and dynamic skybox implementations&lt;/li&gt;
&lt;li&gt;provides practical tips for achieving high-quality atmospheric effects and environment lighting in Unity projects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-403/skybox.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=XgaEqRXVmO0&#34; target=&#34;_blank&#34; id=&#34;[video] Analyze First, Then Optimize - Game Optimization - Episode 4&#34;&gt;[video] Analyze First, Then Optimize - Game Optimization - Episode 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video emphasizing the importance of profiling and analysis before starting on the implementing of performance optimizations&lt;/li&gt;
&lt;li&gt;discusses methodologies for identifying performance bottlenecks rather than making assumptions&lt;/li&gt;
&lt;li&gt;provides guidance on using profiling tools and data-driven approaches to make informed optimization decisions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-403/performance_analyze.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 402 - August 3rd, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-402/</link>
      <pubDate>Sun, 03 Aug 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-402/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/Siggraph2025.html&#34; target=&#34;_blank&#34; id=&#34;Quadric-Based Silhouette Sampling for Differentiable Rendering&#34;&gt;Quadric-Based Silhouette Sampling for Differentiable Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents an improved technique for silhouette sampling in physically based differentiable rendering&lt;/li&gt;
&lt;li&gt;introduces new rejection test methods using bounding boxes in dual space and dual quadrics&lt;/li&gt;
&lt;li&gt;achieves significant variance reduction compared to previous edge sampling approaches&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-402/quadric.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250804052610/https://momentsingraphics.de/Siggraph2025.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.pkh.me/p/44-perfecting-anti-aliasing-on-signed-distance-functions.html&#34; target=&#34;_blank&#34; id=&#34;Perfecting anti-aliasing on signed distance functions&#34;&gt;Perfecting anti-aliasing on signed distance functions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains techniques for implementing anti-aliasing with signed distance functions (SDFs)&lt;/li&gt;
&lt;li&gt;compares linear, smoothstep, and smootherstep transitions for both pixel-wise AA and blur effects&lt;/li&gt;
&lt;li&gt;demonstrates how to use numerical derivatives with fwidth() to maintain consistent AA regardless of perspective&lt;/li&gt;
&lt;li&gt;additionally presents the effect of color space choices&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-402/w-vs-d.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250727062258/https://blog.pkh.me/p/44-perfecting-anti-aliasing-on-signed-distance-functions.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=drHKzbu6uC0&#34; target=&#34;_blank&#34; id=&#34;[video] Integrating ImGui with Vulkan: Step-by-Step Guide&#34;&gt;[video] Integrating ImGui with Vulkan: Step-by-Step Guide&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Video showing detailed implementation of Dear ImGui into a Vulkan graphics engine&lt;/li&gt;
&lt;li&gt;covers setup process including descriptor management, render pass integration, and input handling&lt;/li&gt;
&lt;li&gt;presents how to use the system to allow parameter adjustments&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-402/imgui-vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://studio.blender.org/blog/our-workflow-with-blender-and-godot/&#34; target=&#34;_blank&#34; id=&#34;Our Workflow with Blender and Godot&#34;&gt;Our Workflow with Blender and Godot&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;details the Studio&amp;rsquo;s Blender-based asset pipeline using Godot&lt;/li&gt;
&lt;li&gt;explains their DCC-centric approach using glTF as the exchange format with collection exports for asset management&lt;/li&gt;
&lt;li&gt;discusses custom extension code that handles automated export/import workflow and proper asset separation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-402/gltf_pipeline.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250726034845/https://studio.blender.org/blog/our-workflow-with-blender-and-godot/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://nvda.ws/45hoVGa&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH - OpenUSD Day&#34;&gt;SIGGRAPH - OpenUSD Day&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;SIGGRAPH 2025 will feature a full day dedicated to OpenUSD sessions and hands-on labs&lt;/li&gt;
&lt;li&gt;For the first time, NVIDIA will offer OpenUSD certification in person (free for attendees)&lt;/li&gt;
&lt;li&gt;Sessions will explore how leading companies are leveraging OpenUSD for applications in simulation, robotics, and Industrial AI.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/sigg25_usd.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1788_debugging_amd-specific_issues_with_driver_experiments_tool&#34; target=&#34;_blank&#34; id=&#34;Debugging AMD-Specific Issues with Driver Experiments Tool&#34;&gt;Debugging AMD-Specific Issues with Driver Experiments Tool&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Introduces the Driver Experiments feature in the Radeon Developer Panel for debugging GPU issues&lt;/li&gt;
&lt;li&gt;explains how to use the &amp;ldquo;Force NonUniformResourceIndex&amp;rdquo; experiment to detect missing shader qualifiers&lt;/li&gt;
&lt;li&gt;details the experiments that allow disabling of color and depth compression to identify render target barrier issues&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-402/Driver_Experiments_illustration.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250804053737/https://asawicki.info/news_1788_debugging_amd-specific_issues_with_driver_experiments_tool&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://iquilezles.org/articles/gpuconditionals/&#34; target=&#34;_blank&#34; id=&#34;gpu conditionals - 2025&#34;&gt;gpu conditionals - 2025&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains why ternary operators and if statements don&amp;rsquo;t cause branch instructions for simple value selection&lt;/li&gt;
&lt;li&gt;demonstrates through disassembly that these operations use conditional moves rather than actual branching&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-402/gpuconditionals.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250526000626/https://iquilezles.org/articles/gpuconditionals/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.c0de517e.com/024_meshblend.htm&#34; target=&#34;_blank&#34; id=&#34;Fun with MeshBlend!&#34;&gt;Fun with MeshBlend!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;proposes a screen-space approach similar to SSAO that samples and blends material properties from nearby surfaces&lt;/li&gt;
&lt;li&gt;demonstrates how understanding the core concept of ideas can lead to innovative solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-402/mesh_blend.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250804054516/https://www.c0de517e.com/024_meshblend.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/jakericedesigns/SteerablePerlinNoise/blob/main/PDFs/Steerable_Perlin_Noise.pdf&#34; target=&#34;_blank&#34; id=&#34;Steerable Perlin Noise&#34;&gt;Steerable Perlin Noise&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a modification to classic Perlin noise, allowing directional control over the pattern generation&lt;/li&gt;
&lt;li&gt;includes implementation details with ShaderToy examples showing practical applications&lt;/li&gt;
&lt;li&gt;demonstrates how the technique can be used for creating oriented textures and controlled flow patterns&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-402/SteerablePerlinNoise.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250804054440/https://github.com/jakericedesigns/SteerablePerlinNoise/blob/main/PDFs/Steerable_Perlin_Noise.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2025/08/03/toroidally-progressive-stratified-sampling-in-1d/&#34; target=&#34;_blank&#34; id=&#34;Toroidally Progressive Stratified Sampling in 1D&#34;&gt;Toroidally Progressive Stratified Sampling in 1D&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces a technique that combines stratified sampling with golden ratio sequence ordering&lt;/li&gt;
&lt;li&gt;creates sampling patterns that maintain good quality at any sample count and across sequence boundaries&lt;/li&gt;
&lt;li&gt;compares error convergence with standard white noise&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-402/100_triangle.meansquarederror-2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250804054654/https://blog.demofox.org/2025/08/03/toroidally-progressive-stratified-sampling-in-1d/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Q05R_UKhRo4&#34; target=&#34;_blank&#34; id=&#34;[video] Preproduction Optimization Steps - Game Optimization - Episode 3&#34;&gt;[video] Preproduction Optimization Steps - Game Optimization - Episode 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Third episode in a game optimization series focusing on strategic performance planning during pre-production&lt;/li&gt;
&lt;li&gt;discusses establishing performance budgets across the target platforms&lt;/li&gt;
&lt;li&gt;How to develop optimization strategies before production&lt;/li&gt;
&lt;li&gt;explains how to identify potential bottlenecks early through prototyping and setting clear technical constraints&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-402/performance_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 401 - July 27th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-401/</link>
      <pubDate>Sun, 27 Jul 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-401/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=27Am6QaH_Hc&#34; target=&#34;_blank&#34; id=&#34;[video] The Graphics Pipeline and Rendering Types - Game Optimization - Episode 2&#34;&gt;[video] The Graphics Pipeline and Rendering Types - Game Optimization - Episode 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Second episode in a game optimization series covering the graphics pipeline and different rendering approaches&lt;/li&gt;
&lt;li&gt;explains the stages of the graphics rendering pipeline&lt;/li&gt;
&lt;li&gt;discusses the differences between deferred and forward shading and how they impact performance characteristics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-401/graphics_pipeline_optimization.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/decoding-phosphor&#34; target=&#34;_blank&#34; id=&#34;Decoding: Phosphor&#34;&gt;Decoding: Phosphor&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Technical breakdown of a 258-character shader that creates glowing, fluid particles using raymarching and turbulence techniques&lt;/li&gt;
&lt;li&gt;explains how the compact code handles raycasting, 3D rotation, camera displacement, and particle distribution&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-401/phosphor_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250728045929/https://mini.gmshaders.com/p/decoding-phosphor&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://larstofus.com/2025/07/27/profiling-without-source-code-how-i-diagnosed-trackmania-stuttering/&#34; target=&#34;_blank&#34; id=&#34;Profiling without Source code – how I diagnosed Trackmania stuttering&#34;&gt;Profiling without Source code – how I diagnosed Trackmania stuttering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;describes how to diagnose stuttering issues in Trackmania using profiling tools without access to the source code&lt;/li&gt;
&lt;li&gt;uses Superluminal profiler to identify patterns and library calls to track down performance bottlenecks&lt;/li&gt;
&lt;li&gt;demonstrating how performance analysis can work without debug symbols&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-401/trackmania_profiling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250728045334/https://larstofus.com/2025/07/27/profiling-without-source-code-how-i-diagnosed-trackmania-stuttering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pedrovfigueiredo.github.io/projects/manylights/SIGGRAPH_2025_Importance_Sampling/index.html&#34; target=&#34;_blank&#34; id=&#34;Neural Importance Sampling of Many Lights&#34;&gt;Neural Importance Sampling of Many Lights&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;SIGGRAPH 2025 paper presenting a neural approach for estimating spatially varying light selection distributions in many-light scenarios&lt;/li&gt;
&lt;li&gt;uses a neural network trained to predict light selection distributions based on local information&lt;/li&gt;
&lt;li&gt;integrates with light hierarchy techniques and introduces residual learning to accelerate convergence during training&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-401/neural_importance_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250728050115/https://pedrovfigueiredo.github.io/projects/manylights/SIGGRAPH_2025_Importance_Sampling/index.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=iv-5mZ_9CPY&#34; target=&#34;_blank&#34; id=&#34;[video] But how do AI images/videos actually work? | Guest video by WelchLabsVideo&#34;&gt;[video] But how do AI images/videos actually work? | Guest video by WelchLabsVideo&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Educational breakdown of how AI image and video generation systems function under the hood&lt;/li&gt;
&lt;li&gt;explains the mathematical and algorithmic foundations behind diffusion models and neural networks used for content generation&lt;/li&gt;
&lt;li&gt;tries to explain and develop intuitions into the process from noise to coherent images, covering training methodologies and inference techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-401/ai_images_work.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://jeco-jobs.notion.site/Intermediate-C-Programmer-22a53f0f79ca808aaac1f2232f44c269&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Intermediate C&amp;#43;&amp;#43; Programmers&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Remote (UK only)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Here at JECO, we&amp;rsquo;re building automated optimisation tools for all software, on any device, starting with video games - saving hours of developer time, costs and carbon emissions. We&amp;rsquo;re currently looking for purpose-driven and talented Intermediate C++ Programmers to join our team and work on developing our industry-first tools.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/jeco_color_black.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;jeco_week_401&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mozillagfx.wordpress.com/2025/07/15/shipping-webgpu-on-windows-in-firefox-141/&#34; target=&#34;_blank&#34; id=&#34;Shipping WebGPU on Windows in Firefox 141&#34;&gt;Shipping WebGPU on Windows in Firefox 141&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces Mozilla&amp;rsquo;s release of WebGPU support on Windows in Firefox 141, bringing modern GPU access to the web&lt;/li&gt;
&lt;li&gt;built on the WGPU Rust crate, providing a unified interface to Direct3D 12, Metal, and Vulkan across platforms&lt;/li&gt;
&lt;li&gt;discusses ongoing performance improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-401/firefox_webgpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250728000000*/https://mozillagfx.wordpress.com/2025/07/15/shipping-webgpu-on-windows-in-firefox-141/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ah9Tfebk7JA&#34; target=&#34;_blank&#34; id=&#34;[video] GPU Programming and Language Design with Chris Lattner&#34;&gt;[video] GPU Programming and Language Design with Chris Lattner&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;interview with LLVM and Swift creator Chris Lattner discussing GPU programming languages and their design challenges&lt;/li&gt;
&lt;li&gt;explores the evolution of GPU programming models and the unique constraints that influence language design for parallel computing&lt;/li&gt;
&lt;li&gt;focuses on the work on the Mojo programming language that allows CPU+GPU execution without CUDA&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-401/mojo_gpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.graphicsprogrammingconference.com/&#34; target=&#34;_blank&#34; id=&#34;Graphics Programming Conference&#34;&gt;Graphics Programming Conference&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The Graphics Programming Conference in Breda for November 18th-20th, 2025, has announced its first set of talks&lt;/li&gt;
&lt;li&gt;covers topics ranging from real-time path tracing and volumetric rendering to GPU particle systems and mobile game optimization&lt;/li&gt;
&lt;li&gt;There are still a couple of days left to submit a talk&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-401/gpc_banner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250728045409/https://www.graphicsprogrammingconference.com/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.reedbeta.com&#34; target=&#34;_blank&#34;&gt;Nathan Reed&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 400 - July 20th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-400/</link>
      <pubDate>Sun, 20 Jul 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-400/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=jt8b0cpjUVk&#34; target=&#34;_blank&#34; id=&#34;[video] Game Optimization - Introduction &amp;amp; General Principles - Episode 1&#34;&gt;[video] Game Optimization - Introduction &amp;amp; General Principles - Episode 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;first episode in a series covering game optimization principles&lt;/li&gt;
&lt;li&gt;why you should optimize, who should optimize, and when you should optimize&lt;/li&gt;
&lt;li&gt;introduces fundamental concepts and methodologies for optimizing game performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-400/game_optimization.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ofu1ael331I&#34; target=&#34;_blank&#34; id=&#34;[video] How to optimize your Niagaras - Paweł Charzyński || 11Bit Studios ||&#34;&gt;[video] How to optimize your Niagaras - Paweł Charzyński || 11Bit Studios ||&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presentation on optimizing Niagara particle systems in Unreal Engine&lt;/li&gt;
&lt;li&gt;covers structures, material instances, shader, and emitter complexity&lt;/li&gt;
&lt;li&gt;provides practical techniques to reduce GPU and CPU overhead in complex VFX&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-400/niagara_optimization.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=xq5hD4RGcYw&#34; target=&#34;_blank&#34; id=&#34;[video] Once Upon a Pixel: How Crysis Changed Real-Time Lighting Forever&#34;&gt;[video] Once Upon a Pixel: How Crysis Changed Real-Time Lighting Forever&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video presents a discussion of Screen Space Ambient Occlusion technique implementation&lt;/li&gt;
&lt;li&gt;shows how to implement the technique using OpenGL and GLSL&lt;/li&gt;
&lt;li&gt;explains the intermediate steps and required theory along the way&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-400/crysis_lighting.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=OwyMw2C4UfA&#34; target=&#34;_blank&#34; id=&#34;[video] Physically Based Rendering: Putting Pieces Together - Paweł Stolecki || CD Projekt Red ||&#34;&gt;[video] Physically Based Rendering: Putting Pieces Together - Paweł Stolecki || CD Projekt Red ||&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The talk focuses on he foundation and core concepts of physically based shading&lt;/li&gt;
&lt;li&gt;focusing on the interconnection of concepts and making it easy to understand the concepts visually&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-400/pbr_cdpr.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/genai-model-for-global-illumination/&#34; target=&#34;_blank&#34; id=&#34;Generative AI model for Global Illumination effects&#34;&gt;Generative AI model for Global Illumination effects&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a diffusion-based approach for generating reflective caustics&lt;/li&gt;
&lt;li&gt;utilizes a latent-space diffusion model conditioned on geometry, material, and illumination data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-400/genai_gi.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250716083613/https://gpuopen.com/learn/genai-model-for-global-illumination/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=wo84LFzx5nI&#34; target=&#34;_blank&#34; id=&#34;[video] Casey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 2025&#34;&gt;[video] Casey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 2025&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;critical analysis of object-oriented programming paradigms and their impact on software development&lt;/li&gt;
&lt;li&gt;examines historical context and technical drawbacks of OOP that have persisted for a long time&lt;/li&gt;
&lt;li&gt;proposes alternative approaches for practical problem-solving&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-400/casey_oop.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=PgCiQHmZFBE&#34; target=&#34;_blank&#34; id=&#34;[video] Multiple Worlds, One Screen: recreating SplitFiction’s Trick in Unity&#34;&gt;[video] Multiple Worlds, One Screen: recreating SplitFiction’s Trick in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;demonstrates how to implement a portal rendering technique such as found in SplitFiction&lt;/li&gt;
&lt;li&gt;explains Stencil Buffer and how to use it to render multiple portal worlds&lt;/li&gt;
&lt;li&gt;Implementation is shown using Unity&lt;/li&gt;
&lt;li&gt;Portal shapes are implemented using SDF shapes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-400/multiple_worlds.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=xUnXPNFWJUY&#34; target=&#34;_blank&#34; id=&#34;[video] The Future of Analytical Materials in a Neural World &#34;&gt;[video] The Future of Analytical Materials in a Neural World &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a look at how real-life material complexity is approximated in rendering&lt;/li&gt;
&lt;li&gt;discusses the importance of layered material models for the appearance&lt;/li&gt;
&lt;li&gt;examines the evolving relationship between traditional analytical material models and neural rendering approaches&lt;/li&gt;
&lt;li&gt;explores hybrid approaches that combine the predictability of analytical models with the expressiveness of neural networks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-400/analytical_materials.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=g4or1fDadqk&#34; target=&#34;_blank&#34; id=&#34;[video] SSAO, Close Enough since 2007 | A Brief History&#34;&gt;[video] SSAO, Close Enough since 2007 | A Brief History&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses a history of Screen space ambient occlusion&lt;/li&gt;
&lt;li&gt;shows visual examples of the techniques and how they affected the generated results&lt;/li&gt;
&lt;li&gt;covering the developments from Crytek SSAO, over HBAO, GTAO, to VBAO&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-400/ssao_history.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.reedbeta.com&#34; target=&#34;_blank&#34;&gt;Nathan Reed&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 399 - July 13th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-399/</link>
      <pubDate>Sun, 13 Jul 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-399/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.c0de517e.com/023_hpg/hpg2025_keynote_apesce.pdf&#34; target=&#34;_blank&#34; id=&#34;Hallucinations on the future of real-time rendering&#34;&gt;Hallucinations on the future of real-time rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents the argument that rendering industry is shifting from technology-driven growth to content delivery and user-generated content as primary revenue drivers&lt;/li&gt;
&lt;li&gt;discusses the role of machine learning in rendering, noting its effectiveness in post-processing but limited impact on core algorithms due to existing analytical solutions&lt;/li&gt;
&lt;li&gt;predicts future trends toward &amp;ldquo;more real-time, less baking&amp;rdquo; approaches and advances in dynamic data structures for optimal signal representation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-399/real-time-rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250717021958/https://www.c0de517e.com/023_hpg/hpg2025_keynote_apesce.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.makingsoftware.com/chapters/how-a-screen-works&#34; target=&#34;_blank&#34; id=&#34;How does a screen work?&#34;&gt;How does a screen work?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explores the technical foundations of digital display technology&lt;/li&gt;
&lt;li&gt;covers the evolution from electron guns to modern displays&lt;/li&gt;
&lt;li&gt;examines how pixels and color systems work in todays screens&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-399/screen_pixels.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250717002718/https://www.makingsoftware.com/chapters/how-a-screen-works&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/using_matrix_core_amd_rdna4/&#34; target=&#34;_blank&#34; id=&#34;Using the Matrix Cores of AMD RDNA 4 architecture GPUs&#34;&gt;Using the Matrix Cores of AMD RDNA 4 architecture GPUs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how to use Wave Matrix Multiply Accumulate (WMMA) operations on AMD RDNA 4 GPUs&lt;/li&gt;
&lt;li&gt;covers the simplified VGPR layout compared to RDNA 3 and the new intrinsics for 16x16 matrix operations&lt;/li&gt;
&lt;li&gt;provides practical examples including multi-layer perceptron (MLP) implementation using WMMA for neural network inference&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-399/matrix_rdna.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250717022101/https://gpuopen.com/learn/matrix_core_amd_rdna4/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.chromium.org/2025/07/introducing-skia-graphite-chromes.html&#34; target=&#34;_blank&#34; id=&#34;Introducing Skia Graphite: Chrome&amp;#39;s rasterization backend for the future &#34;&gt;Introducing Skia Graphite: Chrome&amp;#39;s rasterization backend for the future &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces the launch of Skia Graphite as Chrome&amp;rsquo;s new rasterization backend&lt;/li&gt;
&lt;li&gt;explains how Graphite improves upon the previous Ganesh backend with better multithreading and depth testing for 2D graphics&lt;/li&gt;
&lt;li&gt;details performance improvements and future development plans&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-399/depth_space.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250710080501/https://blog.chromium.org/2025/07/introducing-skia-graphite-chromes.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.elopezr.com/the-art-of-packing-data/&#34; target=&#34;_blank&#34; id=&#34;The Art Of Packing Data&#34;&gt;The Art Of Packing Data&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comprehensive guide to efficiently packing various data types commonly used in graphics programming&lt;/li&gt;
&lt;li&gt;covers techniques for normalized data, floating point formats, bitfields, and specialized encoding methods for normals and world positions&lt;/li&gt;
&lt;li&gt;provides HLSL code examples and GPU instruction analysis on RDNA hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-399/data-packing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/FwMmB&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2025/07/08/Lossless-Float-Image-Compression/&#34; target=&#34;_blank&#34; id=&#34;Lossless Float Image Compression&#34;&gt;Lossless Float Image Compression&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;compares lossless compression techniques for multi-layer floating point images&lt;/li&gt;
&lt;li&gt;evaluates OpenEXR, JPEG-XL, and a custom approach using mesh optimizer with zstd&lt;/li&gt;
&lt;li&gt;presents that mesh optimizer combined with zstd provides really good performance-to-compression ratio results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-399/flt_img_jxl_target.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250711072415/https://aras-p.info/blog/2025/07/08/Lossless-Float-Image-Compression/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://30fps.net/pages/hyab-kmeans/&#34; target=&#34;_blank&#34; id=&#34;HyAB k-means for color quantization&#34;&gt;HyAB k-means for color quantization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a new approach to color quantization using the HyAB distance formula in CIELAB color space&lt;/li&gt;
&lt;li&gt;compares results against exisitngs methods&lt;/li&gt;
&lt;li&gt;demonstrates how a hybrid distance metric (absolute difference in lightness, Euclidean in chromaticity) improves color fidelity in quantized images&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-399/lab_input_and_result_comparison.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250710065728/https://30fps.net/pages/hyab-kmeans/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shahriyarshahrabi.medium.com/padding-transparent-textures-fir-mips-and-game-engines-c71c085142fe&#34; target=&#34;_blank&#34; id=&#34;Padding Transparent Textures for MIPs and Game Engines&#34;&gt;Padding Transparent Textures for MIPs and Game Engines&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;addresses visual artifacts that occur with transparent textures have unintetional RGB values in transparent areas during mipmapping&lt;/li&gt;
&lt;li&gt;presents a Python tool that pads transparent textures by bleeding opaque pixels outward to fix rendering issues&lt;/li&gt;
&lt;li&gt;explains the difference between premultiplied and straight alpha workflows and their impact on texture processing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-399/texture_padding.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250717022651/https://shahriyarshahrabi.medium.com/padding-transparent-textures-fir-mips-and-game-engines-c71c085142fe&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Ew41YkCfqgw&#34; target=&#34;_blank&#34; id=&#34;[video] Matrices are tensors | Tensor algebra episode 4&#34;&gt;[video] Matrices are tensors | Tensor algebra episode 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video exploring the mathematical relationship between matrices and tensors&lt;/li&gt;
&lt;li&gt;covers tensor algebra concepts that extend beyond traditional matrix operations&lt;/li&gt;
&lt;li&gt;presents mathematical foundations useful for understanding advanced graphics and machine learning algorithms&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-399/tensor_math.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bleuje.com/physarum-explanation/&#34; target=&#34;_blank&#34; id=&#34;Algorithms for making interesting organic simulations&#34;&gt;Algorithms for making interesting organic simulations&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;detailed explanation of physarum-inspired algorithms for creating organic-looking simulations and visual effects&lt;/li&gt;
&lt;li&gt;provides implementation details including GPU shader techniques, interactive experiments, and artistic applications for real-time organic pattern generation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-399/interactive-physarum-v2-10.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250716213544/https://bleuje.com/physarum-explanation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=qWOHe8VQ_44&#34; target=&#34;_blank&#34; id=&#34;[video] I3D 2025 Papers Session 6 - Neural &amp;amp; Splatting&#34;&gt;[video] I3D 2025 Papers Session 6 - Neural &amp;amp; Splatting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video recording of research paper presentations from the Interactive 3D Graphics and Games (I3D) 2025 conference&lt;/li&gt;
&lt;li&gt;features cutting-edge research on neural rendering techniques and Gaussian splatting methods&lt;/li&gt;
&lt;li&gt;showcases the latest developments in neural graphics and real-time rendering technologies&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-399/neural_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=bFwTVgMa4Rw&#34; target=&#34;_blank&#34; id=&#34;[video] I3D 2025 Papers Session 4 - Filtering &amp;amp; Reconstruction&#34;&gt;[video] I3D 2025 Papers Session 4 - Filtering &amp;amp; Reconstruction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;research presentations from I3D 2025 conference focusing on advanced filtering and reconstruction techniques&lt;/li&gt;
&lt;li&gt;covers state-of-the-art methods for image and signal processing in real-time graphics applications&lt;/li&gt;
&lt;li&gt;presents novel approaches to improving quality and performance in interactive 3D rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-399/hdr_photograph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 398 - July 6th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-398/</link>
      <pubDate>Sun, 06 Jul 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-398/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hal.science/hal-05138369&#34; target=&#34;_blank&#34; id=&#34;The Sad State of Hardware Virtual Textures&#34;&gt;The Sad State of Hardware Virtual Textures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Explains the concept and motivation behind virtual textures for efficient GPU memory use&lt;/li&gt;
&lt;li&gt;Compares software and hardware implementations, highlighting current hardware limitations&lt;/li&gt;
&lt;li&gt;benchmarks sampling and tile updating performance between different hardware and driver versions&lt;/li&gt;
&lt;li&gt;shows that Intel&amp;rsquo;s drivers are the only ones with tile update performance that appears viable for real-time applications&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-398/virtual_texturing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250707035040/https://hal.science/hal-05138369&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/abs/2507.02674&#34; target=&#34;_blank&#34; id=&#34;Real-time Image-based Lighting of Glints&#34;&gt;Real-time Image-based Lighting of Glints&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Proposes a real-time method for rendering glints using image-based lighting&lt;/li&gt;
&lt;li&gt;Introduces a fast environment map filtering technique for dynamic materials and lighting&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-398/glint_technique.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250704032937/https://arxiv.org/abs/2507.02674&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=dmdyqzelBIY&#34; target=&#34;_blank&#34; id=&#34;[video] Global Illumination for Poor People | TurboGI Devlog&#34;&gt;[video] Global Illumination for Poor People | TurboGI Devlog&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the developers&amp;rsquo; vlog discusses the implementation process of screen space global illumination&lt;/li&gt;
&lt;li&gt;presents various techniques and stages of the implementation process&lt;/li&gt;
&lt;li&gt;shows performance and quality differences between the various parts of the implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-398/gi_technique.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=AiCP15Q6sm0&#34; target=&#34;_blank&#34; id=&#34;[video] REAC 2025 Introduction to the conference&#34;&gt;[video] REAC 2025 Introduction to the conference&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video introduces the REAC 2025 conference&lt;/li&gt;
&lt;li&gt;discusses the underlying idea and philosophy of the conferences&lt;/li&gt;
&lt;li&gt;provides an overview of the content and presents the schedule&lt;/li&gt;
&lt;li&gt;All videos are available on the channel now&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-398/reac_intro.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=MuvuxHXLzls&#34; target=&#34;_blank&#34; id=&#34;[video] The Magnetic Shadow Effect&#34;&gt;[video] The Magnetic Shadow Effect&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video provides a visual explanation for shadowing terms such as umbra and penumbra&lt;/li&gt;
&lt;li&gt;shows how bokeh and lights for near and far objects interact to create the appearance that light and shadows are attracted by each other&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-398/magnetic_shadow.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=J1OdPrO7GD0&#34; target=&#34;_blank&#34; id=&#34;[video] Intro To Terrain Generation&#34;&gt;[video] Intro To Terrain Generation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video provides a high-level overview of how to implement a terrain generation vertex shader&lt;/li&gt;
&lt;li&gt;discusses how to further develop this basic technique in various aspects&lt;/li&gt;
&lt;li&gt;Additionally, announces a coding jam based on the project&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-398/terrain_generation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=0PlxPCq-DbQ&#34; target=&#34;_blank&#34; id=&#34;[video] REAC 2025 Evolving Global Illumination in Overwatch 2&#34;&gt;[video] REAC 2025 Evolving Global Illumination in Overwatch 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;covers the Overwatch team&amp;rsquo;s journey to modernize their global illumination (GI) solution&lt;/li&gt;
&lt;li&gt;discusses tradeoffs in quality, performance, and workflow for GI in a large-scale game&lt;/li&gt;
&lt;li&gt;Details the transition to a new approach that improves artist workflow while maintaining visual quality&lt;/li&gt;
&lt;li&gt;shares challenges and solutions for supporting a wide range of hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-398/reac_overwatch.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=nWgPtCDXlPc&#34; target=&#34;_blank&#34; id=&#34;[video] REAC 2025 RE ENGINE Meshlet Rendering Pipeline&#34;&gt;[video] REAC 2025 RE ENGINE Meshlet Rendering Pipeline&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains the meshlet rendering pipeline used in Dragon’s Dogma 2 and Monster Hunter Wilds&lt;/li&gt;
&lt;li&gt;addresses challenges of rendering vast, dynamic environments with stable performance&lt;/li&gt;
&lt;li&gt;Details the transition to meshlets across shared engine technology&lt;/li&gt;
&lt;li&gt;compares early and current meshlet implementations and shares optimization results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-398/meshlet_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=pBJMcXI7pMo&#34; target=&#34;_blank&#34; id=&#34;[video] REAC 2025 Geometry rendering and shaders infrastructure in Warhammer 40000: Space Marine 2&#34;&gt;[video] REAC 2025 Geometry rendering and shaders infrastructure in Warhammer 40000: Space Marine 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Details the geometry rendering pipeline and data management in Swarm Engine for Space Marine 2&lt;/li&gt;
&lt;li&gt;addresses challenges of rendering dense architecture, procedural vegetation, and many interactive entities&lt;/li&gt;
&lt;li&gt;Discusses system organization for future optimizations and features&lt;/li&gt;
&lt;li&gt;Explains shader infrastructure and managing the complexity of Uber shader permutations&lt;/li&gt;
&lt;li&gt;shares lessons learned in balancing scalability, performance, and visual complexity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-398/warhammer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=CcYq18bkvyU&#34; target=&#34;_blank&#34; id=&#34;[video] REAC 2025 Anvil Rendering Architecture&#34;&gt;[video] REAC 2025 Anvil Rendering Architecture&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents Anvil&amp;rsquo;s evolution into a centralized engine powering multiple productions from a monorepo&lt;/li&gt;
&lt;li&gt;discusses technical and organizational challenges: modularization, shader complexity, code divergence&lt;/li&gt;
&lt;li&gt;details the rendering architecture as well as the GPU-driven mesh pipeline and frame graph&lt;/li&gt;
&lt;li&gt;covers performance optimization, profiling tools, and data-driven tuning via a centralized platform manager&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-398/anvil_engine.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=BHflToAhEs8&#34; target=&#34;_blank&#34; id=&#34;[video] REAC 2025 Dragon Age: The Veilguard - GI, RT, Character Creator and other systems&#34;&gt;[video] REAC 2025 Dragon Age: The Veilguard - GI, RT, Character Creator and other systems&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents architectural challenges and decisions for GI, ray tracing, and character creator in Dragon Age: The Veilguard&lt;/li&gt;
&lt;li&gt;covers probe baking system, team size, and asset constraints&lt;/li&gt;
&lt;li&gt;discusses ray tracing implementation choices and support for a wide range of GPUs&lt;/li&gt;
&lt;li&gt;details the technical and practical aspects of the character creator tool&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-398/ray_trace.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Peter Kohaut for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 397 - June 29th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-397/</link>
      <pubDate>Sun, 29 Jun 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-397/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://diglib.eg.org/items/93fc78c0-71fa-4511-8564-a7e5268bf27a&#34; target=&#34;_blank&#34; id=&#34;Real-Time GPU Tree Generation&#34;&gt;Real-Time GPU Tree Generation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a work graph-based procedural system for generating and rendering trees entirely on the GPU&lt;/li&gt;
&lt;li&gt;shows how the model used to generate the tree structure&lt;/li&gt;
&lt;li&gt;presents how this is mapped onto the work graph execution logic&lt;/li&gt;
&lt;li&gt;additionally discusses how seasonal effects and wind effects are integrated&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-397/gpu-tree-workgraph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250624192131/https://diglib.eg.org/items/93fc78c0-71fa-4511-8564-a7e5268bf27a&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://diglib.eg.org/items/ff5055b6-be32-414a-8d63-41fdb7296e10&#34; target=&#34;_blank&#34; id=&#34;Real-Time Importance Deep Shadows Maps with Hardware Ray Tracing&#34;&gt;Real-Time Importance Deep Shadows Maps with Hardware Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces Importance Deep Shadow Maps (IDSM), a real-time algorithm for rendering shadows of semi-transparent objects&lt;/li&gt;
&lt;li&gt;adaptively distributes shadow samples based on camera importance&lt;/li&gt;
&lt;li&gt;achieves significant speedups over hardware ray tracing while maintaining visual fidelity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-397/deep-shadows.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250630032036/https://diglib.eg.org/items/ff5055b6-be32-414a-8d63-41fdb7296e10&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://karimsayedre.github.io/RTIOW.html&#34; target=&#34;_blank&#34; id=&#34;CUDA Ray Tracing 2x Faster Than RTX: My CUDA Ray Tracing Journey&#34;&gt;CUDA Ray Tracing 2x Faster Than RTX: My CUDA Ray Tracing Journey&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an article discusses optimizing a CUDA-based ray tracer to outperform Vulkan/RTX implementations on the same hardware&lt;/li&gt;
&lt;li&gt;demonstrates how aggressive inlining, branchless material evaluation, and custom RNGs yield significant speedups&lt;/li&gt;
&lt;li&gt;provides benchmarks and practical advice for optimizing ray tracing performance&lt;/li&gt;
&lt;li&gt;additionally, it presents a discussion of how to interpret the results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-397/spheres-raytracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250626124826/https://karimsayedre.github.io/RTIOW.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rocm.blogs.amd.com/software-tools-optimization/profiling-guide/intro/README.html&#34; target=&#34;_blank&#34; id=&#34;Performance Profiling on AMD GPUs – Part 1: Foundations&#34;&gt;Performance Profiling on AMD GPUs – Part 1: Foundations&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides an introduction to profiling and optimizing applications on AMD GPUs for ROCm workloads&lt;/li&gt;
&lt;li&gt;outlines key tools in the ROCm ecosystem for tracing, counter collection, and kernel analysis&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-397/amd-profiling.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250630032327/https://rocm.blogs.amd.com/software-tools-optimization/profiling-guide/intro/README.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://chipsandcheese.com/p/blackwell-nvidias-massive-gpu&#34; target=&#34;_blank&#34; id=&#34;Blackwell: Nvidia’s Massive GPU&#34;&gt;Blackwell: Nvidia’s Massive GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides an in-depth analysis of Nvidia&amp;rsquo;s Blackwell GPU architecture&lt;/li&gt;
&lt;li&gt;compares Blackwell&amp;rsquo;s design, memory subsystem, and compute performance to AMD&amp;rsquo;s RDNA4&lt;/li&gt;
&lt;li&gt;discusses architectural tradeoffs, cache design, and the implications for high-end GPUs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-397/gpu-cache-hardware.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250629040039/https://chipsandcheese.com/p/blackwell-nvidias-massive-gpu&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://groups.google.com/a/mozilla.org/g/dev-platform/c/21W7YWSvYIM/m/U2gYnGK2BQAJ&#34; target=&#34;_blank&#34; id=&#34;Intent to ship: WebGPU on Windows&#34;&gt;Intent to ship: WebGPU on Windows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces Mozilla&amp;rsquo;s plan to ship WebGPU in Firefox 141 on Windows&lt;/li&gt;
&lt;li&gt;notes that WebGPU is already enabled in Firefox Nightly and will expand to other platforms&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-397/webgpu-firefox.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250630032441/https://groups.google.com/a/mozilla.org/g/dev-platform/c/21W7YWSvYIM/m/U2gYnGK2BQAJ&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shader-slang.org/event/2025/06/04/getting-started-with-slang-reflections-api/&#34; target=&#34;_blank&#34; id=&#34;Getting Started with Slang: Reflections API &#34;&gt;Getting Started with Slang: Reflections API &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;virtual meet-up that will introduce the Slang shader reflection API&lt;/li&gt;
&lt;li&gt;going to highlight common pitfalls and best practices for accessing shader metadata&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-397/slang-logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250622223006/https://shader-slang.org/event/2025/06/04/getting-started-with-slang-reflections-api/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://enginearchitecture.org/2025.htm#2&#34; target=&#34;_blank&#34; id=&#34;[video] RE ENGINE Meshlet Rendering Pipeline&#34;&gt;[video] RE ENGINE Meshlet Rendering Pipeline&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the very detailed presentation discusses the geometry rendering pipeline on the RE ENGINE&lt;/li&gt;
&lt;li&gt;covers meshlet rendering, software rasterization, visibility buffers, shadow rendering, and more&lt;/li&gt;
&lt;li&gt;additionally contains Questions and Answers documents from the audience and developers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-397/2025_Capcom.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250630032914/https://enginearchitecture.org/downloads/REAC_2025_Capcom.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=uEMISP6Z8bk&#34; target=&#34;_blank&#34; id=&#34;[video] The Buffer Offset Alignment Crisis // Vulkan For Beginners #22&#34;&gt;[video] The Buffer Offset Alignment Crisis // Vulkan For Beginners #22&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video discusses the alignment requirements for Buffers in Vulkan&lt;/li&gt;
&lt;li&gt;explains why a validation error message appears and how to resolve it&lt;/li&gt;
&lt;li&gt;shows why the problem happens and how to resolve it in practice&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-397/solving-alignmnet-vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=_9JBBiYItuY&#34; target=&#34;_blank&#34; id=&#34;[video] I3D 2025 Papers Session 3 - Animation &amp;amp; Voxels&#34;&gt;[video] I3D 2025 Papers Session 3 - Animation &amp;amp; Voxels&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video recording of I3D paper presentations&lt;/li&gt;
&lt;li&gt;covering Hierarchical Neural Skinning Deformation with Self-supervised Training for Character Animation, Foveated Animations for Efficient Crowd Simulation&lt;/li&gt;
&lt;li&gt;Aokana: A GPU-Driven Voxel Rendering Framework for Open World Games as well as Transform-Aware Sparse Voxel Directed Acyclic Graphs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-397/svdag.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://x.com/jhfredriksen&#34; target=&#34;_blank&#34;&gt;JanHaraldFredriksen&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 396 - June 22nd, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-396/</link>
      <pubDate>Sun, 22 Jun 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-396/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://damek.github.io/random/basic-facts-about-gpus&#34; target=&#34;_blank&#34; id=&#34;Basic facts about GPUs&#34;&gt;Basic facts about GPUs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides a concise overview of fundamental GPU concepts&lt;/li&gt;
&lt;li&gt;covers topics such as memory hierarchy, compute units, and parallelism&lt;/li&gt;
&lt;li&gt;includes practical notes for developers new to GPU programming&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-396/gpu-facts.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250623035541/https://damek.github.io/random/basic-facts-about-gpus/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://diglib.eg.org/server/api/core/bitstreams/e3553000-9d53-4d13-a5b0-29dc16a116de/content&#34; target=&#34;_blank&#34; id=&#34;No More Shading Languages: Compiling C&amp;#43;&amp;#43; to Vulkan Shaders &#34;&gt;No More Shading Languages: Compiling C&amp;#43;&amp;#43; to Vulkan Shaders &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents the implementation of a C++ to SPIR-V compiler&lt;/li&gt;
&lt;li&gt;discusses limitations of language constructs, how contracts are mapped onto SPIR-V&lt;/li&gt;
&lt;li&gt;shows how raytracing callable shaders can be used to implement function-calling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-396/cpp_to_spirv.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250624052249/https://diglib.eg.org/server/api/core/bitstreams/e3553000-9d53-4d13-a5b0-29dc16a116de/content&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/enhancing-amd-radeon-gpu-detective-output-with-directx-debug-information&#34; target=&#34;_blank&#34; id=&#34;Enhancing AMD Radeon GPU Detective Output with DirectX Debug Information&#34;&gt;Enhancing AMD Radeon GPU Detective Output with DirectX Debug Information&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how to enhance AMD Radeon GPU Detective output with DirectX debug information&lt;/li&gt;
&lt;li&gt;details the process of mapping GPU crash dumps to HLSL source code for easier debugging&lt;/li&gt;
&lt;li&gt;provides step-by-step instructions and practical tips for integrating debug info into the workflow&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-396/RGD_shader_debug_info.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250624052427/https://gpuopen.com/learn/enhancing-amd-radeon-gpu-detective-output-with-directx-debug-information&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://diglib.eg.org/server/api/core/bitstreams/bd94e19b-9866-4477-979a-6db6ddc4dcc5/content&#34; target=&#34;_blank&#34; id=&#34;Real-time rendering of animated meshless representations&#34;&gt;Real-time rendering of animated meshless representations&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper discusses methods to animate meshless representations efficiently&lt;/li&gt;
&lt;li&gt;the paper suggests a coarse tetrahedral mesh surrounding the meshless objects, skinned as usual&lt;/li&gt;
&lt;li&gt;this deformation of the rest pose is then applied to the full volume using interval shading&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-396/meshless_animation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250624052539/https://diglib.eg.org/server/api/core/bitstreams/bd94e19b-9866-4477-979a-6db6ddc4dcc5/content&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ggx-research.github.io/publication/2025/06/16/publication-leb3d.html&#34; target=&#34;_blank&#34; id=&#34;Adaptive Tetrahedral Grids for Volumetric Path-Tracing&#34;&gt;Adaptive Tetrahedral Grids for Volumetric Path-Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces adaptive tetrahedral grids for efficient volumetric path tracing&lt;/li&gt;
&lt;li&gt;explains the grid construction and sampling process&lt;/li&gt;
&lt;li&gt;demonstrates improved performance and quality in volumetric rendering tasks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-396/tetrahedral_grid.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250619210307/https://arxiv.org/pdf/2506.11510&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=HfHC0wNYry8&#34; target=&#34;_blank&#34; id=&#34;[video] SIGGRAPH 2025 Technical Papers Trailer&#34;&gt;[video] SIGGRAPH 2025 Technical Papers Trailer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents a brief overview of various papers that will be presented at SIGGRAPH 2025&lt;/li&gt;
&lt;li&gt;covers a large number of various topics from Gaussian splatting, scene representations, soft body physics, and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-396/siggraph_2025.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://enginearchitecture.org/2025.htm&#34; target=&#34;_blank&#34; id=&#34;REAC - 2025 Conference - Slides&#34;&gt;REAC - 2025 Conference - Slides&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;slides from the 2025 REAC conference have been published&lt;/li&gt;
&lt;li&gt;covers topics such as GI, meshlet rendering, anvil rendering architecture, and more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-396/2025_Capcom.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250624053523/https://enginearchitecture.org/2025.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphicsprogrammingconference.com/participate/&#34; target=&#34;_blank&#34; id=&#34;Graphics Programming Conference - 2025 - Participate&#34;&gt;Graphics Programming Conference - 2025 - Participate&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an invitation to participate in the 2025 Graphics Programming Conference&lt;/li&gt;
&lt;li&gt;outlines submission guidelines and participation opportunities&lt;/li&gt;
&lt;li&gt;encourages community involvement and knowledge sharing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-396/gpc_banner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250619183018/https://graphicsprogrammingconference.com/participate/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://x.com/vivitsum&#34; target=&#34;_blank&#34;&gt;Vivitsu Maharaja&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 395 - June 15th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-395/</link>
      <pubDate>Sun, 15 Jun 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-395/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.selfshadow.com/publications/s2025-shading-course&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2025 Course: Physically Based Shading in Theory and Practice&#34;&gt;SIGGRAPH 2025 Course: Physically Based Shading in Theory and Practice&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces the latest SIGGRAPH course on physically based shading, featuring new research and practical advice from film and game production&lt;/li&gt;
&lt;li&gt;covers topics such as energy-conserving models, spectral rendering, neural materials, and production hair shading&lt;/li&gt;
&lt;li&gt;includes the course timetable and presenter list&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-395/pbr_title.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250519081511/https://blog.selfshadow.com/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/khronos-announces-vulkan-video-decode-vp9-extension&#34; target=&#34;_blank&#34; id=&#34;Khronos Announces Vulkan Video Decode VP9 Extension&#34;&gt;Khronos Announces Vulkan Video Decode VP9 Extension&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces the VK_KHR_video_decode_vp9 extension for Vulkan, enabling hardware-accelerated VP9 video decoding&lt;/li&gt;
&lt;li&gt;explains why VP9 is one of the simpler codecs to implement and recommends it for getting started&lt;/li&gt;
&lt;li&gt;supported by major GPU vendors and open-source drivers, with SDK and sample updates coming soon&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-395/vulkan_video.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250611064510/https://www.khronos.org/blog/khronos-announces-vulkan-video-decode-vp9-extension&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://docs.vulkan.org/features/latest/features/proposals/VK_KHR_unified_image_layouts.html&#34; target=&#34;_blank&#34; id=&#34;VK_KHR_unified_image_layouts&#34;&gt;VK_KHR_unified_image_layouts&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a Vulkan extension that simplifies image layout management by allowing VK_IMAGE_LAYOUT_GENERAL to be used in most cases&lt;/li&gt;
&lt;li&gt;reduces the need for explicit image layout transitions to  simplify synchronization&lt;/li&gt;
&lt;li&gt;discusses how some hardware doesn&amp;rsquo;t distinguish between image layouts, so not using the specific layouts doesn&amp;rsquo;t cause performance issues&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-395/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250617030320/https://docs.vulkan.org/features/latest/features/proposals/VK_KHR_unified_image_layouts.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/HPGPoster2025.html&#34; target=&#34;_blank&#34; id=&#34;Derivatives of Spherical Harmonics&#34;&gt;Derivatives of Spherical Harmonics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents formulas for efficiently computing partial derivatives of any order for spherical harmonics&lt;/li&gt;
&lt;li&gt;shows that intermediate results from the standard evaluation can be reused, reducing the computation cost significantly&lt;/li&gt;
&lt;li&gt;includes links to a poster, supplemental document, and code for practical use&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-395/sh-poster.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250615141008/https://momentsingraphics.de/HPGPoster2025.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2025/06/13/Voronoi-Hashing-and-OSL&#34; target=&#34;_blank&#34; id=&#34;Voronoi, Hashing and OSL&#34;&gt;Voronoi, Hashing and OSL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explores the optimization of Voronoi noise in Blender by switching from an older Jenkins hash to a faster PCG3D hash&lt;/li&gt;
&lt;li&gt;highlights challenges with Open Shading Language (OSL) lacking unsigned integers and bit casts and how these were worked around&lt;/li&gt;
&lt;li&gt;concludes with lessons learned about hash functions, code maintenance, and shading language limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-395/voronoi_blender.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250613104207/https://aras-p.info/blog/2025/06/13/Voronoi-Hashing-and-OSL/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.alexandermejia.com/from-sdr-to-fake-hdr-mario-kart-world-on-switch-2-undermines-modern-display-potential&#34; target=&#34;_blank&#34; id=&#34;From SDR to Fake HDR: Mario Kart World on Switch 2 Undermines Modern Display Potential &#34;&gt;From SDR to Fake HDR: Mario Kart World on Switch 2 Undermines Modern Display Potential &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;analyzes Mario Kart World’s HDR implementation on Switch 2, revealing it uses static tone mapping and SDR color gamut&lt;/li&gt;
&lt;li&gt;details the pitfalls of SDR-first pipelines and how they limit dynamic range and color volume&lt;/li&gt;
&lt;li&gt;offers recommendations for developers to adopt HDR-first workflows and dynamic tone mapping for better results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-395/10knit_histogram.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250613075459/https://www.alexandermejia.com/from-sdr-to-fake-hdr-mario-kart-world-on-switch-2-undermines-modern-display-potential/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.maximeheckel.com/posts/shaping-light-volumetric-lighting-with-post-processing-and-raymarching&#34; target=&#34;_blank&#34; id=&#34;On Shaping Light&#34;&gt;On Shaping Light&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides a comprehensive walkthrough of implementing volumetric lighting using raymarching and post-processing&lt;/li&gt;
&lt;li&gt;covers coordinate system transformations, depth-based stopping, shadow mapping, and shaping light with SDFs&lt;/li&gt;
&lt;li&gt;explores light scattering and multi-light setups with interactive demos and code examples&lt;/li&gt;
&lt;li&gt;discusses practical applications and artistic effects achievable with these techniques in 3D scenes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-395/shadows.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250615072710/https://blog.maximeheckel.com/posts/shaping-light-volumetric-lighting-with-post-processing-and-raymarching/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://osor.io/text&#34; target=&#34;_blank&#34; id=&#34;Rendering Crispy Text On The GPU&#34;&gt;Rendering Crispy Text On The GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents an approach to real-time text rendering on the GPU, focusing on quality and subpixel anti-aliasing&lt;/li&gt;
&lt;li&gt;discusses a system that rasterizes glyph curves directly to an atlas with temporal accumulation&lt;/li&gt;
&lt;li&gt;provides code samples, visual comparisons, and practical advice for high-quality, efficient text rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-395/glyph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250615103416/https://osor.io/text&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=eBHbCZo9QrM&#34; target=&#34;_blank&#34; id=&#34;[video] Aliasing... Or How Sampling Distorts Signals&#34;&gt;[video] Aliasing... Or How Sampling Distorts Signals&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the videos break down what aliasing is and why it happens when sampling signals&lt;/li&gt;
&lt;li&gt;presents how this can lead to distorted or misleading results&lt;/li&gt;
&lt;li&gt;shows a walkthrough with intuitive visualizations and concrete examples to show how high-frequency signals can appear misleading if sampled at a too-low frequency&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-395/sampling_distorts.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=rPp7HZFNXnM&#34; target=&#34;_blank&#34; id=&#34;[video] WWDC25: Unlock GPU computing with WebGPU | Apple&#34;&gt;[video] WWDC25: Unlock GPU computing with WebGPU | Apple&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents an overview of the WebGPU API&lt;/li&gt;
&lt;li&gt;discussing the capabilities of the API, supported platforms, and limitations&lt;/li&gt;
&lt;li&gt;additionally provides guidelines to follow for best performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-395/webgpu_wwdc.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=YS_t3FtnQXw&#34; target=&#34;_blank&#34; id=&#34;[video] Speaking the GPU&amp;#39;s Language | Indirect Rendering&#34;&gt;[video] Speaking the GPU&amp;#39;s Language | Indirect Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents an overview of GPU architecture&lt;/li&gt;
&lt;li&gt;explaining overhead in GPU processing&lt;/li&gt;
&lt;li&gt;how indirect drawing allows more flexibility and enables more workloads to be executed efficiently&lt;/li&gt;
&lt;li&gt;additionally discusses vertex optimizations for efficient rasterization&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-395/indirect_draws.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://miketuritzin.com/&#34; target=&#34;_blank&#34;&gt;Mike Turitzin&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 394 - June 9th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-394/</link>
      <pubDate>Mon, 09 Jun 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-394/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=yj5pYktC3X8&#34; target=&#34;_blank&#34; id=&#34;[video] Rendering Assassin&amp;#39;s Creed Shadows&#34;&gt;[video] Rendering Assassin&amp;#39;s Creed Shadows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;details the rendering techniques used in the latest Assassin&amp;rsquo;s Creed game&lt;/li&gt;
&lt;li&gt;explores the GPU-driven rendering pipeline, micro polygon rasterization, global illumination implementation&lt;/li&gt;
&lt;li&gt;presents how the weather system was implemented in a deferred pipeline fashion&lt;/li&gt;
&lt;li&gt;additionally presents a brief look at how the team manages platform differences and performance tracking&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-394/gdc-ac-shadows.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=PMvIWws8WEo&#34; target=&#34;_blank&#34; id=&#34;[video] Quaternions - Freya Holmer | NGJ2025&#34;&gt;[video] Quaternions - Freya Holmer | NGJ2025&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;talk from Nordic Game Jam 2025 providing an intuitive explanation of quaternion mathematics&lt;/li&gt;
&lt;li&gt;breaks down quaternion concepts using visual examples and practical applications in game development&lt;/li&gt;
&lt;li&gt;demonstrates techniques for visualizing rotations&lt;/li&gt;
&lt;li&gt;additionally presents how rotation order/axis orders vary between different popular game engines&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-394/quaternion-math.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.forwardscattering.org/post/64&#34; target=&#34;_blank&#34; id=&#34;Fast camera space to screen space direction transform&#34;&gt;Fast camera space to screen space direction transform&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a mathematical derivation for efficiently transforming direction vectors from camera space to screen space&lt;/li&gt;
&lt;li&gt;reduces computation from 32 multiplies, 24 additions/subtractions, and four divides to just six multiplies and two subtractions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-394/camera-space.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250601171222/https://www.forwardscattering.org/post/64&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=yyJ-hdISgnw&#34; target=&#34;_blank&#34; id=&#34;[video] Coding Adventure: Software Rasterizer&#34;&gt;[video] Coding Adventure: Software Rasterizer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;walks through the implementation of a CPU-based software rasterizer&lt;/li&gt;
&lt;li&gt;covers techniques for triangle rasterization, projections, depth buffering, basic lighting&lt;/li&gt;
&lt;li&gt;explains the underlying theory with visual explanations before presenting the implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-394/cpu-raster.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2025/05/20/bvh-quality-beyond-sbvh&#34; target=&#34;_blank&#34; id=&#34;BVH Quality: Beyond SBVH&#34;&gt;BVH Quality: Beyond SBVH&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;investigates techniques to improve Bounding Volume Hierarchy (BVH) quality&lt;/li&gt;
&lt;li&gt;challenges common assumptions about binned vs. full-sweep SAH building and demonstrates that bin count significantly impacts performance&lt;/li&gt;
&lt;li&gt;introduces Representative Ray Sets (RRS) for BVH quality assessment and optimization, showing that significant performance improvements ( &amp;gt;50% ) are possible&lt;/li&gt;
&lt;li&gt;opening the discussion that offline builds of optimized static geometry BVHs might be worthwhile to explore&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-394/bunny.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250603201932/https://jacco.ompf2.com/2025/05/20/bvh-quality-beyond-sbvh/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2025/05/27/async-compute-all-the-things/&#34; target=&#34;_blank&#34; id=&#34;Async compute all the things&#34;&gt;Async compute all the things&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explores asynchronous compute techniques to improve GPU utilization by executing compute and graphics workloads in parallel&lt;/li&gt;
&lt;li&gt;explains the implementation details of scheduling work on separate command queues and synchronizing between them using fences&lt;/li&gt;
&lt;li&gt;provides practical examples of work pairing that benefits from async compute and how to measure performance gains&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-394/async-compute-d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250528143224/https://interplayoflight.wordpress.com/2025/05/27/async-compute-all-the-things/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/ser/&#34; target=&#34;_blank&#34; id=&#34;D3D12 Shader Execution Reordering&#34;&gt;D3D12 Shader Execution Reordering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces Shader Execution Reordering feature for Shader Model 6.9&lt;/li&gt;
&lt;li&gt;explains how SER allows application developers to provide hints that will enable drivers to optimize execution patterns for DXR workloads&lt;/li&gt;
&lt;li&gt;provides example code that presents the feature in shader code and how to use it from the D3D12 API&lt;/li&gt;
&lt;li&gt;additionally discusses the state of driver support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-394/HelloSERScreenshot.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250602122951/https://devblogs.microsoft.com/directx/ser/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/omm/&#34; target=&#34;_blank&#34; id=&#34;D3D12 Opacity Micromaps&#34;&gt;D3D12 Opacity Micromaps&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces Opacity Micromaps (OMMs) for DirectX 12 ray tracing to accelerate alpha-tested geometry&lt;/li&gt;
&lt;li&gt;details how OMMs encode alpha mask information at different resolutions to skip unnecessary ray-triangle tests&lt;/li&gt;
&lt;li&gt;provides implementation explanations, first example implementations, and performance data for foliage scenes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-394/PIXOMMs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250602122546/https://devblogs.microsoft.com/directx/omm/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/cooperative-vector/&#34; target=&#34;_blank&#34; id=&#34;D3D12 Cooperative Vector&#34;&gt;D3D12 Cooperative Vector&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents DirectX 12&amp;rsquo;s new cooperative vector instructions&lt;/li&gt;
&lt;li&gt;discusses how these instructions allow developers to take advantage of additional hardware features (such as Nvidia Tensor Cores)&lt;/li&gt;
&lt;li&gt;shows how to check for the availability of support and how the API allows developers to encode the data into the hardware-required formats&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-394/trex-and-textures.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250603160736/https://devblogs.microsoft.com/directx/cooperative-vector/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ms010Fz02wo&#34; target=&#34;_blank&#34; id=&#34;[video] Cloth Animation Using The Compute Shader&#34;&gt;[video] Cloth Animation Using The Compute Shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial implements a physics-based cloth simulation on the GPU using compute shaders&lt;/li&gt;
&lt;li&gt;discusses how to structure the mesh for connectivity as well as how to handle constraints solving to simulate springs&lt;/li&gt;
&lt;li&gt;covers both the theory as well as the implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-394/opengl-cloth.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://saschawillems.de/blog/2025/06/03/shaders-for-vulkan-samples-now-also-available-in-slang&#34; target=&#34;_blank&#34; id=&#34;Shaders for Vulkan samples now also available in slang&#34;&gt;Shaders for Vulkan samples now also available in slang&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces the addition of Slang shader language support for the Vulkan samples repository&lt;/li&gt;
&lt;li&gt;discusses the experience of using Slang for shader development&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-394/slang.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250604092126/https://saschawillems.de/blog/2025/06/03/shaders-for-vulkan-samples-now-also-available-in-slang/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/robert-wallis&#34; target=&#34;_blank&#34;&gt;Robert Wallis&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 393 - May 25th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-393/</link>
      <pubDate>Sun, 25 May 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-393/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=oGAzYih8I3Q&#34; target=&#34;_blank&#34; id=&#34;[video] Getting Started with Slang: Draw Your First Splat &#34;&gt;[video] Getting Started with Slang: Draw Your First Splat &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introductory video tutorial on using Slang shader language to render a basic Gaussian splat&lt;/li&gt;
&lt;li&gt;provides a beginner-friendly walkthrough from setup, to convering the Slang language essential and application iintegration&lt;/li&gt;
&lt;li&gt;takes these concepts to explain how to render a basic Gaussian splat training process from python&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-393/slang-splatter.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=m1RHLavNjKo&#34; target=&#34;_blank&#34; id=&#34;[video] Dynamic Rendering // Vulkan For Beginners #21&#34;&gt;[video] Dynamic Rendering // Vulkan For Beginners #21&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tutorial on Vulkan&amp;rsquo;s dynamic rendering feature that simplifies rendering without framebuffers&lt;/li&gt;
&lt;li&gt;explains how to transition from traditional render passes to the more streamlined dynamic rendering approach&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-393/vulkan-dynamic-rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://logdahl.net/p/gpu-driven&#34; target=&#34;_blank&#34; id=&#34;logdahl.net / 27&amp;#39;000 dragons and 10&amp;#39;000 lights: GPU-Driven Clustered Forward Renderer&#34;&gt;logdahl.net / 27&amp;#39;000 dragons and 10&amp;#39;000 lights: GPU-Driven Clustered Forward Renderer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;demonstrates the implementation of a GPU driven renderer&lt;/li&gt;
&lt;li&gt;explains GPU-based culling, draw call generation using indirect drawing as well as buffer compaction&lt;/li&gt;
&lt;li&gt;details implementation of clustered forward shading with optimized light assignment using subgroup operations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-393/gpu-driven.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250526025951/https://logdahl.net/p/gpu-driven&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dcgi.fel.cvut.cz/projects/sobb/&#34; target=&#34;_blank&#34; id=&#34;SOBB: Skewed Oriented Bounding Boxes for Ray Tracing &#34;&gt;SOBB: Skewed Oriented Bounding Boxes for Ray Tracing &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces Skewed Oriented Bounding Boxes (SOBB) for ray tracing acceleration&lt;/li&gt;
&lt;li&gt;presents an efficient algorithm for transforming standard AABB BVHs into SOBB representations&lt;/li&gt;
&lt;li&gt;demonstrates performance improvements of 1.0-11.0x over AABB BVH and 1.1x over OBB BVH for secondary rays, with similar memory requirements to AABBs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-393/sobb.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250526032007/https://dcgi.fel.cvut.cz/projects/sobb/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lisyarus.github.io/blog/posts/particle-life-simulation-in-browser-using-webgpu.html&#34; target=&#34;_blank&#34; id=&#34;Particle Life simulation in browser using WebGPU&#34;&gt;Particle Life simulation in browser using WebGPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;implements a WebGPU-based particle simulation that creates emergent life-like behaviors through asymmetric attraction/repulsion forces&lt;/li&gt;
&lt;li&gt;describes optimization techniques like spatial binning and parallel prefix sum for computing inter-particle forces efficiently&lt;/li&gt;
&lt;li&gt;discusses rendering approaches with anti-aliasing for both large and sub-pixel particles with glow effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-393/game-of-life-11.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250519180809/https://lisyarus.github.io/blog/posts/particle-life-simulation-in-browser-using-webgpu.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hexaquo.at/pages/grass-rendering-series-part-3-animating-and-interacting-with-grass-in-godot/&#34; target=&#34;_blank&#34; id=&#34;Grass Rendering Series Part 3: Animating and Interacting With Grass in Godot&#34;&gt;Grass Rendering Series Part 3: Animating and Interacting With Grass in Godot&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains techniques for animating grass through wind effects by simulating gusts using noise textures&lt;/li&gt;
&lt;li&gt;details how to implement player interaction with grass, making it bend away from objects and characters&lt;/li&gt;
&lt;li&gt;also covers an approach for cutting grass dynamically&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-393/grass-godot.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250526025440/https://hexaquo.at/pages/grass-rendering-series-part-3-animating-and-interacting-with-grass-in-godot/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=BXchEwicY24&#34; target=&#34;_blank&#34; id=&#34;[video] Colored Pencil Rendering - Custom Lighting Models - Episode 18&#34;&gt;[video] Colored Pencil Rendering - Custom Lighting Models - Episode 18&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;continues the custom lighting model series with techniques to simulate colored pencil art style&lt;/li&gt;
&lt;li&gt;presents shader methods for recreating the grainy texture and stroke patterns of traditional colored pencil drawings&lt;/li&gt;
&lt;li&gt;demonstrates implementation in both Unity and Unreal Engine using the visual shading language&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-393/pencil-rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://x.com/JasperBekkers/&#34; target=&#34;_blank&#34;&gt;Jasper Bekkers&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 392 - May 18th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-392/</link>
      <pubDate>Sun, 18 May 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-392/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jcgt.org/published/0014/01/09/&#34; target=&#34;_blank&#34; id=&#34;A Zero-Level Set Preserving Technique for Signed Distance Function Computation from an Implicit Surface&#34;&gt;A Zero-Level Set Preserving Technique for Signed Distance Function Computation from an Implicit Surface&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a technique for computing signed distance functions (SDFs) from implicit surfaces&lt;/li&gt;
&lt;li&gt;ensures the shape of the surface is maintained during the conversion&lt;/li&gt;
&lt;li&gt;the proposed solution uses neural networks to minimize loss functions characterizing the SDF&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-392/sdf_zero_set.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250516170442/https://www.jcgt.org/published/0014/01/09/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.realtimerendering.com/blog/jcgt-is-moving-along/&#34; target=&#34;_blank&#34; id=&#34;JCGT is moving along&#34;&gt;JCGT is moving along&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Eric Haines shares updates on the Journal of Computer Graphics Techniques (JCGT)&lt;/li&gt;
&lt;li&gt;presents the updates behind the scenes that allowed nine papers to be published so far this year&lt;/li&gt;
&lt;li&gt;maintains &amp;ldquo;Diamond Open Access&amp;rdquo; with authors retaining copyright under Creative Commons licensing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-392/level_set.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250518044020/https://www.realtimerendering.com/blog/jcgt-is-moving-along/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/path-tracing-optimizations-in-indiana-jones-opacity-micromaps-and-compaction-of-dynamic-blass/&#34; target=&#34;_blank&#34; id=&#34;Path Tracing Optimizations in Indiana Jones™: Opacity MicroMaps and Compaction of Dynamic BLASs&#34;&gt;Path Tracing Optimizations in Indiana Jones™: Opacity MicroMaps and Compaction of Dynamic BLASs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;details GPU optimizations that improved path tracing performance in Indiana Jones&lt;/li&gt;
&lt;li&gt;presents how Opacity MicroMaps (OMMs) reduced overhead for alpha tested geometry and which issues they ran into during the integration&lt;/li&gt;
&lt;li&gt;additionally mentions that compaction of Bottom-Level Acceleration Structures (BLASs) halved the memory consumption for vegetation meshes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-392/profiled-scene-full-ray-tracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250515192205/https://developer.nvidia.com/blog/path-tracing-optimizations-in-indiana-jones-opacity-micromaps-and-compaction-of-dynamic-blass/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://filmicworlds.com/blog/temporal-super-resolution-via-multisampling&#34; target=&#34;_blank&#34; id=&#34;Temporal Super Resolution via Multisampling&#34;&gt;Temporal Super Resolution via Multisampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;builds upon upsampling via multisampling by adding a temporal component&lt;/li&gt;
&lt;li&gt;renders a 4x MSAA image at 1080p and upsamples to 4K using a 4-frame jitter pattern&lt;/li&gt;
&lt;li&gt;presents a detailed look at the sample distribution, implementation and discusses quality and limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-392/msaa_upsample.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250515095125/http://filmicworlds.com/blog/temporal-super-resolution-via-multisampling/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.tobias-franke.eu/publications/tsopouridis25tnoit/index.html&#34; target=&#34;_blank&#34; id=&#34;Traditional and Neural Order-Independent Transparency&#34;&gt;Traditional and Neural Order-Independent Transparency&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Eurographics 2025 tutorial on Order-Independent Transparency (OIT) techniques&lt;/li&gt;
&lt;li&gt;covers traditional approaches (exact, approximate, and hybrid) and deep learning-based methods&lt;/li&gt;
&lt;li&gt;compares performance, accuracy, and practical applications for rendering transparent objects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-392/heapmap.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250517121314/https://www.tobias-franke.eu/publications/tsopouridis25tnoit/index.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://30fps.net/pages/palette-lighting-tricks-n64&#34; target=&#34;_blank&#34; id=&#34;Palette lighting tricks on the Nintendo 64&#34;&gt;Palette lighting tricks on the Nintendo 64&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;describes a technique that applies lighting to color palettes instead of individual texels&lt;/li&gt;
&lt;li&gt;enables normal mapping and directional lighting effects on limited N64 hardware&lt;/li&gt;
&lt;li&gt;shows techniques to hide inherent limitations with the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-392/hdri_plot.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250517165535/https://30fps.net/pages/palette-lighting-tricks-n64/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://kyndinfo.notion.site/Drawing-Landscape-1d0019e814cf807f984ef8012fba591b&#34; target=&#34;_blank&#34; id=&#34;Drawing Landscape&#34;&gt;Drawing Landscape&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a walkthrough on how to render a 3D terrain using SDFs&lt;/li&gt;
&lt;li&gt;discusses how to generate the terrain, apply texturing and shading&lt;/li&gt;
&lt;li&gt;interactive source code examples are provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-392/sdf_terrain.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250519163556/https://kyndinfo.notion.site/Drawing-Landscape-1d0019e814cf807f984ef8012fba591b&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=9wCgKj4Tk8A&#34; target=&#34;_blank&#34; id=&#34;[video] Measuring Custom Lighting Performance - Custom Lighting Models - Episode 17&#34;&gt;[video] Measuring Custom Lighting Performance - Custom Lighting Models - Episode 17&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video covering how to setup a test to measure the performance of lighting models&lt;/li&gt;
&lt;li&gt;presents how different features of the shading model affect the performance&lt;/li&gt;
&lt;li&gt;shows the visual results of the different combinations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-392/custom_lighting_model.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.intel.com/t5/Blogs/Tech-Innovation/Client/Neural-Image-Reconstruction-for-Real-Time-Path-Tracing/post/1688192&#34; target=&#34;_blank&#34; id=&#34;Neural Image Reconstruction for Real-Time Path Tracing&#34;&gt;Neural Image Reconstruction for Real-Time Path Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a walkthrough of research building a unified neural denoising and supersampling technique&lt;/li&gt;
&lt;li&gt;shows the development steps, integration into existing rendering pipelines and results in various test scenes&lt;/li&gt;
&lt;li&gt;discusses challenges in preserving texture details, reducing flickering, and handling disocclusions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-392/neural_image_reconstruction.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wbrbr.org/publications/LipschitzPruning/&#34; target=&#34;_blank&#34; id=&#34;Lipschitz Pruning: Hierarchical Simplification of Primitive-Based SDFs&#34;&gt;Lipschitz Pruning: Hierarchical Simplification of Primitive-Based SDFs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces an efficient method for simplifying tree-based analytical Signed Distance Fields (SDFs)&lt;/li&gt;
&lt;li&gt;leverages the Lipschitz property to create simplified equivalents for specific regions of space&lt;/li&gt;
&lt;li&gt;proposes a new technique for sphere tracing of complex SDFs composed of thousands of animated primitives&lt;/li&gt;
&lt;li&gt;the included video visualizes the technique and shows results on various test cases&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-392/pruning_teaser.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250514131045/https://wbrbr.org/publications/LipschitzPruning/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 391 - May 11th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-391/</link>
      <pubDate>Sun, 11 May 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-391/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0014/01/08&#34; target=&#34;_blank&#34; id=&#34;Importance-Sampled Filter-Adapted Spatio-Temporal Sampling&#34;&gt;Importance-Sampled Filter-Adapted Spatio-Temporal Sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;JCGT paper presenting a technique for generating optimized samples with good spectral properties&lt;/li&gt;
&lt;li&gt;presents the improved results for depth of field with complex bokeh shapes&lt;/li&gt;
&lt;li&gt;shows how to calculate the samples and the effect on quality and performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-391/spectral_noise.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250512053159/https://jcgt.org/published/0014/01/08/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://samwho.dev/reservoir-sampling/&#34; target=&#34;_blank&#34; id=&#34;Reservoir Sampling&#34;&gt;Reservoir Sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Clear explanation of reservoir sampling for selecting k random samples from data streams of unknown size&lt;/li&gt;
&lt;li&gt;Uses interactive visualizations to demonstrate the algorithms and its behaviour&lt;/li&gt;
&lt;li&gt;Additionally presents how the technique can be applied to a log processing service&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-391/reservoir_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250510175915/https://samwho.dev/reservoir-sampling/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pema.dev/2025/05/09/mipmaps-too-much-detail/&#34; target=&#34;_blank&#34; id=&#34;Mipmap selection in too much detail&#34;&gt;Mipmap selection in too much detail&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Comprehensive exploration of how GPUs select appropriate mipmap levels when sampling textures&lt;/li&gt;
&lt;li&gt;Discusses linear filtering, anisotropic filtering, trilinear filtering, and mathematical foundations with visual comparisons&lt;/li&gt;
&lt;li&gt;Many visual examples to visualize the equations discussed&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-391/TrilinearFilteringVsAniso.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250511170812/https://pema.dev/2025/05/09/mipmaps-too-much-detail/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://liu.diva-portal.org/smash/record.jsf?pid=diva2%3A1954979&#34; target=&#34;_blank&#34; id=&#34;Noise is Beautiful: Part 1: Procedural textures&#34;&gt;Noise is Beautiful: Part 1: Procedural textures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;open access book focusing on the foundations and applications of procedural noise for texture generation&lt;/li&gt;
&lt;li&gt;Focuses on theory and implementation of algorithms that enable procedural texturing workflows&lt;/li&gt;
&lt;li&gt;Demonstrates how basic primitives can be combined to create natural-looking textures for various applications&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-391/noise_for_procedural_textures.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250512053337/https://liu.diva-portal.org/smash/record.jsf?pid=diva2%3A1954979&amp;amp;dswid=5325&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mishok43.github.io/nirc/&#34; target=&#34;_blank&#34; id=&#34;Neural Two-Level Monte Carlo Real-Time Rendering&#34;&gt;Neural Two-Level Monte Carlo Real-Time Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The paper introduces a two-Level monte carlo estimator for global illumination(GI)&lt;/li&gt;
&lt;li&gt;Discusses the Neural Incident Radiance Cache (NIRC) that uses a small neural network that is trained on-the-fly to learn incoming light from all directions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-391/neural_two_level.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250512051620/https://mishok43.github.io/nirc/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://agraphicsguynotes.com/posts/understanding_the_math_behind_restir_gi&#34; target=&#34;_blank&#34; id=&#34;Understanding The Math Behind ReSTIR GI&#34;&gt;Understanding The Math Behind ReSTIR GI&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Technical deep-dive explaining the mathematical foundations of ReSTIR GI for efficient real-time path tracing&lt;/li&gt;
&lt;li&gt;Includes code snippets, visualizations, and mathematical derivations making the concepts more approachable&lt;/li&gt;
&lt;li&gt;additionally clarifies the limitations of the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-391/restirgi.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250512053413/https://agraphicsguynotes.com/posts/understanding_the_math_behind_restir_gi/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphics.cs.utah.edu/research/projects/restir-shadow-maps/&#34; target=&#34;_blank&#34; id=&#34;ReSTIR-Sampled Shadow Maps&#34;&gt;ReSTIR-Sampled Shadow Maps&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The paper combines ReSTIR (Reservoir-based Spatio-Temporal Importance Resampling) with shadow mapping for complex lighting&lt;/li&gt;
&lt;li&gt;the selection strategy generates shadow maps for lights with the strongest contributions to pixels in the current camera view&lt;/li&gt;
&lt;li&gt;and falls back to imperfect shadow maps to provide low-resolution shadow approximations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-391/restir-sampled-shadows.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250512054129/https://graphics.cs.utah.edu/research/projects/restir-shadow-maps/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/using_neural_networks_for_geometric_representation/&#34; target=&#34;_blank&#34; id=&#34;Using Neural Networks for Geometric Representation&#34;&gt;Using Neural Networks for Geometric Representation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article explores neural representations for 3D geometry&lt;/li&gt;
&lt;li&gt;Discusses the Neural Intersection Function that allows BVH traversal to operate as part of the raytracing pipeline&lt;/li&gt;
&lt;li&gt;Discusses the limitations and how Locally-Subdivided Neural Intersection Function can overcome these&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-391/using_neural_networks_for_geometric_representation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250512052727/https://gpuopen.com/learn/using_neural_networks_for_geometric_representation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://baptiste-genest.github.io/papers/implicit_uvs.pdf&#34; target=&#34;_blank&#34; id=&#34;Implicit UVs: Real-time semi-global parameterization of implicit surfaces&#34;&gt;Implicit UVs: Real-time semi-global parameterization of implicit surfaces&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The paper presents a technique for creating UV mappings directly on implicit surfaces without traditional mesh parameterization&lt;/li&gt;
&lt;li&gt;Uses local-uv fields that are smoothly blended to enable continuous parameterizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-391/implicit_uv.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250512051809/https://baptiste-genest.github.io/papers/implicit_uvs.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2025/05/05/meshlets-and-mesh-shaders/&#34; target=&#34;_blank&#34; id=&#34;Meshlets and Mesh Shaders&#34;&gt;Meshlets and Mesh Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;exploration of mesh shader implementation and performance benefits in modern graphics pipelines&lt;/li&gt;
&lt;li&gt;Provides benchmarks with different meshlet/thread group configurations and code examples for amplification and mesh shaders&lt;/li&gt;
&lt;li&gt;uses nvidia hardware counters to present the results of the various experiments&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-391/meshlet_culling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250505172716/https://interplayoflight.wordpress.com/2025/05/05/meshlets-and-mesh-shaders/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/boosting_gpu_radix_sort/&#34; target=&#34;_blank&#34; id=&#34;Boosting GPU Radix Sort performance: A memory-efficient extension to Onesweep with circular buffers&#34;&gt;Boosting GPU Radix Sort performance: A memory-efficient extension to Onesweep with circular buffers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post discusses GPU radix sort techniques&lt;/li&gt;
&lt;li&gt;Starting with a classical radix sort implementation and an overview of the improved onesweep implementation&lt;/li&gt;
&lt;li&gt;Explains how this technique can be extended to work within a fixed memory footprint through the use of a ring buffer for look-back storage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-391/gpu_radix_sort.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250507164003/https://gpuopen.com/learn/boosting_gpu_radix_sort/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://themaister.net/blog/2025/05/09/conquering-fidelityfx-fsr4-enabling-the-pretty-pixels-on-linux-through-maniacal-persistence&#34; target=&#34;_blank&#34; id=&#34;Conquering FidelityFX FSR4 – Enabling the pretty pixels on Linux through maniacal persistence&#34;&gt;Conquering FidelityFX FSR4 – Enabling the pretty pixels on Linux through maniacal persistence&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Blog post describes the journey implementing AMD&amp;rsquo;s FidelityFX Super Resolution 4 (FSR4) on Linux&lt;/li&gt;
&lt;li&gt;Presents how DXIL expresses instruction extensions&lt;/li&gt;
&lt;li&gt;Discusses steps required to support 8-bit float and wave matrix multiply accumulate(WMMA) required for the compute shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-391/broken-ssbo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250509141741/https://themaister.net/blog/2025/05/09/conquering-fidelityfx-fsr4-enabling-the-pretty-pixels-on-linux-through-maniacal-persistence/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/turanszkij/mini_video&#34; target=&#34;_blank&#34; id=&#34;Minimal GPU video decoding sample for Vulkan and DX12&#34;&gt;Minimal GPU video decoding sample for Vulkan and DX12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;GitHub repository with minimal implementation examples for hardware-accelerated video decoding with Vulkan and DX12 for H264 videos&lt;/li&gt;
&lt;li&gt;Shows how to decode video streams directly on the GPU&lt;/li&gt;
&lt;li&gt;Demonstrates interfacing with platform-specific video APIs and synchronizing between decoder and graphics pipeline&lt;/li&gt;
&lt;li&gt;source code contains many comments to explain the pitfalls and undocumented behaviours&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-391/mini_vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250512053923/https://github.com/turanszkij/mini_video?tab=readme-ov-file&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gdcvault.com/play/1035526/Rendering-Assassin-s-Creed-Shadows&#34; target=&#34;_blank&#34; id=&#34;Assassin&amp;#39;s Creed Shadows&#34;&gt;Assassin&amp;#39;s Creed Shadows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;GDC presentation from Ubisoft&amp;rsquo;s rendering team on advanced graphics techniques in Assassin&amp;rsquo;s Creed Shadows&lt;/li&gt;
&lt;li&gt;Discusses the GPU accessible scene representation (database), GPU driven rendering pipeline and new micropolygon rasterization&lt;/li&gt;
&lt;li&gt;Overview of the GI implementation, raytracing abstraction and deep-dive into the implementation&lt;/li&gt;
&lt;li&gt;Lastly discusses the deferred weather system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-391/ac_shadow_world.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250511164013/https://gdcvault.com/play/1035526/Rendering-Assassin-s-Creed-Shadows&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.wihlidal.com&#34; target=&#34;_blank&#34;&gt;Graham Wihlidal&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 390 - May 4th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-390/</link>
      <pubDate>Sun, 04 May 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-390/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://c0de517e.com/021_taxonomy.htm&#34; target=&#34;_blank&#34; id=&#34;A Taxonomy for Rendering Engines.&#34;&gt;A Taxonomy for Rendering Engines.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a classification system for rendering engines based on their architectural approaches&lt;/li&gt;
&lt;li&gt;focuses on the importance of context to discuss decisions and tradeoffs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-390/engine_taxonomy.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250506044521/https://c0de517e.com/021_taxonomy.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://antaripasaha.notion.site/Derivation-and-Intuition-behind-Poisson-distribution-1255314a56398062bf9dd9049fb1c396&#34; target=&#34;_blank&#34; id=&#34;Derivation and Intuition behind Poisson distribution&#34;&gt;Derivation and Intuition behind Poisson distribution&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;article explaining the foundation of the Poisson distribution&lt;/li&gt;
&lt;li&gt;develops an intuitive way to help understanding first and then derives the mathematical model from this&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-390/poisson_distribution.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250503063804/https://antaripasaha.notion.site/Derivation-and-Intuition-behind-Poisson-distribution-1255314a56398062bf9dd9049fb1c396&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=8A4ZAIkJTAU&#34; target=&#34;_blank&#34; id=&#34;[video] Sobol&amp;#39; Sequences with Guaranteed-Quality 2D Projections, supplementary video&#34;&gt;[video] Sobol&amp;#39; Sequences with Guaranteed-Quality 2D Projections, supplementary video&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;supplementary video for a research paper on improving Sobol&amp;rsquo; sequence quality&lt;/li&gt;
&lt;li&gt;visualizes the differences between traditional Sobol&amp;rsquo; sequences and ones with guaranteed quality 2D projections&lt;/li&gt;
&lt;li&gt;explains the process how to generated improved sequences&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-390/sobol_sequence.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/aras-p/test-fbx-parsers&#34; target=&#34;_blank&#34; id=&#34;testing FBX&#34;&gt;testing FBX&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;benchmark comparing FBX file format parsing libraries: ufbx, Autodesk FBX SDK, AssImp, and OpenFBX&lt;/li&gt;
&lt;li&gt;identifies significant performance issues with the official Autodesk FBX SDK, and shows that ufbx is a lot faster&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-390/fbx_header.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250506044205/https://github.com/aras-p/test-fbx-parsers&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1785_d3d12info_app_and_online_gpu_database&#34; target=&#34;_blank&#34; id=&#34;D3d12info app and online GPU database&#34;&gt;D3d12info app and online GPU database&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduces a new website displaying D3D12 GPU feature support information across different hardware and drivers&lt;/li&gt;
&lt;li&gt;allows easy identification of supported DirectX 12 features on specific hardware configurations&lt;/li&gt;
&lt;li&gt;asks developers to submit information to make more data available to the community&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-390/D3d12infoDB_feature_table.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250506044506/https://asawicki.info/news_1785_d3d12info_app_and_online_gpu_database&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zeux.io/2025/05/03/load-store-conflicts&#34; target=&#34;_blank&#34; id=&#34;Load-store conflicts&#34;&gt;Load-store conflicts&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;detailed technical article examining performance issues in the index decoder&lt;/li&gt;
&lt;li&gt;explores CPU microarchitecture issues related to store-to-load forwarding that occur in specific compiler-generated code patterns&lt;/li&gt;
&lt;li&gt;explains how seemingly innocuous code changes by compilers can create serious performance bottlenecks in high-performance code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-390/fifo_pattern.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250505075705/https://zeux.io/2025/05/03/load-store-conflicts/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/pixelflinger/lanczos-2d&#34; target=&#34;_blank&#34; id=&#34;Correct application of the Lanczos filter in 2D&#34;&gt;Correct application of the Lanczos filter in 2D&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;comprehensive technical resource clarifying common misconceptions about 2D Lanczos filtering&lt;/li&gt;
&lt;li&gt;proves that the correct 2D application of Lanczos is separable and not a radial basis function&lt;/li&gt;
&lt;li&gt;addresses practical implementation issues like &amp;ldquo;deringing&amp;rdquo;&lt;/li&gt;
&lt;li&gt;particularly useful for temporal anti-aliasing and upscaling applications like those in FSR and SGSR&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-390/pixel_filter.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250502095638/https://github.com/pixelflinger/lanczos-2d&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lalber.org/2025/04/markov-chain-path-guiding&#34; target=&#34;_blank&#34; id=&#34;Real-Time Markov Chain Path Guiding for Global Illumination and Single Scattering&#34;&gt;Real-Time Markov Chain Path Guiding for Global Illumination and Single Scattering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;research paper presenting a novel lightweight path guiding algorithm for real-time applications&lt;/li&gt;
&lt;li&gt;uses a von Mises-Fisher mixture model controlled by a Markov chain process to represent light distribution&lt;/li&gt;
&lt;li&gt;demonstrates effective guiding for both global illumination and single scattering in participating media, with demos in a Quake path tracer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-390/MCPG-Teaser-2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250502065017/https://www.lalber.org/2025/04/markov-chain-path-guiding/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=roICyZoMimw&#34; target=&#34;_blank&#34; id=&#34;[video] Mastering Reflection &amp;amp; Refraction In OpenGL&#34;&gt;[video] Mastering Reflection &amp;amp; Refraction In OpenGL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video tutorial on implementing reflection and refraction effects in OpenGL&lt;/li&gt;
&lt;li&gt;covers environment mapping, Fresnel effects&lt;/li&gt;
&lt;li&gt;explains both the theoretical foundations and practical shader implementations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-390/duck_reflection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=EwpFdMJlVP4&#34; target=&#34;_blank&#34; id=&#34;[video] PS1 Graphics Deep Dive: Implementing Silent Hill Fog In My Real PS1 Game&#34;&gt;[video] PS1 Graphics Deep Dive: Implementing Silent Hill Fog In My Real PS1 Game&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;detailed technical analysis and implementation of the iconic fog effect from Silent Hill on original PlayStation hardware&lt;/li&gt;
&lt;li&gt;explains the technical constraints and creative workarounds used in the original game&lt;/li&gt;
&lt;li&gt;detailed discussion how to the effect is implemented on PS1 hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-390/clut_fog.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=7ksZ_bnLzck&#34; target=&#34;_blank&#34; id=&#34;[video] Film Noir Custom Lighting - Custom Lighting Models - Episode 15&#34;&gt;[video] Film Noir Custom Lighting - Custom Lighting Models - Episode 15&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part of an ongoing series about custom lighting models in real-time graphics&lt;/li&gt;
&lt;li&gt;focuses on recreating the distinctive high contrast black and white imagery lighting style of film noir&lt;/li&gt;
&lt;li&gt;covers techniques for dramatic shadows, stylized highlights, and atmospheric lighting effects&lt;/li&gt;
&lt;li&gt;presents the implementation in Unity and Unreal&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-390/film_noir.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://enginearchitecture.org/2025.htm&#34; target=&#34;_blank&#34; id=&#34;REAC 2025 Conference - Registration open&#34;&gt;REAC 2025 Conference - Registration open&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;announces open registration for REAC 2025, scheduled for June 10-11, 2025 online&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-390/reac.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250504000000*/https://enginearchitecture.org/2025.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=jyjzl0Km-J4&#34; target=&#34;_blank&#34; id=&#34;[video] I3D 2025 Papers Preview&#34;&gt;[video] I3D 2025 Papers Preview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;preview video showcasing upcoming papers from the I3D 2025 conference&lt;/li&gt;
&lt;li&gt;covers a wide range of topics from weather simulation, physics effects, crowd animation, voxel rendering and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-390/multi_scale_feature.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.wihlidal.com&#34; target=&#34;_blank&#34;&gt;Graham Wihlidal&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 389 - April 27th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-389/</link>
      <pubDate>Sun, 27 Apr 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-389/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/abs/2504.17062v1&#34; target=&#34;_blank&#34; id=&#34;ePBR: Extended PBR Materials in Image Synthesis&#34;&gt;ePBR: Extended PBR Materials in Image Synthesis&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this paper introduces a framework that extends PBR materials to handle transparent surfaces like glass and windows&lt;/li&gt;
&lt;li&gt;addresses limitations of traditional reflection models that struggle with highly specular and transparent materials&lt;/li&gt;
&lt;li&gt;combines advantages of physically-based methods with efficiency by focusing on intrinsic image decomposition&lt;/li&gt;
&lt;li&gt;provides deterministic, interpretable control for material editing while maintaining physical plausibility&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-389/epbr.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250428050139/https://arxiv.org/abs/2504.17062v1&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=oQdVF_TecuY&#34; target=&#34;_blank&#34; id=&#34;[video] Fast Custom Lighting - Custom Lighting Models - Episode 14&#34;&gt;[video] Fast Custom Lighting - Custom Lighting Models - Episode 14&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This tutorial demonstrates techniques for implementing efficient custom lighting models&lt;/li&gt;
&lt;li&gt;targets low-powered mobile devices, or augmented reality headsets&lt;/li&gt;
&lt;li&gt;part of an ongoing series exploring custom lighting techniques&lt;/li&gt;
&lt;li&gt;shows which features to remove for more efficient calculations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-389/lighting_model_simplified.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/abs/2501.16312v3&#34; target=&#34;_blank&#34; id=&#34;LinPrim: Linear Primitives for Differentiable Volumetric Rendering&#34;&gt;LinPrim: Linear Primitives for Differentiable Volumetric Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this paper explores alternative scene representations using transparent polyhedra (octahedra and tetrahedra) with triangular faces&lt;/li&gt;
&lt;li&gt;presents a differentiable rasterizer that efficiently runs on GPUs, enabling end-to-end gradient-based optimization with real-time rendering&lt;/li&gt;
&lt;li&gt;achieves comparable quality to state-of-the-art volumetric methods like 3D Gaussians while requiring significantly fewer primitives&lt;/li&gt;
&lt;li&gt;the bounded nature of these primitives creates natural compatibility with traditional mesh-based tools for downstream applications&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-389/linprim.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250428050244/https://arxiv.org/abs/2501.16312v3&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/abs/2504.17545&#34; target=&#34;_blank&#34; id=&#34;When Gaussian Meets Surfel: Ultra-fast High-fidelity Radiance Field Rendering&#34;&gt;When Gaussian Meets Surfel: Ultra-fast High-fidelity Radiance Field Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this research introduces Gaussian-enhanced Surfels (GESs), combining 2D opaque surfels for coarse geometry with 3D Gaussians for fine details&lt;/li&gt;
&lt;li&gt;the novel two-pass rendering approach is entirely sorting-free, eliminating the computational bottleneck of Gaussian sorting&lt;/li&gt;
&lt;li&gt;achieves both ultra-fast frame rates and avoids the popping artifacts commonly seen in other real-time radiance field rendering methods&lt;/li&gt;
&lt;li&gt;includes extensions like Mip-GES for anti-aliasing, Speedy-GES for faster rendering, and 2D-GES for compact storage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-389/surfels_pipeline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250425034759/https://arxiv.org/abs/2504.17545&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=y84bG19sg6U&#34; target=&#34;_blank&#34; id=&#34;[video] Why Did PS1 Games Look Like That?&#34;&gt;[video] Why Did PS1 Games Look Like That?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This video explores the technical reasons behind the distinctive visual appearance of PlayStation 1 games. Especially explaining the effects of the Silent Hill series&lt;/li&gt;
&lt;li&gt;focuses on explaining projection from world into projection space, vertex shading, color quantization etc.&lt;/li&gt;
&lt;li&gt;Explains the hardware limitations that led to the characteristic polygon wobbling and texture warping&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-389/ps1-graphics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=PcbuKRNtCUc&#34; target=&#34;_blank&#34; id=&#34;[video] Essential Machine Learning and AI Concepts Animated&#34;&gt;[video] Essential Machine Learning and AI Concepts Animated&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this animated video breaks down essential machine learning and AI concepts in a visual, accessible way&lt;/li&gt;
&lt;li&gt;uses animations to explain complex algorithms and mathematical foundations behind modern AI systems&lt;/li&gt;
&lt;li&gt;helps viewers develop an intuitive understanding of key AI concepts without requiring advanced mathematical background&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-389/cross_validation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/goodbadwolf/&#34; target=&#34;_blank&#34;&gt;Manish Mathai&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 388 - April 20th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-388/</link>
      <pubDate>Sun, 20 Apr 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-388/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/readingmath&#34; target=&#34;_blank&#34; id=&#34;Reading Math Papers&#34;&gt;Reading Math Papers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;An approachable guide that demystifies mathematical notation commonly found in graphics research papers&lt;/li&gt;
&lt;li&gt;Explains basic notation including summations, products, boolean algebra, and various representations for scalars, vectors, matrices, and tensors&lt;/li&gt;
&lt;li&gt;Bridges the gap between mathematical notation and programming implementations, helping shader developers understand and implement published algorithms&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-388/math-explained.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250410012931/https://mini.gmshaders.com/p/readingmath&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.ubisoft.com/en-gb/article/72j7U131efodyDK64WTJua/ubisofts-colorblind-simulation-tool-chroma-now-available-for-public-use&#34; target=&#34;_blank&#34; id=&#34;Ubisoft’s Colorblind Simulation Tool, Chroma, Now Available For Public Use&#34;&gt;Ubisoft’s Colorblind Simulation Tool, Chroma, Now Available For Public Use&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Ubisoft has open-sourced Chroma, their in-house colorblind simulation tool&lt;/li&gt;
&lt;li&gt;The tool applies filters over game screens to simulate various types of color blindness in real-time&lt;/li&gt;
&lt;li&gt;Designed to help developers assess and improve game accessibility&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-388/ubi-chroma.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/7q0Ec&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.nvidia.com/en-us/on-demand/search/?facet.mimetype[]=null&amp;amp;facet.mimetype[]=event%20session&amp;amp;layout=list&amp;amp;page=1&amp;amp;q=GDC&amp;amp;s=09&amp;amp;sort=date&amp;amp;sortDir=desc&#34; target=&#34;_blank&#34; id=&#34;NVIDIA GDC talks&#34;&gt;NVIDIA GDC talks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Collection of NVIDIA&amp;rsquo;s latest technical sessions and presentations from Game Developers Conference 2025&lt;/li&gt;
&lt;li&gt;Covers a wide range of topics including ray tracing, AI-assisted rendering, graphics optimization techniques as well as more generic AI techniques&lt;/li&gt;
&lt;li&gt;Provides insights into how to path trae nanite content&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-388/megageometry.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250422024515/https://www.nvidia.com/en-us/on-demand/search/?facet.mimetype%5B%5D=null&amp;amp;facet.mimetype%5B%5D=event%20session&amp;amp;layout=list&amp;amp;page=1&amp;amp;q=GDC&amp;amp;s=09&amp;amp;sort=date&amp;amp;sortDir=desc&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/combiningshaders&#34; target=&#34;_blank&#34; id=&#34;Combining Shaders&#34;&gt;Combining Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A practical guide to effectively combining multiple shader effects into a single shader pass&lt;/li&gt;
&lt;li&gt;Presents a checklist for determining shader compatibility based on performance, sample count, coordinates, textures, and inputs&lt;/li&gt;
&lt;li&gt;Explains how to convert shader code into functions and handle the ordering of effects for optimal results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-388/combine-shaders.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250422024701/https://mini.gmshaders.com/p/combiningshaders&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://thenumb.at/Rendering/&#34; target=&#34;_blank&#34; id=&#34;Monte Carlo Crash Course - Case Study: Rendering&#34;&gt;Monte Carlo Crash Course - Case Study: Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Detailed exploration of Monte Carlo integration techniques applied to rendering, focusing on a simplified 2D light transport model&lt;/li&gt;
&lt;li&gt;Covers direct lighting, indirect lighting, and specular reflection with thorough mathematical explanations&lt;/li&gt;
&lt;li&gt;Discusses common challenges like fireflies and variance reduction in path tracing implementations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-388/indirect.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250420153045/https://thenumb.at/Rendering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.scenerepresentations.org/courses/2023/fall/inverse-graphics/&#34; target=&#34;_blank&#34; id=&#34;Machine Learning for Inverse Graphics&#34;&gt;Machine Learning for Inverse Graphics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Comprehensive course materials from MIT&amp;rsquo;s &amp;ldquo;Machine Learning for Inverse Graphics&amp;rdquo; (6.S980)&lt;/li&gt;
&lt;li&gt;Covers fundamental topics in computer vision, graphics, and geometric deep learning, with a focus on neural scene representations&lt;/li&gt;
&lt;li&gt;Provides lectures on image formation, 3D scene representations, neural rendering, and self-supervised learning approaches&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-388/inverse-graphics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241224113542/https://www.scenerepresentations.org/courses/2023/fall/inverse-graphics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=CR-5FhfF5kQ&#34; target=&#34;_blank&#34; id=&#34;DirectX State of the Union: Raytracing and PIX Workflows (Presented by Microsoft)&#34;&gt;DirectX State of the Union: Raytracing and PIX Workflows (Presented by Microsoft)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Microsoft&amp;rsquo;s latest DirectX roadmap presentation highlighting API advancements and tool updates&lt;/li&gt;
&lt;li&gt;Shows updates to work graphs, neural rendering, raytracing 1.2 micromaps and shader execution reodering&lt;/li&gt;
&lt;li&gt;summary of Agile SDK updates as well as plans for the HLSL future developments&lt;/li&gt;
&lt;li&gt;additionally provides a look at new PIX capabilties as well as PIX API preview release&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-388/procedural-trees.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Zk9Vd_TZ_Yw&#34; target=&#34;_blank&#34; id=&#34;Loading Models With Assimp // Vulkan For Beginners #20&#34;&gt;Loading Models With Assimp // Vulkan For Beginners #20&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Part of a Vulkan tutorial series focusing on integration with the Assimp library for model loading&lt;/li&gt;
&lt;li&gt;Demonstrates how to process imported model data into Vulkan-compatible vertex and index buffers&lt;/li&gt;
&lt;li&gt;Covers handling of materials, textures, and transformations when integrating external 3D assets&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-388/assimp-vertex-index-data.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://vectrx.substack.com/p/lcg-xs-fast-gpu-rng&#34; target=&#34;_blank&#34; id=&#34;Building a Fast, SIMD/GPU-friendly Random Number Generator For Fun And Profit&#34;&gt;Building a Fast, SIMD/GPU-friendly Random Number Generator For Fun And Profit&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Detailed exploration of creating efficient random number generators optimized for SIMD and GPU execution&lt;/li&gt;
&lt;li&gt;Discusses implementation of a Linear Congruential Generator (LCG) with xorshift operations&lt;/li&gt;
&lt;li&gt;additionally presents how to author an SIMD optimized variant&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-388/whitenoise.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250422024546/https://vectrx.substack.com/p/lcg-xs-fast-gpu-rng&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/goodbadwolf/&#34; target=&#34;_blank&#34;&gt;Manish Mathai&lt;/a&gt; for supporting this series&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 387 - April 13th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-387/</link>
      <pubDate>Sun, 13 Apr 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-387/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.siggraph.org/2025/04/evolution-of-gpus.html/&#34; target=&#34;_blank&#34; id=&#34;The Eras of GPU Development&#34;&gt;The Eras of GPU Development&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post provides a discussion how hardware and graphics APIs developed over time&lt;/li&gt;
&lt;li&gt;Presents performance changes as well as capabilities changes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-387/gpu_history.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250412102813/https://blog.siggraph.org/2025/04/evolution-of-gpus.html/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://therealmjp.github.io/posts/to-earlyz-or-not-to-earlyz&#34; target=&#34;_blank&#34; id=&#34;To Early-Z, or Not To Early-Z&#34;&gt;To Early-Z, or Not To Early-Z&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article presents a detailed discussion of z-testing in modern GPU hardware&lt;/li&gt;
&lt;li&gt;Shows when the hardware is able to move the execution of z-testing before pixel shader invocation and when not&lt;/li&gt;
&lt;li&gt;Shows the impact on performance and correctness&lt;/li&gt;
&lt;li&gt;Closes with a table showing a summary of the various features that can affect the behavior&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-387/z-tester-discard-forced-early-z.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250414042526/https://therealmjp.github.io/posts/to-earlyz-or-not-to-earlyz/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://thenumb.at/Sampling&#34; target=&#34;_blank&#34; id=&#34;Monte Carlo Crash Course - Sampling&#34;&gt;Monte Carlo Crash Course - Sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The series on Monte Carlo&amp;rsquo;s related techniques continues with Monte Carlo Sampling&lt;/li&gt;
&lt;li&gt;Presents how to convert Pseudo-Random Numbers into samplers for more complex domains&lt;/li&gt;
&lt;li&gt;Covers Uniform Rejection Sampling, Non-Uniform Rejection Sampling, Inversion Sampling, Marginal Inversion Sampling&lt;/li&gt;
&lt;li&gt;Additionally talks about Changes of Coordinates and Sample Efficiency&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-387/monte_carlo_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250414041853/https://thenumb.at/Sampling/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.nvidia.com/labs/rtr/publication/wronski2025quadcomm/&#34; target=&#34;_blank&#34; id=&#34;Improved Stochastic Texture Filtering Through Sample Reuse&#34;&gt;Improved Stochastic Texture Filtering Through Sample Reuse&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Reuse and share samples between different lanes in a shader wave, avoiding memory traffic&lt;/li&gt;
&lt;li&gt;Presents a method to improve the quality of stochastically-filtered magnified textures compared to traditional texture filtering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-387/sampling_patterns.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250411154042/https://research.nvidia.com/labs/rtr/publication/wronski2025quadcomm/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/bilinear-interpolation-quadrilateral-barycentric-coordinates/&#34; target=&#34;_blank&#34; id=&#34;Bilinear interpolation on a quadrilateral using Barycentric coordinates&#34;&gt;Bilinear interpolation on a quadrilateral using Barycentric coordinates&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article presents an algebraic solution for bilinear interpolation using Barycentric coordinates to allow improved sampling across triangulated edges&lt;/li&gt;
&lt;li&gt;Shows an explanation of the derivation of the method&lt;/li&gt;
&lt;li&gt;Additionally contains the code for the implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-387/barycentric.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250412004410/https://gpuopen.com/learn/bilinear-interpolation-quadrilateral-barycentric-coordinates/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rive.app/blog/how-rive-reinvented-feathering-for-the-vectorian-era&#34; target=&#34;_blank&#34; id=&#34;Reinventing feathering for the Vectorian era&#34;&gt;Reinventing feathering for the Vectorian era&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article presents a discussion of how to approach blurs for vector graphics&lt;/li&gt;
&lt;li&gt;Discusses how to rethink the approach instead of using Gaussian blurs&lt;/li&gt;
&lt;li&gt;Links to the implementation is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-387/vector_feathering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250409074809/https://rive.app/blog/how-rive-reinvented-feathering-for-the-vectorian-era&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Dirk Dörr for supporting this series&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 386 - April 6th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-386/</link>
      <pubDate>Sun, 06 Apr 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-386/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hexaquo.at/pages/grass-rendering-series-part-1-theory/&#34; target=&#34;_blank&#34; id=&#34;Grass Rendering Series Part 1: Theory&#34;&gt;Grass Rendering Series Part 1: Theory&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This series examines various techniques for rendering realistic grass&lt;/li&gt;
&lt;li&gt;Part 1 focuses on the theoretical foundations needed to create believable grass&lt;/li&gt;
&lt;li&gt;Part 2 demonstrates the practical application of these theories using a geometry-based grass shading model in Godot&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-386/grass_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250407035918/https://hexaquo.at/pages/grass-rendering-series-part-1-theory/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://thenumb.at/Monte-Carlo/&#34; target=&#34;_blank&#34; id=&#34;Exponentially Better Integration&#34;&gt;Exponentially Better Integration&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This blog post provides a clear explanation of Quadrature and Monte Carlo Integration techniques&lt;/li&gt;
&lt;li&gt;Interactive exploration scenarios help readers develop an intuitive understanding of the concepts&lt;/li&gt;
&lt;li&gt;The author also explains important statistical concepts like Bias and Consistency&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-386/monte_carlo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250407041038/https://thenumb.at/Monte-Carlo/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://themaister.net/blog/2025/03/20/graphics-programming-like-its-2000-an-esoteric-introduction-to-playstation-2-graphics-part-1/&#34; target=&#34;_blank&#34; id=&#34;Graphics programming like it&amp;#39;s 2000 – An esoteric introduction to PlayStation 2 graphics – Part 1&#34;&gt;Graphics programming like it&amp;#39;s 2000 – An esoteric introduction to PlayStation 2 graphics – Part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This article explores the programming techniques for the PlayStation 2 GPU architecture&lt;/li&gt;
&lt;li&gt;The author uses a compute shader emulator to demonstrate how the register-based packet stream draws triangles&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-386/ps2_triangle.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.ph/Heojy&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zeux.io/2025/03/31/measuring-acceleration-structures&#34; target=&#34;_blank&#34; id=&#34;Measuring acceleration structures&#34;&gt;Measuring acceleration structures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This blog post provides an in-depth analysis of raytracing acceleration structures across various hardware platforms and drivers&lt;/li&gt;
&lt;li&gt;The author compares structure sizes across different manufacturers and hardware generations&lt;/li&gt;
&lt;li&gt;A detailed discussion highlights how hardware vendors and drivers differ in data representation (based on publicly available information)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-386/acceleration_structures.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250401082941/https://zeux.io/2025/03/31/measuring-acceleration-structures/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Gk3JsDCBp1o&#34; target=&#34;_blank&#34; id=&#34;[video] Bindless Textures // Intermediate OpenGL Series&#34;&gt;[video] Bindless Textures // Intermediate OpenGL Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This OpenGL programming series continues with an exploration of bindless texture concepts and implementation&lt;/li&gt;
&lt;li&gt;The video covers necessary implementation changes for both C++ and GLSL code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-386/bindless_opengl_textures.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://simonschreibt.de/gat/sims-4-mirrors/&#34; target=&#34;_blank&#34; id=&#34;Sims 4: Mirrors&#34;&gt;Sims 4: Mirrors&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article presents a visual walkthrough of how mirrors are commonly implemented in video games&lt;/li&gt;
&lt;li&gt;It uses Sims 4 as a practical example to demonstrate mirror rendering techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-386/sims4_mirror.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250401082228/https://simonschreibt.de/gat/sims-4-mirrors/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shader-slang.org/blog/2025/04/04/neural-gfx-in-an-afternoon&#34; target=&#34;_blank&#34; id=&#34;Neural Graphics in an Afternoon&#34;&gt;Neural Graphics in an Afternoon&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This blog post demonstrates how to implement a 2D Gaussian Splatting algorithm using Python&lt;/li&gt;
&lt;li&gt;The author explains both the Python and Slang implementation details&lt;/li&gt;
&lt;li&gt;The implementation prioritizes clarity and ease of understanding over performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-386/neural_graphics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250407040909/https://shader-slang.org/blog/2025/04/04/neural-gfx-in-an-afternoon/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://chipsandcheese.com/p/dynamic-register-allocation-on-amds&#34; target=&#34;_blank&#34; id=&#34;Dynamic Register Allocation on AMD&amp;#39;s RDNA 4 GPU Architecture&#34;&gt;Dynamic Register Allocation on AMD&amp;#39;s RDNA 4 GPU Architecture&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article examines the new dynamic register allocation capabilities in AMD&amp;rsquo;s RDNA4 architecture&lt;/li&gt;
&lt;li&gt;It details the new instructions and their interaction with wave execution&lt;/li&gt;
&lt;li&gt;The author clarifies the limitations of this technique and compares it with NVIDIA and Intel implementations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-386/rdna4.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250406122653/https://chipsandcheese.com/p/dynamic-register-allocation-on-amds&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://saschawillems.de/blog/2025/04/05/improved-filtering-added-to-the-vulkan-hardware-database/&#34; target=&#34;_blank&#34; id=&#34;Improved filtering added to the Vulkan Hardware Database&#34;&gt;Improved filtering added to the Vulkan Hardware Database&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This blog post highlights updates to the filtering capabilities of the Vulkan Hardware Database&lt;/li&gt;
&lt;li&gt;New filtering options allow users to search by minimum Vulkan version, report age, device types, and layered implementations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-386/global_filtering_vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250407041516/https://saschawillems.de/blog/2025/04/05/improved-filtering-added-to-the-vulkan-hardware-database/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for supporting this series&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 385 - March 30th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-385/</link>
      <pubDate>Sun, 30 Mar 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-385/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.siliceum.com/en/blog/post/d3d12_optimizing_null_descs&#34; target=&#34;_blank&#34; id=&#34;Optimizing copy of null descriptors in D3D12&#34;&gt;Optimizing copy of null descriptors in D3D12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post analyzes the CPU overhead caused by copying D3D12 descriptors&lt;/li&gt;
&lt;li&gt;It demonstrates how to use available APIs to reduce this overhead significantly&lt;/li&gt;
&lt;li&gt;Discusses how different hardware tiers handle uninitialized descriptors differently&lt;/li&gt;
&lt;li&gt;Explores how various shader compiler options affect performance outcomes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-385/desc_copy.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250331155923/https://www.siliceum.com/en/blog/post/d3d12_optimizing_null_descs&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aaaa.sh/creatures/dda-algorithm-interactive&#34; target=&#34;_blank&#34; id=&#34;The DDA Algorithm, explained interactively&#34;&gt;The DDA Algorithm, explained interactively&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post provides an interactive explanation of the Digital Differential Analyzer (DDA) algorithm&lt;/li&gt;
&lt;li&gt;Through step-by-step visualizations, it breaks down how the algorithm traverses a grid&lt;/li&gt;
&lt;li&gt;Focuses on the 2D case to build intuition before discussing more complex applications&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-385/dda_ray.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250104150745/https://aaaa.sh/creatures/dda-algorithm-interactive/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=V56cTuRumyI&#34; target=&#34;_blank&#34; id=&#34;[video] Forward Plus Additional Lights - Custom Lighting Models - Episode 11&#34;&gt;[video] Forward Plus Additional Lights - Custom Lighting Models - Episode 11&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This video tutorial demonstrates how to extend a forward lighting shader to support multiple dynamic lights&lt;/li&gt;
&lt;li&gt;Implementation is shown using Unity&amp;rsquo;s rendering pipeline&lt;/li&gt;
&lt;li&gt;Explains the performance considerations and optimizations for handling many light sources&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-385/custom_light_pipeline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://acko.net/blog/occlusion-with-bells-on/&#34; target=&#34;_blank&#34; id=&#34;Modern SSAO in a modern run-time&#34;&gt;Modern SSAO in a modern run-time&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post details the integration of Screen Space Ambient Occlusion into Use.GPU, a reactive GPU authoring system for the web&lt;/li&gt;
&lt;li&gt;Showcases the debug pass inspector integration for visual analysis&lt;/li&gt;
&lt;li&gt;Explains the technical considerations and implementation choices behind their SSAO approach&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-385/ssao-voxel.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250324154732/https://acko.net/files/use-gpu-14/ssao-voxel.jpg&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jiha-kim.github.io/posts/the-mean-ing-of-loss-functions/&#34; target=&#34;_blank&#34; id=&#34;The Mean-ing of Loss Functions&#34;&gt;The Mean-ing of Loss Functions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post explores the mathematical and statistical foundations behind common loss functions&lt;/li&gt;
&lt;li&gt;Starting with squared error loss, it explains the connection between loss functions and probability distributions&lt;/li&gt;
&lt;li&gt;Provides practical guidance on selecting appropriate loss functions based on the underlying assumptions of your data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-385/loss_functions.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250328054410/https://jiha-kim.github.io/posts/the-mean-ing-of-loss-functions/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://chipsandcheese.com/p/rdna-4s-out-of-order-memory-accesses&#34; target=&#34;_blank&#34; id=&#34;RDNA 4&amp;#39;s Out-of-Order Memory Accesses&#34;&gt;RDNA 4&amp;#39;s Out-of-Order Memory Accesses&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post presents experimental results comparing RDNA3 and RDNA4 memory access models&lt;/li&gt;
&lt;li&gt;Demonstrates how RDNA4 resolves false cross-wave dependencies that exist in RDNA3&lt;/li&gt;
&lt;li&gt;Includes comparative benchmarks against NVIDIA and Intel hardware to highlight architectural differences&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-385/rdna4-out-of-order.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250328002730/https://chipsandcheese.com/p/rdna-4s-out-of-order-memory-accesses&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://metalbyexample.com/&#34; target=&#34;_blank&#34;&gt;Warren Moore&lt;/a&gt; for supporting this series&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 384 - March 24th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-384/</link>
      <pubDate>Sun, 23 Mar 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-384/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://raphlinus.github.io/gpu/2025/03/21/good-parallel-computer.html&#34; target=&#34;_blank&#34; id=&#34;I want a good parallel computer&#34;&gt;I want a good parallel computer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses the history of parallel GPU hardware developments over time&lt;/li&gt;
&lt;li&gt;talks about the limitations of current programming models&lt;/li&gt;
&lt;li&gt;as well as upcoming developments like work graphs and other GPU-driven execution models&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-384/teco_connection_machine.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250321213158/https://raphlinus.github.io/gpu/2025/03/21/good-parallel-computer.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.eurogamer.net/digitalfoundry-2025-assassins-creed-shadows-tech-qa-rtgi-shader-compilation-taa-and-more&#34; target=&#34;_blank&#34; id=&#34;Assassin&amp;#39;s Creed Shadows: inside the technologically revamped Anvil Engine&#34;&gt;Assassin&amp;#39;s Creed Shadows: inside the technologically revamped Anvil Engine&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a short interview about the technology of Assassin&amp;rsquo;s Creed Shadows&lt;/li&gt;
&lt;li&gt;the included video contains a lot more details, including debug view insights into the virtualized geometry system&lt;/li&gt;
&lt;li&gt;discusses how and why AC ships with two different Global illumination systems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-384/cluster_view.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250324033820/https://www.eurogamer.net/digitalfoundry-2025-assassins-creed-shadows-tech-qa-rtgi-shader-compilation-taa-and-more&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.nvidia.com/gtc/session-catalog/?tab.catalogallsessionstab=16566177511100015Kus&amp;amp;search=Stephen%20jones#/session/1726614035480001yvEQ&#34; target=&#34;_blank&#34; id=&#34;CUDA: New Features and Beyond &#34;&gt;CUDA: New Features and Beyond &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;recording from the GTC presentation is available&lt;/li&gt;
&lt;li&gt;discusses the current state of the CUDA stack and future developments for performance optimizations across the whole stack&lt;/li&gt;
&lt;li&gt;introduces new Python libraries, JIT compilation&lt;/li&gt;
&lt;li&gt;additionally introduces cuTile, a new CUDA extension that allows the expression of problems at the tile level&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-384/cuda_tile_level_programming.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jendrikillner.com/gtc-2025/&#34; target=&#34;_blank&#34; id=&#34;GTC 2025&#34;&gt;GTC 2025&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;NVIDIA GTC is happening now – &lt;a href=&#34;https://nvda.ws/4aAcg3k&#34; target=&#34;_blank&#34;&gt;attend virtually&lt;/a&gt; for free.&lt;/li&gt;
&lt;li&gt;Presenting the latest breakthroughs in generative AI, accelerated computing, simulation technology, and more.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://nvda.ws/4aAcg3k&#34; target=&#34;_blank&#34;&gt;Register&lt;/a&gt; to attend and enter my RTX 6000 Ada giveaway&lt;/li&gt;
&lt;li&gt;My session recommendations: &lt;a href=&#34;https://www.nvidia.com/gtc/session-catalog/?regcode=ref-inor-411354&amp;amp;ncid=ref-inor-411354&amp;amp;tab.catalogallsessionstab=16566177511100015Kus&amp;amp;search=openusd#/session/1727289300468001QFp4&#34; target=&#34;_blank&#34;&gt;An Introduction to OpenUSD&lt;/a&gt;, &lt;a href=&#34;https://www.nvidia.com/gtc/session-catalog/?regcode=ref-inor-411354&amp;amp;ncid=ref-inor-411354&amp;amp;tab.catalogallsessionstab=16566177511100015Kus&amp;amp;search=cuda#/session/1726614035480001yvEQ&#34; target=&#34;_blank&#34;&gt;CUDA: New Features and Beyond&lt;/a&gt;, and more &lt;a href=&#34;https://www.jendrikillner.com/gtc-2025/&#34;&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-383/gtc_banner.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/announcing-directx-raytracing-1-2-pix-neural-rendering-and-more-at-gdc-2025/&#34; target=&#34;_blank&#34; id=&#34;Announcing DirectX Raytracing 1.2, PIX, Neural Rendering and more at GDC 2025! &#34;&gt;Announcing DirectX Raytracing 1.2, PIX, Neural Rendering and more at GDC 2025! &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post shares D3D12 announcements from GDC&lt;/li&gt;
&lt;li&gt;DXR 1.2 will bring support for opacity micromaps (OMM) and shader execution reordering (SER)&lt;/li&gt;
&lt;li&gt;additionally, shares upcoming PIX updates as well as support for Cooperative vectors&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-384/pix_update.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250322120851/https://devblogs.microsoft.com/directx/announcing-directx-raytracing-1-2-pix-neural-rendering-and-more-at-gdc-2025/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=gAgZ9w6_dGc&#34; target=&#34;_blank&#34; id=&#34;[video] Custom Lighting Fog - Custom Lighting Models - Episode 10&#34;&gt;[video] Custom Lighting Fog - Custom Lighting Models - Episode 10&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video continues the development of a custom lighting model&lt;/li&gt;
&lt;li&gt;this part introduces how to integrate fog into the shading model&lt;/li&gt;
&lt;li&gt;implementation is done using the visual shading language in Unity 6&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-384/fog_integration.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://godofpen.notion.site/How-to-use-Geometry-Shader-in-Unreal-Engine-5-with-AddMeshPass-Plugin-1bf2c17c902a800aa356f8fb72b009d0&#34; target=&#34;_blank&#34; id=&#34;How to use Geometry Shader in Unreal Engine 5 with AddMeshPass Plugin&#34;&gt;How to use Geometry Shader in Unreal Engine 5 with AddMeshPass Plugin&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a short tutorial on how to use Geometry Shaders from Unreal Engine 5&lt;/li&gt;
&lt;li&gt;shows the necessary C++ and shader code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-384/geometry_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250324034128/https://godofpen.notion.site/How-to-use-Geometry-Shader-in-Unreal-Engine-5-with-AddMeshPass-Plugin-1bf2c17c902a800aa356f8fb72b009d0&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://derkleineli.github.io/meshpad/&#34; target=&#34;_blank&#34; id=&#34;MeshPad: Interactive Sketch-Conditioned Artist-Designed Mesh Generation and Editing&#34;&gt;MeshPad: Interactive Sketch-Conditioned Artist-Designed Mesh Generation and Editing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a discussion of techniques used to convert 2D sketches (interactively) into 3D base meshes&lt;/li&gt;
&lt;li&gt;the technique is based on a transformer architecture that iterates on results through additions and deletions&lt;/li&gt;
&lt;li&gt;still has context length limits that restrict triangle counts to thousands&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-384/sketch_3d_method_overview.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250313012211/https://derkleineli.github.io/meshpad/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=UxGxsGnbyJ4&#34; target=&#34;_blank&#34; id=&#34;[video] Implicit Surfaces &amp;amp; Independent Research&#34;&gt;[video] Implicit Surfaces &amp;amp; Independent Research&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents how to render Implicit surfaces&lt;/li&gt;
&lt;li&gt;starting from the basic ideas and showing how to deep dive into research on the same idea. Explaining the developments in implicit surfaces&lt;/li&gt;
&lt;li&gt;additionally presents how to interact with the researcher community&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-384/implicit_surfaces.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://metalbyexample.com/&#34; target=&#34;_blank&#34;&gt;Warren Moore&lt;/a&gt; for supporting this series&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 383 - March 16th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-383/</link>
      <pubDate>Sun, 16 Mar 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-383/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lisyarus.github.io/blog/posts/estimating-variance-reduction-in-importance-sampling.html&#34; target=&#34;_blank&#34; id=&#34;Estimating variance reduction in importance sampling&#34;&gt;Estimating variance reduction in importance sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of Monte-Carlo and the Importance of sampling&lt;/li&gt;
&lt;li&gt;discusses how to derive the variance reduction of the Importance sampling technique&lt;/li&gt;
&lt;li&gt;shows how different approximations can present very different convergence behavior&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-383/plot_convergence.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250316180836/https://lisyarus.github.io/blog/posts/estimating-variance-reduction-in-importance-sampling.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://obrhubr.org/dithering-in-colour&#34; target=&#34;_blank&#34; id=&#34;Dithering in Colour&#34;&gt;Dithering in Colour&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article provides an overview of dithering colored images&lt;/li&gt;
&lt;li&gt;Discusses the importance of color spaces and human perception of the results&lt;/li&gt;
&lt;li&gt;Additionally, it provides a link to a separate article that focuses on monochrome dithering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-383/color_dithering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250315003901/https://obrhubr.org/dithering-in-colour&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.s-schoener.com/2025-03-10-not-obviously-bad&#34; target=&#34;_blank&#34; id=&#34;Not Obviously Bad, and Obviously Not Bad&#34;&gt;Not Obviously Bad, and Obviously Not Bad&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses the consideration of performance when designing general-purpose code&lt;/li&gt;
&lt;li&gt;discusses various approaches to thinking about the problem&lt;/li&gt;
&lt;li&gt;concludes that APIs should be designed to be &amp;ldquo;Not Obviously Bad&amp;rdquo; - avoiding obvious waste, such that if a random profile is taken, performance issues shouldn&amp;rsquo;t immediately stand out&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-383/rect_transform_profile.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250310142609/https://blog.s-schoener.com/2025-03-10-not-obviously-bad/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jendrikillner.com/gtc-2025/&#34; target=&#34;_blank&#34; id=&#34;GTC 2025&#34;&gt;GTC 2025&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;NVIDIA GTC is happening now – &lt;a href=&#34;https://nvda.ws/4aAcg3k&#34; target=&#34;_blank&#34;&gt;attend virtually&lt;/a&gt; for free.&lt;/li&gt;
&lt;li&gt;Presenting the latest breakthroughs in generative AI, accelerated computing, simulation technology, and more.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://nvda.ws/4aAcg3k&#34; target=&#34;_blank&#34;&gt;Register&lt;/a&gt; to attend and enter my RTX 6000 Ada giveaway&lt;/li&gt;
&lt;li&gt;My session recommendations: &lt;a href=&#34;https://www.nvidia.com/gtc/session-catalog/?regcode=ref-inor-411354&amp;amp;ncid=ref-inor-411354&amp;amp;tab.catalogallsessionstab=16566177511100015Kus&amp;amp;search=openusd#/session/1727289300468001QFp4&#34; target=&#34;_blank&#34;&gt;An Introduction to OpenUSD&lt;/a&gt;, &lt;a href=&#34;https://www.nvidia.com/gtc/session-catalog/?regcode=ref-inor-411354&amp;amp;ncid=ref-inor-411354&amp;amp;tab.catalogallsessionstab=16566177511100015Kus&amp;amp;search=cuda#/session/1726614035480001yvEQ&#34; target=&#34;_blank&#34;&gt;CUDA: New Features and Beyond&lt;/a&gt;, and more &lt;a href=&#34;https://www.jendrikillner.com/gtc-2025/&#34;&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-383/gtc_banner.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/rdna-cdna-architecture-disassembly-radeon-gpu-analyzer-2-12/&#34; target=&#34;_blank&#34; id=&#34;Reading AMD RDNA™ and CDNA™ Architecture Disassembly is a Breeze with AMD Radeon™ GPU Analyzer v2.12&#34;&gt;Reading AMD RDNA™ and CDNA™ Architecture Disassembly is a Breeze with AMD Radeon™ GPU Analyzer v2.12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents improvements to the Disassembly view in the GPU Analyzer&lt;/li&gt;
&lt;li&gt;can now present register pressure, branch visualization as well as tooltips explanations for the instructions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-383/register_visulization.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250311185727/https://gpuopen.com/learn/rdna-cdna-architecture-disassembly-radeon-gpu-analyzer-2-12/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/radeon_gpu_profiler_2-4_support_rx9000_series_pure-compute_applications/&#34; target=&#34;_blank&#34; id=&#34;AMD Radeon™ GPU Profiler 2.4 adds support for AMD Radeon™ RX 9000 Series, pure-compute applications, DirectML applications (and more!)&#34;&gt;AMD Radeon™ GPU Profiler 2.4 adds support for AMD Radeon™ RX 9000 Series, pure-compute applications, DirectML applications (and more!)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents new improvements to the AMD GPU Profiler&lt;/li&gt;
&lt;li&gt;this includes support for profiling compute-only applications (without present calls)&lt;/li&gt;
&lt;li&gt;as well as improved support for work graphs and DirectML workloads&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-383/ml_profiling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250311191458/https://gpuopen.com/learn/radeon_gpu_profiler_2-4_support_rx9000_series_pure-compute_applications/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=29TPSAKDRZQ&#34; target=&#34;_blank&#34; id=&#34;[video] Screen Space Ambient Occlusion - Custom Lighting Models - Episode 9&#34;&gt;[video] Screen Space Ambient Occlusion - Custom Lighting Models - Episode 9&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to implement Screen Space Ambient Occlusion using Unity&lt;/li&gt;
&lt;li&gt;presents how to make the ambient component of the lighting pass aware of the ambient occlusion terms&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-383/ambient_occlusion_unity.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=-TxwxvsiXSw&#34; target=&#34;_blank&#34; id=&#34;[video] Depth Buffering // Vulkan For Beginners #19&#34;&gt;[video] Depth Buffering // Vulkan For Beginners #19&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents how to add support for a depth buffer into a basic Vulkan application&lt;/li&gt;
&lt;li&gt;explains how to set the resource creation, clear the depth target as well as the changes required to the object shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-383/z_buffer_vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Stephen Hill for supporting this series&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 382 - March 9th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-382/</link>
      <pubDate>Sun, 09 Mar 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-382/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Ak40WLdV3ic&#34; target=&#34;_blank&#34; id=&#34;[video] Modular Lighting System - Custom Lighting Models - Episode 8&#34;&gt;[video] Modular Lighting System - Custom Lighting Models - Episode 8&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This video tutorial demonstrates how to refactor monolithic lighting shaders into modular, reusable components&lt;/li&gt;
&lt;li&gt;It showcases the tools available in both Unity and Unreal Engine for creating flexible visual shader architectures&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-382/custom_light_model_modular.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0014/01/04&#34; target=&#34;_blank&#34; id=&#34;Compression of Spectral Images using Spectral JPEG XL&#34;&gt;Compression of Spectral Images using Spectral JPEG XL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This paper introduces an innovative method for compressing spectral images using existing JPEG XL encoders&lt;/li&gt;
&lt;li&gt;It demonstrates how cosine transforms in the wavelength domain, significantly compressing the dynamic range&lt;/li&gt;
&lt;li&gt;The authors present comprehensive compression results with quality comparisons across different parameters&lt;/li&gt;
&lt;li&gt;They also outline future improvements currently constrained by limitations in the reference JPEG XL implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-382/spectral.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250306202819/https://jcgt.org/published/0014/01/04/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/new_content_released_on_gpuopen_for_amd_rdna_4_on-shelf_day/&#34; target=&#34;_blank&#34; id=&#34;New content released on GPUOpen for AMD RDNA™ 4 on-shelf day&#34;&gt;New content released on GPUOpen for AMD RDNA™ 4 on-shelf day&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD has published comprehensive documentation about their upcoming RDNA4 architecture&lt;/li&gt;
&lt;li&gt;The release includes updates to FSR technology and the Capsaicin prototyping framework&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-382/rdna4.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250306222555/https://gpuopen.com/learn/new_content_released_on_gpuopen_for_amd_rdna_4_on-shelf_day/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://randygaul.github.io/graphics/2025/03/04/2D-Rendering-SDF-and-Atlases.html&#34; target=&#34;_blank&#34; id=&#34;2D Rendering with SDF&amp;#39;s and Atlases&#34;&gt;2D Rendering with SDF&amp;#39;s and Atlases&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This article provides a practical overview of runtime atlas construction for sprites and text elements&lt;/li&gt;
&lt;li&gt;It explores using signed distance fields (SDFs) for efficient dynamic shape packing&lt;/li&gt;
&lt;li&gt;The author explains techniques for seamlessly joining polyline segments to create continuous shapes without gaps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-382/sdf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250305143359/https://randygaul.github.io/graphics/2025/03/04/2D-Rendering-SDF-and-Atlases.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Wg75trbSqg0&#34; target=&#34;_blank&#34; id=&#34;[video] Vulkanised 2025: Slang is for Neural Graphics - Shannon Woods&#34;&gt;[video] Vulkanised 2025: Slang is for Neural Graphics - Shannon Woods&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This video provides a comprehensive overview of Slang and its capabilities for differentiable programming&lt;/li&gt;
&lt;li&gt;It explains how Slang enables automatic differentiation, enhancing neural-based graphics techniques&lt;/li&gt;
&lt;li&gt;The presentation also demonstrates the interoperability between Slang and Python codebases&lt;/li&gt;
&lt;li&gt;It includes a practical example using gradient descent to train a Gaussian splatting implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-382/slang_neural.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=GXh0Vxg7AnQ&#34; target=&#34;_blank&#34; id=&#34;[video] Soft body procedural animation&#34;&gt;[video] Soft body procedural animation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This video introduces the fundamentals of physics integration for graphics applications&lt;/li&gt;
&lt;li&gt;It extends basic concepts to implement practical soft-body physics simulations&lt;/li&gt;
&lt;li&gt;The tutorial demonstrates how to construct character animations using soft-body physics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-382/soft_body.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=kMiilElp3Js&#34; target=&#34;_blank&#34; id=&#34;[video] Real-Time Cloud Shadows in Unity: Optimized Shader Graph Workflow for Mobile &amp;amp; VR&#34;&gt;[video] Real-Time Cloud Shadows in Unity: Optimized Shader Graph Workflow for Mobile &amp;amp; VR&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This tutorial demonstrates an efficient technique for implementing cloud shadows in Unity scenes&lt;/li&gt;
&lt;li&gt;The approach generates shadow mask textures through render-to-texture techniques&lt;/li&gt;
&lt;li&gt;The final effect modulates the main directional light, creating convincing cloud shadow patterns&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-382/cloud_shadows.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for supporting this series&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 381 - March 2nd, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-381/</link>
      <pubDate>Sun, 02 Mar 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-381/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=fTJjPGaPsq4&#34; target=&#34;_blank&#34; id=&#34;[video] How to Sample Your Signals? Sampling Theorem and Anti-aliasing Explained&#34;&gt;[video] How to Sample Your Signals? Sampling Theorem and Anti-aliasing Explained&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains the theory underlying the resampling of continuous signals into distinct samples&lt;/li&gt;
&lt;li&gt;presents how various aliasing artifacts are caused and how sampling and reconstriction filters prevent them&lt;/li&gt;
&lt;li&gt;explains the examples of image resampling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-381/signal_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/abs/2502.17712&#34; target=&#34;_blank&#34; id=&#34;FastAtlas: Real-Time Compact Atlases for Texture Space Shading&#34;&gt;FastAtlas: Real-Time Compact Atlases for Texture Space Shading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a GPU-based method for the generation of dynamic texture atlases for texture-space shading&lt;/li&gt;
&lt;li&gt;explains the limitations of existing methods and how this algorithm aims to improve it&lt;/li&gt;
&lt;li&gt;presents performance and quality comparison against existing methods&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-381/FastAtlas.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250303032301/https://arxiv.org/abs/2502.17712&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Bw0f6J08r2k&#34; target=&#34;_blank&#34; id=&#34;[video] Are Current Generation Graphics A Bit Of A Let Down?&#34;&gt;[video] Are Current Generation Graphics A Bit Of A Let Down?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video discusses the challenges facing modern game graphics development&lt;/li&gt;
&lt;li&gt;focuses on how different approaches to world and game design affect what techniques are possible&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-381/df-game-let-down.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=by9lQvpvMIc&#34; target=&#34;_blank&#34; id=&#34;[video] How Clay&amp;#39;s UI Layout Algorithm Works&#34;&gt;[video] How Clay&amp;#39;s UI Layout Algorithm Works&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how to design a flexbox-like layout algorithm&lt;/li&gt;
&lt;li&gt;visually explains the flow of layout operations in a multi-pass structure&lt;/li&gt;
&lt;li&gt;explaining all the tools required to implement relatively complex layouts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-381/clay_layout.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jendrikillner.com/gtc-2025/&#34; target=&#34;_blank&#34; id=&#34;GTC 2025&#34;&gt;GTC 2025&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;GTC is happening March 17-21, virtually and in San Jose. Presenting the latest breakthroughs in generative AI, accelerated computing, simulation technology, and more.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://nvda.ws/4aAcg3k&#34; target=&#34;_blank&#34;&gt;Register&lt;/a&gt; for free to enter my RTX 6000 Ada giveaway&lt;/li&gt;
&lt;li&gt;This post contains more details and my session recommendations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-380/gtc_banner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://simonschreibt.de/gat/infinity-nikki-shadow/&#34; target=&#34;_blank&#34; id=&#34;Infinity Nikki: Mysterious Shadow Drop&#34;&gt;Infinity Nikki: Mysterious Shadow Drop&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a look at the special case shadow handling for Infinity Nikki&lt;/li&gt;
&lt;li&gt;discusses the various shadow systems, how they interact with other features and limitations&lt;/li&gt;
&lt;li&gt;explains how many unique case systems can help to achieve game design requirements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-381/nikki_overview.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250303032602/https://simonschreibt.de/gat/infinity-nikki-shadow/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://enginearchitecture.org/2025.htm&#34; target=&#34;_blank&#34; id=&#34;Call for Submissions&#34;&gt;Call for Submissions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;REAC 2025 is looking for talk submissions until March 28&lt;/li&gt;
&lt;li&gt;the paper describes what topics the organizers are looking for and how to apply&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-381/reac_2025.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250303015923/https://enginearchitecture.org/2025.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/playlist?list=PLMLurvdlOpWO_jDP_l0ix1hz0BXEBwAFc&#34; target=&#34;_blank&#34; id=&#34;[video] Vulkanised 2025&#34;&gt;[video] Vulkanised 2025&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video recordings of Vulkanised 2025 talks have been released&lt;/li&gt;
&lt;li&gt;covers a large number of topics from updates to HLSL, neural networks, swap chain management to GPU-driven command generation&lt;/li&gt;
&lt;li&gt;slides are available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-381/vulkanised-2025.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://vulkan.org/events/vulkanised-2025&#34; style=&#34;color:white;&#34;&gt;slides &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20250303035255/https://vulkan.org/events/vulkanised-2025&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=8FCgLGa76yU&amp;amp;list=PLMLurvdlOpWO_jDP_l0ix1hz0BXEBwAFc&amp;amp;index=30&#34; target=&#34;_blank&#34; id=&#34;[video] Vulkanised 2025: Device-Generated Commands in Vulkan - Ricardo Garcia&#34;&gt;[video] Vulkanised 2025: Device-Generated Commands in Vulkan - Ricardo Garcia&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk provides an introduction to the Vulkan Device-Generated Commands API&lt;/li&gt;
&lt;li&gt;explains the steps required on the C++ side to record and execute commands&lt;/li&gt;
&lt;li&gt;covering command buffer management, synchronization, API restrictions as well as limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-381/vulkan_device_recorded_commands.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=5y1Oin7CcI4&#34; target=&#34;_blank&#34; id=&#34;[video] How Game Engines Make Shaders Easy&#34;&gt;[video] How Game Engines Make Shaders Easy&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains the shader abstractions that can be found in Unity but are missing in Godot&lt;/li&gt;
&lt;li&gt;provides an open-source implementation that aims to re-implement certain features for compute shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-381/godot_compute_shaders.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://tensara.org/&#34; target=&#34;_blank&#34; id=&#34;tensara&#34;&gt;tensara&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a platform similar to Leetcode for CUDA applications&lt;/li&gt;
&lt;li&gt;provides challenges and allows developers to submit and compare implementations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-381/leetcode_cuda.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250303031401/https://tensara.org/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for supporting this series&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 380 - February 23rd, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-380/</link>
      <pubDate>Sun, 23 Feb 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-380/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.abolishcrlf.org/2025/02/17/HLSLState.html&#34; target=&#34;_blank&#34; id=&#34;State of HLSL: February 2025&#34;&gt;State of HLSL: February 2025&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents the latest development in HLSL development&lt;/li&gt;
&lt;li&gt;shows that first basic HLSL shaders can be compiled in clang mainline&lt;/li&gt;
&lt;li&gt;provides an overview of upcoming HLSL language revisions and upcoming changes&lt;/li&gt;
&lt;li&gt;additionally introduces that public HLSL meetings are taking place reguarly&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-380/clangd-vim.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250224025028/https://www.abolishcrlf.org/2025/02/17/HLSLState.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0014/01/02/&#34; target=&#34;_blank&#34; id=&#34;GPU Friendly Laplacian Texture Blending&#34;&gt;GPU Friendly Laplacian Texture Blending&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a new blending method to smoothly blend textures and materials while preserving local contrast and texture details without ghosting or blurring&lt;/li&gt;
&lt;li&gt;presented techniques uses simple image processing and computational photography techniques without additional preprecessong steps&lt;/li&gt;
&lt;li&gt;WebGL demo is provided&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-380/laplacian.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250219173717/https://jcgt.org/published/0014/01/02/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/sdf&#34; target=&#34;_blank&#34; id=&#34;Signed Distance Fields&#34;&gt;Signed Distance Fields&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post gives an introduction into Signed Distance Functions&lt;/li&gt;
&lt;li&gt;providing a high level overview of the technique and what can be created using them&lt;/li&gt;
&lt;li&gt;additionally provides information on where to find further information&lt;/li&gt;
&lt;li&gt;as well how to modify functions for further effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-380/sdf.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250219034921/https://mini.gmshaders.com/p/sdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=EkiKPqGgIt8&#34; target=&#34;_blank&#34; id=&#34;[video] Godot 4: Raymarching, part 1 (tutorial)&#34;&gt;[video] Godot 4: Raymarching, part 1 (tutorial)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial provides an overview of the Raymarching algorithmn&lt;/li&gt;
&lt;li&gt;then presents a walkthrough on how to implement the technique in Godot shading language&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-380/ray_marching.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://simonschreibt.de/gat/infinity-nikki-one-way-window&#34; target=&#34;_blank&#34; id=&#34;Infinity Nikki: One-way Window&#34;&gt;Infinity Nikki: One-way Window&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a couple of small optimizations Infinity Nikki&lt;/li&gt;
&lt;li&gt;presents how windows are only one-sided&lt;/li&gt;
&lt;li&gt;additionally presents how animations stop when outside the view range&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-380/one_sided_window.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250224030312/https://simonschreibt.de/gat/infinity-nikki-one-way-window/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jiha-kim.github.io/posts/introduction-to-stochastic-calculus&#34; target=&#34;_blank&#34; id=&#34;Introduction to Stochastic Calculus&#34;&gt;Introduction to Stochastic Calculus&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an introductionn into Stochastic Calculus&lt;/li&gt;
&lt;li&gt;explains developing applications in the field&lt;/li&gt;
&lt;li&gt;starts the explanation from a statistics calculus examples and expands to more advanced examples&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-380/brownian_motion.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250224030351/https://jiha-kim.github.io/posts/introduction-to-stochastic-calculus/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://chickensoft.games/blog/display-scaling&#34; target=&#34;_blank&#34; id=&#34;Display Scaling in Godot 4&#34;&gt;Display Scaling in Godot 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a detail discussion of considerations when designing UI for various devices and screens&lt;/li&gt;
&lt;li&gt;explains the different resolutions and scale factors that appliaction developers need to know&lt;/li&gt;
&lt;li&gt;presents practical examples of various ways to deal with the challenges&lt;/li&gt;
&lt;li&gt;shows which Godot tools are available to help&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-380/display_resolution.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250224030637/https://chickensoft.games/blog/display-scaling/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jendrikillner.com/gtc-2025/&#34; target=&#34;_blank&#34; id=&#34;GTC 2025&#34;&gt;GTC 2025&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;GTC is happening March 17-21, virtually and in San Jose. Presenting the latest breakthroughs in generative AI, accelerated computing, simulation technology, and more.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://nvda.ws/4aAcg3k&#34; target=&#34;_blank&#34;&gt;Register&lt;/a&gt; for free to enter my RTX 6000 Ada giveaway&lt;/li&gt;
&lt;li&gt;This post contains more details and my session recommendations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-380/gtc_banner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ludicon.com/castano/blog/2025/02/gpu-texture-compression-everywhere&#34; target=&#34;_blank&#34; id=&#34;GPU Texture Compression Everywhere&#34;&gt;GPU Texture Compression Everywhere&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides the history of compressing textures on the GPU into block compressed formats&lt;/li&gt;
&lt;li&gt;discusses the various challanges of getting this working reliable on various Vulkan devices and drivers&lt;/li&gt;
&lt;li&gt;additionally presents how it can be achived on D3D12, OpenGL and Metal&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-380/Android-Vulkan-RenderToBlockTexelView.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250221171955/https://www.ludicon.com/castano/blog/2025/02/gpu-texture-compression-everywhere/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.phoronix.com/news/LLVM-20-SPIR-V-Official-Target&#34; target=&#34;_blank&#34; id=&#34;LLVM 20 Promotes SPIR-V To Official Backend, Enabled By Default&#34;&gt;LLVM 20 Promotes SPIR-V To Official Backend, Enabled By Default&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article introduces that LLVM has added offical support for SPIR-V as a backend generation target&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-380/clang-spirv.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250222134305/https://www.phoronix.com/news/LLVM-20-SPIR-V-Official-Target&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=oETErEkFICE&#34; target=&#34;_blank&#34; id=&#34;[video] Indirect Rendering // Intermediate OpenGL Series&#34;&gt;[video] Indirect Rendering // Intermediate OpenGL Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an overview on how to use glMultiDrawElementsIndirect to draw a scene&lt;/li&gt;
&lt;li&gt;provides a discussion of the technique and shows how to integrate it into an exisitng OpenGL application&lt;/li&gt;
&lt;li&gt;showing how it affects the C++ and GLSL shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-380/multi_draw_indirect.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=R6nO6dUdO4Y&#34; target=&#34;_blank&#34; id=&#34;[video] Light Color &amp;amp; Shadow - Custom Lighting Models - Episode 6&#34;&gt;[video] Light Color &amp;amp; Shadow - Custom Lighting Models - Episode 6&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial continues the development of a custom lighting model in Unity and Unreal Engine&lt;/li&gt;
&lt;li&gt;in this part it presents how to intercept light information from the main scene light&lt;/li&gt;
&lt;li&gt;additionally presents how to improve ambient lighting&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-380/lighting_model.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://x.com/keithoconor&#34; target=&#34;_blank&#34;&gt;Keith O&amp;rsquo;Conor&lt;/a&gt; for supporting this series&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 379 - February 16th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-379/</link>
      <pubDate>Sun, 16 Feb 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-379/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://danielchasehooper.com/posts/code-animated-rick/&#34; target=&#34;_blank&#34; id=&#34;Learn Shader Programming with Rick and Morty&#34;&gt;Learn Shader Programming with Rick and Morty&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article provides a step-by-step tutorial that presents how to create the head of Rick using a pixel shader.&lt;/li&gt;
&lt;li&gt;Introduces the necessary SDF operations slowly and shows how to combine them with animation.&lt;/li&gt;
&lt;li&gt;Each step is presented as interactive shader challenges that can be edited to learn along the way.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-379/rick_head_shaders.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250212135936/https://danielchasehooper.com/posts/code-animated-rick/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=pxp68A6Wlfg&#34; target=&#34;_blank&#34; id=&#34;[video] Simple Lighting Model - Custom Lighting Models - Episode 4&#34;&gt;[video] Simple Lighting Model - Custom Lighting Models - Episode 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video tutorial presents how to combine specular, diffuse, and ambient lighting to create a custom shading model.&lt;/li&gt;
&lt;li&gt;Presents the various stages, how to ensure correct vector spaces, and the effect of various parameters.&lt;/li&gt;
&lt;li&gt;The implementation is shown using Unity and Unreal visual shader graphs.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-379/light_model.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0014/01/01/&#34; target=&#34;_blank&#34; id=&#34;Chromaticity preserving analytic approximations to the CIE color matching functions&#34;&gt;Chromaticity preserving analytic approximations to the CIE color matching functions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The paper presents an analytic approximation for the CIE 1931 color space and the more modern CIE 170-1:2006.&lt;/li&gt;
&lt;li&gt;Shows the approximation process and how it compares against existing approximations.&lt;/li&gt;
&lt;li&gt;Source code is available in C++ and Python.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-379/color_space_approximation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250210174811/https://jcgt.org/published/0014/01/01/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2025/02/09/Surface-Stable-Fractal-Dither-on-Playdate/&#34; target=&#34;_blank&#34; id=&#34;Surface-Stable Fractal Dither on Playdate&#34;&gt;Surface-Stable Fractal Dither on Playdate&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article provides a deep dive into getting Surface-Stable Fractal Dither running on a simple 1-bit display console.&lt;/li&gt;
&lt;li&gt;Presents a breakdown of how the dithering algorithm is created from various passes.&lt;/li&gt;
&lt;li&gt;Discusses various software rasterization methods and how they compare to the GPU reference implementation.&lt;/li&gt;
&lt;li&gt;Additionally, it presents several applied optimization steps and how they affect performance.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-379/09-pd-dither-scanline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250210124912/https://aras-p.info/blog/2025/02/09/Surface-Stable-Fractal-Dither-on-Playdate/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://simonschreibt.de/gat/anno-1800-shadows-of-beauty&#34; target=&#34;_blank&#34; id=&#34;Anno 1800: Shadows of Beauty&#34;&gt;Anno 1800: Shadows of Beauty&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article discusses a small trick used by Anno 1800 that always aligns the sun&amp;rsquo;s direction relative to the camera.&lt;/li&gt;
&lt;li&gt;Presents how much it affects the scene&amp;rsquo;s beauty as it prevents worst-case lighting setups.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-379/anno-shadows.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250217042419/https://simonschreibt.de/gat/anno-1800-shadows-of-beauty/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://docs.google.com/presentation/d/1v4B4lnHIuhZdzAKGQkMZQtnPrlAtMaY5NmjQVfYgimM/edit#slide=id.p&#34; target=&#34;_blank&#34; id=&#34;WebGPU - Notes&#34;&gt;WebGPU - Notes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The presentation covers a complete walkthrough on using WebGPU from JavaScript.&lt;/li&gt;
&lt;li&gt;Starts by explaining the basics and proceeds from a high-level overview into the implementation details.&lt;/li&gt;
&lt;li&gt;Covers the full rendering pipeline, including shader authoring.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-379/webgpu-classes.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250217043235/https://docs.google.com/presentation/d/1v4B4lnHIuhZdzAKGQkMZQtnPrlAtMaY5NmjQVfYgimM/edit#slide=id.p&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=9h13FPuBvM8&#34; target=&#34;_blank&#34; id=&#34;[video] Ray Tracing Harmonic Functions (Extended Talk)&#34;&gt;[video] Ray Tracing Harmonic Functions (Extended Talk)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The talk introduces a novel sphere tracing algorithm tailored for harmonic functions.&lt;/li&gt;
&lt;li&gt;The method allows for larger step sizes than traditional ray marching.&lt;/li&gt;
&lt;li&gt;Demonstrates applications in visualizing surfaces reconstructed from point clouds and polygon soups without requiring linear solves or mesh extraction.&lt;/li&gt;
&lt;li&gt;Expands visualization capabilities to handle nonplanar polygons with holes and complex mathematical objects such as knots and links.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-379/harmonic_functions.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/gfxreconstruct-startup-time-improved-by-10x/&#34; target=&#34;_blank&#34; id=&#34;Vulkan GPU-assisted validation startup time improved by &amp;gt;10X&#34;&gt;Vulkan GPU-assisted validation startup time improved by &amp;gt;10X&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post describes how LunarG optimized the startup time of GPU Assisted Validation.&lt;/li&gt;
&lt;li&gt;Combines driver hints and more fine-grained validation code and moves logic to later stages in the application lifecycle.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-379/Validation-Startup-Improvement-1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250131072123/https://www.lunarg.com/gfxreconstruct-startup-time-improved-by-10x/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://seb-v.github.io/optimization/update/2025/01/20/Fast-GPU-Matrix-multiplication.html&#34; target=&#34;_blank&#34; id=&#34;Fast GPU Matrix multiplication&#34;&gt;Fast GPU Matrix multiplication&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article provides a detailed walkthrough of optimizing a 4096x4096 matrix multiplication for RDNA3.&lt;/li&gt;
&lt;li&gt;Shows how to calculate theoretical expectations for performance and compares against all tested implementations.&lt;/li&gt;
&lt;li&gt;Presents how a highly optimized routine can be 50x faster than a naive implementation.&lt;/li&gt;
&lt;li&gt;Always present hardware performance captures and explain how to understand them and optimize the bottlenecks observed.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-379/graph42.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250215124919/https://seb-v.github.io/optimization/update/2025/01/20/Fast-GPU-Matrix-multiplication.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.rastergrid.com/blog/gpu-tech/2025/02/the-vulkan-sc-emulation-driver-stack/&#34; target=&#34;_blank&#34; id=&#34;The Vulkan SC Emulation driver stack &#34;&gt;The Vulkan SC Emulation driver stack &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post introduces the Vulkan Safety Critical Emulation stack.&lt;/li&gt;
&lt;li&gt;Shows how the stack interacts between the user code and driver code.&lt;/li&gt;
&lt;li&gt;Is meant to guide developers in developing applications by emulating SC constraints on consumer hardware.&lt;/li&gt;
&lt;li&gt;The source code for the stack is open source.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-379/fi_vksc_emu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250217043420/https://www.rastergrid.com/blog/gpu-tech/2025/02/the-vulkan-sc-emulation-driver-stack/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://mastodon.gamedev.place/@cort&#34; target=&#34;_blank&#34;&gt;Cort Stratton&lt;/a&gt; for supporting this series&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 378 - February 9th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-378/</link>
      <pubDate>Sun, 09 Feb 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-378/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/nvidia-rtx-mega-geometry-now-available-with-new-vulkan-samples&#34; target=&#34;_blank&#34; id=&#34;NVIDIA RTX Mega Geometry Now Available with New Vulkan Samples&#34;&gt;NVIDIA RTX Mega Geometry Now Available with New Vulkan Samples&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post announces the release of the Mega Geometry SDK&lt;/li&gt;
&lt;li&gt;This entry provides a summary of the various samples and libraries&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-378/NVIDIA-RTX-Mega-Geometry.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250210041230/https://developer.nvidia.com/blog/nvidia-rtx-mega-geometry-now-available-with-new-vulkan-samples&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/NVIDIA-RTX/RTXNTC&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Neural Texture Compression SDK&#34;&gt;NVIDIA Neural Texture Compression SDK&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Nvidia released a beta version of Neural Texture Compression&lt;/li&gt;
&lt;li&gt;A neural network is used to compress all textures of a PBR set together&lt;/li&gt;
&lt;li&gt;This can either be decompressed at sample time or be transcoded into BC during texture load&lt;/li&gt;
&lt;li&gt;The readme provides a brief explanation and example data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-378/ntc-pipeline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250207135451/https://github.com/NVIDIA-RTX/RTXNTC&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aashishrai3799.github.io/uvgs&#34; target=&#34;_blank&#34; id=&#34;UVGS: Reimagining Unstructured 3D Gaussian Splatting using UV Mapping&#34;&gt;UVGS: Reimagining Unstructured 3D Gaussian Splatting using UV Mapping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The paper introduces turning 3D Gaussian Splatting from unstructured into structured structure using spherical UV mapping&lt;/li&gt;
&lt;li&gt;The paper presents how the mapping allows existing models to better operate on the image formats&lt;/li&gt;
&lt;li&gt;Shows improvements in compression and quality&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-378/uvgs-teaser.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250210041626/https://aashishrai3799.github.io/uvgs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/problem_increasing_triangle_density/&#34; target=&#34;_blank&#34; id=&#34;Solving the Dense Geometry Problem&#34;&gt;Solving the Dense Geometry Problem&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This blog post introduces the release of the AMD Dense Geometry Compression Format SDK&lt;/li&gt;
&lt;li&gt;The format aims to be the equivalent to what BC/ETC is for textures but instead for geometry&lt;/li&gt;
&lt;li&gt;Explains limitations of the current solution and how the format aims to overcome it&lt;/li&gt;
&lt;li&gt;The SDK contains how to compress, view, and decompress the data (both on the CPU and GPU)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-378/increasing_triangle_density.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250207003501/https://gpuopen.com/learn/problem_increasing_triangle_density/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=xgDtQpu_pog&#34; target=&#34;_blank&#34; id=&#34;[video] Unity | How to Create Dynamic World Changing Effects&#34;&gt;[video] Unity | How to Create Dynamic World Changing Effects&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video tutorial presents how to implement a world space-based effect that allows blending between different world rendering styles&lt;/li&gt;
&lt;li&gt;Implementation is done using a mix of visual shading language as well as HLSL&lt;/li&gt;
&lt;li&gt;Presents simple shapes as well as texture-driven outlines&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-378/world_effect.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.unrealengine.com/en-US/tech-blog/game-engines-and-shader-stuttering-unreal-engines-solution-to-the-problem&#34; target=&#34;_blank&#34; id=&#34;Game engines and shader stuttering: Unreal Engine&amp;#39;s solution to the problem&#34;&gt;Game engines and shader stuttering: Unreal Engine&amp;#39;s solution to the problem&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post provides a high-level discussion of why Unreal Engine games commonly encounter micro stutter related to shader loading&lt;/li&gt;
&lt;li&gt;Discusses the various systems Unreal Engine contains and introduces new methods to reduce the problem&lt;/li&gt;
&lt;li&gt;Additionally, it discusses available debug options that should help developers verify the efficiency and introduce solutions during development&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-378/Unreal_Engine_PSO_Precaching.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=eRVRioN4GwA&#34; target=&#34;_blank&#34; id=&#34;[video] What Kind of Math Should Game Developers Know?&#34;&gt;[video] What Kind of Math Should Game Developers Know?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video visually explains the most common mathematical concepts that are encountered in game development&lt;/li&gt;
&lt;li&gt;Covers interpolation, trigonometry, vectors, dot-product, matrices, quaternions&lt;/li&gt;
&lt;li&gt;Presents each concept with practical and visual examples&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-378/math_game_devs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.boristhebrave.com/2025/02/04/generating-tilesets-with-stable-diffusion/&#34; target=&#34;_blank&#34; id=&#34;Generating Tilesets with Stable Diffusion&#34;&gt;Generating Tilesets with Stable Diffusion&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article discusses a technique that uses Stable Diffusion to generate a tileset&lt;/li&gt;
&lt;li&gt;Discusses how to drive the model to generate the transition tiles between a known set of materials&lt;/li&gt;
&lt;li&gt;Presents the limitations and issues with the developed model&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-378/tileset_intermediate.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250205163912/https://www.boristhebrave.com/2025/02/04/generating-tilesets-with-stable-diffusion/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://anki3d.org/simplified-pipeline-barriers/&#34; target=&#34;_blank&#34; id=&#34;Simplified pipeline barriers&#34;&gt;Simplified pipeline barriers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article presents a simplified model for Vulkan and D3D12 Extended Barriers&lt;/li&gt;
&lt;li&gt;Discusses both textures and buffers and how different hardware interacts with them&lt;/li&gt;
&lt;li&gt;The code for the implementations is available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-378/anki_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250210042405/https://anki3d.org/simplified-pipeline-barriers/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.maximeheckel.com/posts/post-processing-as-a-creative-medium&#34; target=&#34;_blank&#34; id=&#34;Post-Processing Shaders as a Creative Medium&#34;&gt;Post-Processing Shaders as a Creative Medium&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article presents a series of post-processing effects that build upon the same underlying techniques&lt;/li&gt;
&lt;li&gt;Each effect is explained and presented with detailed visualizations&lt;/li&gt;
&lt;li&gt;Additionally, each effect is demonstrated as a real-time implementation that can be interacted with directly on the website&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-378/post_processing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250209100152/https://blog.maximeheckel.com/posts/post-processing-as-a-creative-medium/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=yps8SGA02ZE&#34; target=&#34;_blank&#34; id=&#34;[Video] Texture Mapping // Vulkan For Beginners #18&#34;&gt;[Video] Texture Mapping // Vulkan For Beginners #18&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This video tutorial series covers the implementation of a Vulkan renderer&lt;/li&gt;
&lt;li&gt;In this episode, you will learn how to create, load, and sample a texture&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-378/Vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://x.com/aortizelguero&#34; target=&#34;_blank&#34;&gt;Angel Ortiz&lt;/a&gt; for supporting this series&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 377 - February 2nd, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-377/</link>
      <pubDate>Sun, 02 Feb 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-377/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jarllarsson.github.io/gen/gunkraymarcher.html&#34; target=&#34;_blank&#34; id=&#34;Raymarching The Gunk&#34;&gt;Raymarching The Gunk&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the detailed article provides an overview of the implementation of the Goo-like in &amp;ldquo;The Gunk&amp;rdquo;&lt;/li&gt;
&lt;li&gt;explains the underlying voxel-based implementation, how it&amp;rsquo;s represented and interacts with gameplay&lt;/li&gt;
&lt;li&gt;describes how it&amp;rsquo;s authored and rendered integrated into UE&lt;/li&gt;
&lt;li&gt;additionally presents how the effect is rendered using a ray-marching-based approach&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-377/view_gunk_final.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250202235312/https://jarllarsson.github.io/gen/gunkraymarcher.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/nvpro-samples/vk_lod_clusters&#34; target=&#34;_blank&#34; id=&#34;Sample for cluster-based continuous level of detail rasterization or ray tracing &#34;&gt;Sample for cluster-based continuous level of detail rasterization or ray tracing &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the sample is part of Nvidia RTX Mega Geometry and presents how to use a continuous Level of detail through mesh clustering&lt;/li&gt;
&lt;li&gt;presents how to rasterize using mesh shaders and use the new VK_NV_cluster_acceleration_structure for raytracing&lt;/li&gt;
&lt;li&gt;provided documentation provides a detailed walkthrough of the sample code and the underlying implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-377/lod_clusters.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250204034354/https://github.com/nvpro-samples/vk_lod_clusters&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1783_directx_12_agility_sdk_17160-preview_explained&#34; target=&#34;_blank&#34; id=&#34;DirectX 12 Agility SDK 1.716.0-preview Explained&#34;&gt;DirectX 12 Agility SDK 1.716.0-preview Explained&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an overview of the latest released features in the D3D12 Agility SDK update&lt;/li&gt;
&lt;li&gt;the SDK introduces Shader hash bypass, reduced alignment requirements for buffers, as well as the recreation of resources at specific virtual addresses&lt;/li&gt;
&lt;li&gt;as well as shared links to updates to the d3d12 video encoding functionality&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-377/d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250203014110/https://asawicki.info/news_1783_directx_12_agility_sdk_17160-preview_explained&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=6epfhRqv2xo&#34; target=&#34;_blank&#34; id=&#34;[video] Calculating Specular Highlights - Custom Lighting Models - Episode 3&#34;&gt;[video] Calculating Specular Highlights - Custom Lighting Models - Episode 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;continuation of custom lighting model using Unreal and Unity&lt;/li&gt;
&lt;li&gt;this part covers Phong, Blinn formula, as well as  Half Lambert, diffuse&lt;/li&gt;
&lt;li&gt;implementation is shown using visual shader language&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-377/light_model.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/agility-sdk-1-716-0-new-d3d12-video-encode-features/&#34; target=&#34;_blank&#34; id=&#34;Agility SDK 1.716.0-preview: New D3D12 Video Encode Features&#34;&gt;Agility SDK 1.716.0-preview: New D3D12 Video Encode Features&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents new features for D3D12 video encoding&lt;/li&gt;
&lt;li&gt;allows developers to provide additional hints (such as motion vectors or dirty rectangles) to speed up the encoder processing&lt;/li&gt;
&lt;li&gt;also now allows frames to be split into sub-regions with individual progress tracking and data access control&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-377/d3d12_encoder.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250204035020/https://devblogs.microsoft.com/directx/agility-sdk-1-716-0-new-d3d12-video-encode-features/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://shader-slang.org/blog/2025/01/30/coop-vec-available/&#34; target=&#34;_blank&#34; id=&#34;Now Available: Matrix-vector operations using tensor cores in Slang&#34;&gt;Now Available: Matrix-vector operations using tensor cores in Slang&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;first, experimental support for Cooperative vectors has been added to Slang&lt;/li&gt;
&lt;li&gt;the blog post explains the features and presents two examples of how to use it&lt;/li&gt;
&lt;li&gt;additionally provides a link to the SPIR-V extension&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-377/tensor_core.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250204035543/http://shader-slang.org/blog/2025/01/30/coop-vec-available/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/nvpro-samples/nv_cluster_lod_builder&#34; target=&#34;_blank&#34; id=&#34;nv_cluster_lod_builder&#34;&gt;nv_cluster_lod_builder&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Nvidia open-sourced a mesh processing library that allows meshes to be split into meshlets and calculate LOD cluster that allows for continues LODs&lt;/li&gt;
&lt;li&gt;documentation explains the API, how the implementation approaches the decimation and split steps&lt;/li&gt;
&lt;li&gt;additionally, explain the limitations (there are a number of them at this time)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-377/lod_generate.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://x.com/aortizelguero&#34; target=&#34;_blank&#34;&gt;Angel Ortiz&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 376 - January 26th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-376/</link>
      <pubDate>Sun, 26 Jan 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-376/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=HPqGaIMVuLs&#34; target=&#34;_blank&#34; id=&#34;[video] Surface-Stable Fractal Dithering&#34;&gt;[video] Surface-Stable Fractal Dithering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video provides a detailed explanation of the work done to apply fractal dithering on objects stably.&lt;/li&gt;
&lt;li&gt;It starts with a review of dithering concepts, discussing various methods and issues.&lt;/li&gt;
&lt;li&gt;The technique is developed from the start, showing the various stages of implementation along the way.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-376/stable_dithering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=4Y5eKDwZ4GY&#34; target=&#34;_blank&#34; id=&#34;[video] Vertex Lighting - Custom Lighting Models - Episode 2&#34;&gt;[video] Vertex Lighting - Custom Lighting Models - Episode 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video explains how to implement a custom lighting model in Unity/Unreal.&lt;/li&gt;
&lt;li&gt;This part focuses on the integration of vertex-based shading.&lt;/li&gt;
&lt;li&gt;Implementation is shown using a visual shader authoring workflow.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-376/vertex_shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://greenbit-jobs.notion.site/senior-c-programmer?pvs=4&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior C&amp;#43;&amp;#43; Programmers&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Relocate, Remote, ideally based in the UK&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;At GREEN-BiT, we&amp;rsquo;re on a mission - we&amp;rsquo;re building a new, innovative software to help reduce the carbon impact of software, first starting with games. We want to empower developers with a Green SDK and toolset to democratise performance optimisation. We&amp;rsquo;re currently looking for purpose-driven and talented Senior Programmers to join our team and work on developing our groundbreaking tools!&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/GreenbitLogo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;greenbit_week_376&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://m4xc.dev/blog/surfel-maintenance/&#34; target=&#34;_blank&#34; id=&#34;Surfel Maintenance for Global Illumination&#34;&gt;Surfel Maintenance for Global Illumination&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post discusses the process of a world-space-based surfel distribution pipeline.&lt;/li&gt;
&lt;li&gt;It provides a high-level overview of the concept and implementation.&lt;/li&gt;
&lt;li&gt;It shows how the various stages have been implemented and presents performance results.&lt;/li&gt;
&lt;li&gt;Additionally, it provides pointers to further information.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-376/surfels.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250126024953/https://m4xc.dev/blog/surfel-maintenance/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphics-programming.org/blog/fft-bloom-optimized-to-the-bone-in-nabla&#34; target=&#34;_blank&#34; id=&#34;FFT Bloom Optimized to the Bone in Nabla&#34;&gt;FFT Bloom Optimized to the Bone in Nabla&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post explains FFT optimization for bloom effects in the Nabla engine.&lt;/li&gt;
&lt;li&gt;It covers acceleration via convolution in the frequency domain.&lt;/li&gt;
&lt;li&gt;It presents detailed overviews of the optimizations applied.&lt;/li&gt;
&lt;li&gt;Additionally, it looks at what could be further improved in the future.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-376/convolved-fft.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250125100706/https://graphics-programming.org/blog/fft-bloom-optimized-to-the-bone-in-nabla&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2025/01/24/tinybvh-manual-basic-use&#34; target=&#34;_blank&#34; id=&#34;tinybvh – Manual – Basic Use&#34;&gt;tinybvh – Manual – Basic Use&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article provides an overview of how to use the tinybvh open-source library.&lt;/li&gt;
&lt;li&gt;It provides a high-level overview of the API and design considerations.&lt;/li&gt;
&lt;li&gt;It then shows how to use the basic API and how to refit the BVHs for animation support.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-376/tiny_bvh.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250124130718/https://jacco.ompf2.com/2025/01/24/tinybvh-manual-basic-use/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://x.com/JasperBekkers/&#34; target=&#34;_blank&#34;&gt;Jasper Bekkers&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 375 - January 19th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-375/</link>
      <pubDate>Sun, 19 Jan 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-375/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/Radiometry2Photometry.html&#34; target=&#34;_blank&#34; id=&#34;Radiometry, part 2: Spectra and photometry&#34;&gt;Radiometry, part 2: Spectra and photometry&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article explains spectral radiometric quantities.&lt;/li&gt;
&lt;li&gt;Presents how it relates to human perception to create photometric quantities.&lt;/li&gt;
&lt;li&gt;Additionally covers techniques to efficiently deal with spectral rendering implementations.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-375/fluorescent_tube.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250119094656/https://momentsingraphics.de/Radiometry2Photometry.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/KhronosGroup/Vulkan-Samples/tree/main/samples/extensions/dynamic_rendering_local_read&#34; target=&#34;_blank&#34; id=&#34;Dynamic Rendering local read&#34;&gt;Dynamic Rendering local read&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The Vulkan example presents how to use the VK_KHR_dynamic_rendering_local_read and VK_KHR_dynamic_rendering extensions to replace the need for render passes.&lt;/li&gt;
&lt;li&gt;Explains how dynamic rendering compares to Vulkan 1.0.&lt;/li&gt;
&lt;li&gt;Shows how local reads can be used to implement a deferred renderer with a composition pass.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-375/vulkan_local_read.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250116210014/https://github.com/KhronosGroup/Vulkan-Samples/tree/main/samples/extensions/dynamic_rendering_local_read&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=pzAZ0xjWDv8&#34; target=&#34;_blank&#34; id=&#34;[video] Particle System Using The Compute Shader // Intermediate OpenGL Series&#34;&gt;[video] Particle System Using The Compute Shader // Intermediate OpenGL Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video provides a high-level introduction to compute shaders with OpenGL.&lt;/li&gt;
&lt;li&gt;Shows how to apply the concepts to the implementation of a particle system.&lt;/li&gt;
&lt;li&gt;Explains how to implement the shader, connect it to OpenGL, and execute the work.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-375/opengl_particles.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://johnaustin.io/articles/2025/issues-with-cielab-and-perceptual-brightness&#34; target=&#34;_blank&#34; id=&#34;Issues with Color Spaces and Perceptual Brightness&#34;&gt;Issues with Color Spaces and Perceptual Brightness&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post calls out that color spaces such as CIELAB don&amp;rsquo;t offer perceptual brightness for all colors.&lt;/li&gt;
&lt;li&gt;Explains how certain colors appear brighter to humans than others at the same hue.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-375/color_based.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250119134258/https://johnaustin.io/articles/2025/issues-with-cielab-and-perceptual-brightness&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://martinfullerblog.wordpress.com/2025/01/13/massaging-the-shader-compiler-to-emit-optimum-instructions/&#34; target=&#34;_blank&#34; id=&#34;Massaging the Shader Compiler to emit Optimum Instructions&#34;&gt;Massaging the Shader Compiler to emit Optimum Instructions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post provides examples of how different HLSL implementations cause very different codegen results.&lt;/li&gt;
&lt;li&gt;Shows that unintuitive implementations can be required to allow the compiler to map to native instructions.&lt;/li&gt;
&lt;li&gt;Suggests that compiler pattern matching hinders performance and it could be beneficial to expose native instructions as intrinsics.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-375/shader_compiler_output.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250113190603/https://martinfullerblog.wordpress.com/2025/01/13/massaging-the-shader-compiler-to-emit-optimum-instructions/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://nvda.ws/3BdxdU5&#34; target=&#34;_blank&#34; id=&#34;Free Learn OpenUSD Trainings&#34;&gt;Free Learn OpenUSD Trainings&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;NVIDIA released an interactive and free course about learning OpenUSD concepts.&lt;/li&gt;
&lt;li&gt;Structured into modules, the course combines written guides and video tutorials for a comprehensive learning experience.&lt;/li&gt;
&lt;li&gt;Hands-on Jupyter notebooks let you explore practical examples and deepen your understanding of key topics.&lt;/li&gt;
&lt;li&gt;Just released: Applied Concepts courses on composition arcs, asset structure principles, and data exchange pipelines.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-359/openusd.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240920142029/https://www.nvidia.com/en-us/learn/learning-path/openusd/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=5KRxyvdjpVU&#34; target=&#34;_blank&#34; id=&#34;[video] RTX Mega Geometry Is A Big Deal... But What Does It Actually Do?&#34;&gt;[video] RTX Mega Geometry Is A Big Deal... But What Does It Actually Do?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video provides an overview of the Mega Geometry technique by Nvidia.&lt;/li&gt;
&lt;li&gt;Aims to solve the issue of streaming clusters into acceleration structures without BVH rebuilds.&lt;/li&gt;
&lt;li&gt;Discusses new possibilities of the presented demos.&lt;/li&gt;
&lt;li&gt;Currently an Nvidia-only API.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-375/mega_geometry.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=heZ82I0_pyA&#34; target=&#34;_blank&#34; id=&#34;[video] Full Introduction to Compact Poisson Filters for Fast Fluid Simulation -- SIGGRAPH 2022&#34;&gt;[video] Full Introduction to Compact Poisson Filters for Fast Fluid Simulation -- SIGGRAPH 2022&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video recording of a talk that discusses Compact Poisson Filters to allow fluid simulations for interactive applications.&lt;/li&gt;
&lt;li&gt;Explains the solver technique and implementation steps in detail.&lt;/li&gt;
&lt;li&gt;Presents performance and demos of the technique.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-375/fluid_simulation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gotibo.fr/blog/dissolve-shader-vfx-s-bread-and-butter&#34; target=&#34;_blank&#34; id=&#34;Dissolve shader: VFX&amp;#39;s bread and butter&#34;&gt;Dissolve shader: VFX&amp;#39;s bread and butter&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post explains how to implement a dissolve shader.&lt;/li&gt;
&lt;li&gt;Presents examples of different methods for the implementation and compares them visually.&lt;/li&gt;
&lt;li&gt;Additionally provides examples of the technique when applied to particles.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-375/dissolve_effect.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250119125659/https://gotibo.fr/blog/dissolve-shader-vfx-s-bread-and-butter&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-141-17-1-2025&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 141 (17.1.2025)&#34;&gt;Technically Art: Issue 141 (17.1.2025)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Collection of blue sky posts covering tech art.&lt;/li&gt;
&lt;li&gt;Contains videos and pictures of in-progress projects.&lt;/li&gt;
&lt;li&gt;Additionally contains a number of links to tutorials and posts covering a variety of topics.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-375/technically_art_141.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250122033524/https://halisavakis.com/technically-art-issue-141-17-1-2025/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2025/01/19/the-hidden-cost-of-shader-instructions&#34; target=&#34;_blank&#34; id=&#34;The hidden cost of shader instructions&#34;&gt;The hidden cost of shader instructions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post discusses different classes of HLSL instructions and associated costs on RDNA hardware.&lt;/li&gt;
&lt;li&gt;Presents how many instructions are required for the various patterns.&lt;/li&gt;
&lt;li&gt;Additionally presents insights into other patterns that can affect the performance of generated code.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-375/rdna_isa.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250119154702/https://interplayoflight.wordpress.com/2025/01/19/the-hidden-cost-of-shader-instructions/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://x.com/JasperBekkers/&#34; target=&#34;_blank&#34;&gt;Jasper Bekkers&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 374 - January 12th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-374/</link>
      <pubDate>Sun, 12 Jan 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-374/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=II_rnWU7Uq8&amp;amp;t=1s&#34; target=&#34;_blank&#34; id=&#34;[video] From Texture to Display: The Color Pipeline of a Pixel in Unreal Engine | Unreal Fest 2024&#34;&gt;[video] From Texture to Display: The Color Pipeline of a Pixel in Unreal Engine | Unreal Fest 2024&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A detailed discussion of the rendering color pipeline in Unreal Engine&lt;/li&gt;
&lt;li&gt;Explains color spaces, color encoding, and various stages of color conversion&lt;/li&gt;
&lt;li&gt;Presents post-processing effects and the importance of proper color handling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-374/color_pipeline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/Radiometry1Backwards.html&#34; target=&#34;_blank&#34; id=&#34;Radiometry, part 1: I got it backwards&#34;&gt;Radiometry, part 1: I got it backwards&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;An explanation of radiometry concepts such as Radiance, Solid angle, Irradiance, Radiant flux, and Radiant energy&lt;/li&gt;
&lt;li&gt;Ties these concepts together in the context of a renderer&amp;rsquo;s camera&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-374/solid_angle.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250112235123/https://momentsingraphics.de/Radiometry1Backwards.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lisyarus.github.io/blog/posts/exploring-ways-to-mipmap-alpha-tested-textures.html&#34; target=&#34;_blank&#34; id=&#34;Exploring ways to mipmap alpha-tested textures&#34;&gt;Exploring ways to mipmap alpha-tested textures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A look at various techniques to generate mipmaps for vegetation textures&lt;/li&gt;
&lt;li&gt;Discusses the problem of losing coverage and shape with classical downsampling techniques&lt;/li&gt;
&lt;li&gt;Compares various techniques and suggests their pros and cons&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-374/flower-outlines.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250112234958/https://lisyarus.github.io/blog/posts/exploring-ways-to-mipmap-alpha-tested-textures.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://georgi-nikolov.com/blog/webgpu-sponza-frame-analysis&#34; target=&#34;_blank&#34; id=&#34;WebGPU Sponza Demo — Frame Rendering Analysis&#34;&gt;WebGPU Sponza Demo — Frame Rendering Analysis&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;An overview of techniques defining a WebGPU implementation&lt;/li&gt;
&lt;li&gt;Provides a high-level overview of the shader pipeline, culling, shadow rendering, and more&lt;/li&gt;
&lt;li&gt;Discusses light implementation, skybox, screen space reflection, etc.&lt;/li&gt;
&lt;li&gt;Source code is available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-374/webgpu_sponza.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://georgi-nikolov.com/blog/webgpu-sponza-frame-analysis&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wolf.nereid.pl/posts/image-viewer&#34; target=&#34;_blank&#34; id=&#34;Viewing images&#34;&gt;Viewing images&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A detailed discussion on the complexity of image format loading and display&lt;/li&gt;
&lt;li&gt;Insights into the image format landscape and tone mapping HDR formats correctly&lt;/li&gt;
&lt;li&gt;Additional topics include cursor rendering and optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-374/color_wheel.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250112221650/https://wolf.nereid.pl/posts/image-viewer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://nvda.ws/3BdxdU5&#34; target=&#34;_blank&#34; id=&#34;Free Learn OpenUSD Trainings&#34;&gt;Free Learn OpenUSD Trainings&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;NVIDIA released an interactive and free course about learning OpenUSD concepts&lt;/li&gt;
&lt;li&gt;Structured into modules, the course combines written guides and video tutorials for a comprehensive learning experience.&lt;/li&gt;
&lt;li&gt;Hands-on Jupyter notebooks let you explore practical examples and deepen your understanding of key topics.&lt;/li&gt;
&lt;li&gt;Just released: Applied Concepts courses on composition arcs, asset structure principles, and data exchange pipelines&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-359/openusd.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240920142029/https://www.nvidia.com/en-us/learn/learning-path/openusd/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://keaukraine.medium.com/how-to-improve-msaa-performance-of-mtkview-4d5a13c00259&#34; target=&#34;_blank&#34; id=&#34;How to improve MSAA performance of MTKView&#34;&gt;How to improve MSAA performance of MTKView&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;An overview of different MSAA modes in the Metal API&lt;/li&gt;
&lt;li&gt;How to adjust the MTKView wrapper to create a memoryless MSAA target&lt;/li&gt;
&lt;li&gt;Shows the effect of this change on memory usage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-374/mtk_msaa.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250112233719/https://keaukraine.medium.com/how-to-improve-msaa-performance-of-mtkview-4d5a13c00259&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://martinfullerblog.wordpress.com/2025/01/06/dynamic-resolution-scaling-on-pc/&#34; target=&#34;_blank&#34; id=&#34;Dynamic Resolution Scaling (DRS) on PC&#34;&gt;Dynamic Resolution Scaling (DRS) on PC&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Challenges developers face when implementing DRS on PC&lt;/li&gt;
&lt;li&gt;Covers hardware and OS interaction, latency, and user input variability&lt;/li&gt;
&lt;li&gt;Briefly discusses approaches to solving these issues on PC&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-374/drs_pc.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250106115229/https://martinfullerblog.wordpress.com/2025/01/06/dynamic-resolution-scaling-on-pc/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=i6NpPdX4M4w&#34; target=&#34;_blank&#34; id=&#34;[video] Uniform Buffers // Vulkan For Beginners #17&#34;&gt;[video] Uniform Buffers // Vulkan For Beginners #17&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Video tutorial on implementing uniform buffers in a Vulkan application&lt;/li&gt;
&lt;li&gt;Explanation based on code changes from previous iterations&lt;/li&gt;
&lt;li&gt;Shows how to use the concepts to implement a 3D flythrough camera&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-374/uniform_buffer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/enabling-neural-rendering-in-directx-cooperative-vector-support-coming-soon/&#34; target=&#34;_blank&#34; id=&#34;Enabling Neural Rendering in DirectX: Cooperative Vector Support Coming Soon&#34;&gt;Enabling Neural Rendering in DirectX: Cooperative Vector Support Coming Soon&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Announcement of Cooperative Vector Support extensions for D3D&lt;/li&gt;
&lt;li&gt;Exposes hardware-accelerated matrix by vector operations&lt;/li&gt;
&lt;li&gt;Enables access to Tensor Cores with neural shading in new RTX50 series GPUs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-374/intricate-palace-rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250112235535/https://devblogs.microsoft.com/directx/enabling-neural-rendering-in-directx-cooperative-vector-support-coming-soon/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.nvidia.com/en-us/geforce/news/reflex-2-even-lower-latency-gameplay-with-frame-warp/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Reflex 2 With New Frame Warp Technology Reduces Latency In Games By Up To 75%&#34;&gt;NVIDIA Reflex 2 With New Frame Warp Technology Reduces Latency In Games By Up To 75%&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Discusses updates to the Reflex 2 system&lt;/li&gt;
&lt;li&gt;Explains how changing camera views are applied by reprojecting the camera into the new camera space&lt;/li&gt;
&lt;li&gt;Shows how unfilled areas are filled through neural reprojection techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-374/nvidia-reflex-2-frame-warp-explained.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250112235623/https://www.nvidia.com/en-us/geforce/news/reflex-2-even-lower-latency-gameplay-with-frame-warp/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Stephen Hill for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 373 - January 5th, 2025</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-373/</link>
      <pubDate>Sun, 05 Jan 2025 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-373/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zone.dog/braindump/spline_fields/&#34; target=&#34;_blank&#34; id=&#34;Spline Distance Fields&#34;&gt;Spline Distance Fields&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses a technique to use splines to drive the creation of terrain meshes&lt;/li&gt;
&lt;li&gt;including the history and a discussion of how to generate meshes from the splines&lt;/li&gt;
&lt;li&gt;additionally, present screenshots of an in-development game that uses a system based on the idea&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-373/spline_terrain_textured.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241231224319/https://zone.dog/braindump/spline_fields/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://c0de517e.com/018_rthistory.htm&#34; target=&#34;_blank&#34; id=&#34;Recollecting the history of offline rendering.&#34;&gt;Recollecting the history of offline rendering.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a look back at the development of offline rendering techniques&lt;/li&gt;
&lt;li&gt;presenting which techniques got used, how they changed over time, and when the first path tracers appeared&lt;/li&gt;
&lt;li&gt;additionally providing additional thought as to why things developed the way they did&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-373/juggler.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250105234930/http://c0de517e.com/018_rthistory.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/pablode/materialx-interior-mapping&#34; target=&#34;_blank&#34; id=&#34;MaterialX Interior Mapping&#34;&gt;MaterialX Interior Mapping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the project presents how to implement Material Mapping using MaterialX&lt;/li&gt;
&lt;li&gt;the included demo video shows the effect&lt;/li&gt;
&lt;li&gt;code is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-373/material_x_interior_mapping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250105235447/https://github.com/pablode/materialx-interior-mapping&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://davidmathlogic.com/colorblind/&#34; target=&#34;_blank&#34; id=&#34;We see colors differently&#34;&gt;We see colors differently&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses how colorblindness affects how humans perceive colors&lt;/li&gt;
&lt;li&gt;presents a tool that aims to replicate how different limitations affect the appearance&lt;/li&gt;
&lt;li&gt;includes links to color palettes that maintain contrast for full vision and those with colorblindness&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-373/color_palette.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250102122246/https://davidmathlogic.com/colorblind/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.ludicon.com/castano/blog/2024/12/tools-for-gpu-codec-development&#34; target=&#34;_blank&#34; id=&#34;Tools for GPU Codec Development&#34;&gt;Tools for GPU Codec Development&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents an overview of the tools used to develop the Spark codecs&lt;/li&gt;
&lt;li&gt;discussing the importance of tooling and automation for efficient development&lt;/li&gt;
&lt;li&gt;additionally discusses how A/B testing algorithm changes are integrated into the codebase&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-373/codec_development.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250105235800/http://www.ludicon.com/castano/blog/2024/12/tools-for-gpu-codec-development/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=mSsqy0gYoHw&#34; target=&#34;_blank&#34; id=&#34;[video] Shader Creation for Everyone! - An intro to Ben Cloward&amp;#39;s YouTube channel&#34;&gt;[video] Shader Creation for Everyone! - An intro to Ben Cloward&amp;#39;s YouTube channel&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an overview of the various series covering shader development&lt;/li&gt;
&lt;li&gt;provides a quick overview of each of the series available on the channel&lt;/li&gt;
&lt;li&gt;additionally discusses the author&amp;rsquo;s background&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-373/shader_channel.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zeux.io/2024/12/31/year-of-independence/&#34; target=&#34;_blank&#34; id=&#34;Year of independence&#34;&gt;Year of independence&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides the author&amp;rsquo;s experience of working independently after leaving Roblox&lt;/li&gt;
&lt;li&gt;discusses changes to mesh optimizer, gltf-pack&lt;/li&gt;
&lt;li&gt;additionally discusses the viability of sustainable open-source development models&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-373/meshoptimizer_3.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20250102235551/https://zeux.io/2024/12/31/year-of-independence/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.parallax.fyi/&#34; target=&#34;_blank&#34;&gt;Nia Bickford&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 372 - December 29, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-372/</link>
      <pubDate>Sun, 29 Dec 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-372/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-2412-12/&#34; target=&#34;_blank&#34; id=&#34;December 13th, 2024 PIX 2412.12 – Texture/Buffer/Visualizer improvements, Work Graph Shader Debugging, and many Timing Capture improvements&#34;&gt;December 13th, 2024 PIX 2412.12 – Texture/Buffer/Visualizer improvements, Work Graph Shader Debugging, and many Timing Capture improvements&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses changes in the latest release of Pix&lt;/li&gt;
&lt;li&gt;adds support for VRS shading rate visualization, shader graph debugging, as well as improved custom shader support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-372/pix-vrs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241213204339/https://devblogs.microsoft.com/pix/pix-2412-12/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://fgiesen.wordpress.com/2024/12/24/unorm-and-snorm-to-float-hardware-edition/&#34; target=&#34;_blank&#34; id=&#34;UNORM and SNORM to float, hardware edition&#34;&gt;UNORM and SNORM to float, hardware edition&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a detailed discussion of how hardware implements the UNORM/SNORM conversion rules&lt;/li&gt;
&lt;li&gt;explaining special cases and how to deal with those&lt;/li&gt;
&lt;li&gt;additionally, it presents a C++ implementation of the presented concepts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-372/unorm_hardware.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241230014417/https://fgiesen.wordpress.com/2024/12/24/unorm-and-snorm-to-float-hardware-edition/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0013/02/01/&#34; target=&#34;_blank&#34; id=&#34;Efficient Motion Blurred Spheres Using Texture Mapping&#34;&gt;Efficient Motion Blurred Spheres Using Texture Mapping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a model of applying motion blur to spheres in a 2.5D setting&lt;/li&gt;
&lt;li&gt;implemented by pre-generating an atlas of blurred spheres of varying radius and lighting angles and compositing these into the scene&lt;/li&gt;
&lt;li&gt;explains the implementation and limitations&lt;/li&gt;
&lt;li&gt;runnable example and source code is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-372/sphere_blur.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241120185651/https://jcgt.org/published/0013/02/01/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.yiningkarlli.com/2024/12/moana-2.html&#34; target=&#34;_blank&#34; id=&#34;Moana 2&#34;&gt;Moana 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses changes done to the Disney Hyperion render since the prequel to the movie&lt;/li&gt;
&lt;li&gt;provides published research papers on the discussed techniques&lt;/li&gt;
&lt;li&gt;then presents the main challenges of the Moana 2 production and how they solved them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-372/moana2.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241224141650/https://blog.yiningkarlli.com/2024/12/moana-2.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.forwardscattering.org/post/62&#34; target=&#34;_blank&#34; id=&#34;Transforming normals: adjugate transpose vs inverse transpose&#34;&gt;Transforming normals: adjugate transpose vs inverse transpose&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses the difference between adjugate transpose vs inverse transpose of normals&lt;/li&gt;
&lt;li&gt;explains how it behaves on shading normals&lt;/li&gt;
&lt;li&gt;presents the visual results of different methods&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-372/sign_det_adj_transpose_reflected.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241230220858/http://www.forwardscattering.org/post/62&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=-n05Tdcny7A&#34; target=&#34;_blank&#34; id=&#34;[video] Game Engine Programming 074.1 - Brief introduction to importance sampling&#34;&gt;[video] Game Engine Programming 074.1 - Brief introduction to importance sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an introduction into the mathematics of importance sampling&lt;/li&gt;
&lt;li&gt;discusses how samples can approximate integrals&lt;/li&gt;
&lt;li&gt;then applies the ideas to the diffuse shading integral&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-372/importance_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://theorangeduck.com/page/noise-neural-networks-flow-matching&#34; target=&#34;_blank&#34; id=&#34;Noise, Neural Networks, and Flow-Matching&#34;&gt;Noise, Neural Networks, and Flow-Matching&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains and shows how noise applied to a curve fitting application changes the results&lt;/li&gt;
&lt;li&gt;additionally presents the same in a multi-modality model using flow matching&lt;/li&gt;
&lt;li&gt;concluding that &amp;ldquo;noise cancels out, signal adds up&amp;rdquo; cannot always be relied upon anymore&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-372/out_flow_matching.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241229155535/https://theorangeduck.com/page/noise-neural-networks-flow-matching&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://huggingface.co/blog/train_memory&#34; target=&#34;_blank&#34; id=&#34;Visualize and understand GPU memory in PyTorch &#34;&gt;Visualize and understand GPU memory in PyTorch &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents tools available to visualize and understand memory usage in PyTorch&lt;/li&gt;
&lt;li&gt;explains how to estimate memory usage before running a workload&lt;/li&gt;
&lt;li&gt;additionally provides a small tool to help with the estimation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-372/pytorch_memory_simple_profile.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241224180732/https://huggingface.co/blog/train_memory&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.parallax.fyi/&#34; target=&#34;_blank&#34;&gt;Nia Bickford&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 371 -  December 21st, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-371/</link>
      <pubDate>Sat, 21 Dec 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-371/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=k2SBZSm2mOw&#34; target=&#34;_blank&#34; id=&#34;[video] Inside Indiana Jones and the Great Circle: The Ray Tracing Breakdown&#34;&gt;[video] Inside Indiana Jones and the Great Circle: The Ray Tracing Breakdown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a round-table interview with two developers of the team&lt;/li&gt;
&lt;li&gt;covers which techniques are using ray-tracing implementations, how they are implemented, and what is affected most&lt;/li&gt;
&lt;li&gt;discusses trade-offs of requiring hardware support as well as next steps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-371/indiana_jones.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=XPbhNbuxw2w&#34; target=&#34;_blank&#34; id=&#34;[video] Create your own Cubemap // Intermediate OpenGL Series&#34;&gt;[video] Create your own Cubemap // Intermediate OpenGL Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how to convert panoramic images with a 360-degree view to a cube map&lt;/li&gt;
&lt;li&gt;presents the fundamentals of the involved coordinate space conversions and related math&lt;/li&gt;
&lt;li&gt;additionally also presents how to implement the conversion using OpenGL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-371/cubemap_projection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/baldurk/renderdoc/releases/tag/v1.36&#34; target=&#34;_blank&#34; id=&#34;renderdoc - Version v1.36&#34;&gt;renderdoc - Version v1.36&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post announces that DXIL debugging and raytracing are now supported in RenderDoc&lt;/li&gt;
&lt;li&gt;shows how DXIL is integrated and existing limitations&lt;/li&gt;
&lt;li&gt;Ray tracing debugging is implemented using API debug features that are not yet implemented on all drivers&lt;/li&gt;
&lt;li&gt;additionally, it contains a long list of fixes and improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-371/renderDocRayTracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://momentsingraphics.de/PathTracingLectures.html&#34; target=&#34;_blank&#34; id=&#34;Path tracing lectures&#34;&gt;Path tracing lectures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an introduction to the path tracing lectures available from the TU Delft&lt;/li&gt;
&lt;li&gt;discussed what material is covered and the limitations&lt;/li&gt;
&lt;li&gt;additionally discusses the technology used to implement the example implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-371/path_tracing_slide.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ciechanow.ski/moon/&#34; target=&#34;_blank&#34; id=&#34;Moon&#34;&gt;Moon&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the very detailed article covers the moon (physics, appearance, &amp;hellip;) in great detail&lt;/li&gt;
&lt;li&gt;shows curves of astronomical objects, effects of physics, projections, appearance, and much more&lt;/li&gt;
&lt;li&gt;each example is accompanied by videos or interactive explorations of the concepts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-371/moon_projection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241223133312/https://ciechanow.ski/moon/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.nvidia.com/labs/toronto-ai/3DGUT/&#34; target=&#34;_blank&#34; id=&#34;3DGUT: Enabling Distorted Cameras and Secondary Rays in Gaussian Splatting&#34;&gt;3DGUT: Enabling Distorted Cameras and Secondary Rays in Gaussian Splatting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a reformulation of Gaussian Splatting to allow nonlinear camera projections&lt;/li&gt;
&lt;li&gt;explains the concepts of Unscented Transform and how splatting can be reformulated using the method&lt;/li&gt;
&lt;li&gt;additionally presents how the method allows the same representation to be used with raytracing implementations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-371/3dgut_teaser.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241218104725/https://research.nvidia.com/labs/toronto-ai/3DGUT/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=DYWTw19_8r4&#34; target=&#34;_blank&#34; id=&#34;[video] Introducing Clay - High Performance UI Layout in C&#34;&gt;[video] Introducing Clay - High Performance UI Layout in C&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a detailed introduction to Clay, a C-based layout engine for high-performance immediate mode UI&lt;/li&gt;
&lt;li&gt;start by explaining the concepts, capabilities, and design goals&lt;/li&gt;
&lt;li&gt;presents a walkthrough on how to develop a small starter application, showing code iterations along the way&lt;/li&gt;
&lt;li&gt;all examples are accompanied by various animated visualizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-371/clay.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/adalbertobruno/&#34; target=&#34;_blank&#34;&gt;Adalberto Bruno&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 370 -  December 15th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-370/</link>
      <pubDate>Sun, 15 Dec 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-370/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.romainguy.dev/posts/2024/you-are-going-to-need-it&#34; target=&#34;_blank&#34; id=&#34;You Are Going to Need It&#34;&gt;You Are Going to Need It&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents the difficulty of creating microbenchmarks&lt;/li&gt;
&lt;li&gt;shows the example in a simple example by looking at the generated code at different levels of the optimization pipeline&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-370/benchmark.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241214200052/https://www.romainguy.dev/posts/2024/you-are-going-to-need-it/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wickedengine.net/2024/12/wicked-engines-graphics-in-2024/&#34; target=&#34;_blank&#34; id=&#34;Wicked Engine’s graphics in 2024&#34;&gt;Wicked Engine’s graphics in 2024&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an overview of the graphics changes done to the Wicked Engine&lt;/li&gt;
&lt;li&gt;covers forward rendering, meshlet-based rendering, visibility buffers, shadow rendering, wetness, and more&lt;/li&gt;
&lt;li&gt;provides reasons, limitations, and performance numbers for the various aspects of the engine changes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-370/wicked_engine.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241216210649/https://wickedengine.net/2024/12/wicked-engines-graphics-in-2024/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://terathon.com/blog/transforming-normals.html&#34; target=&#34;_blank&#34; id=&#34;Transforming Normals&#34;&gt;Transforming Normals&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a detailed discussion of the adjugate matrix, an alternative form of transform for normals&lt;/li&gt;
&lt;li&gt;discusses why normals need special handling under transformation visually&lt;/li&gt;
&lt;li&gt;explains how geometric algebra allows the derivation of this behavior in a consistent framework&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-370/transforming_normals.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241214163845/http://terathon.com/blog/transforming-normals.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.stefanpijnacker.nl/article/directx12-resources-key-concepts/&#34; target=&#34;_blank&#34; id=&#34;DirectX 12 Resources – Key Concepts&#34;&gt;DirectX 12 Resources – Key Concepts&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article summarizes the main concepts of D3D12 to provide a high level of understanding&lt;/li&gt;
&lt;li&gt;covers Resources, Views, Heaps, Sub resources, and different buffer types&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-370/d3d12_concepts.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241211191939/https://www.stefanpijnacker.nl/article/directx12-resources-key-concepts/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dl.acm.org/doi/10.1145/3680528.3687591&#34; target=&#34;_blank&#34; id=&#34;A Statistical Approach to Monte Carlo Denoising&#34;&gt;A Statistical Approach to Monte Carlo Denoising&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an investigation into the Monte Carlo rendering method using statistical methods&lt;/li&gt;
&lt;li&gt;the proposed model does not use any pre-trained data and is instead applied at runtime&lt;/li&gt;
&lt;li&gt;presents the derivation and comparison against existing denoising models&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-370/statistical_noise.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241206135314/https://dl.acm.org/doi/10.1145/3680528.3687591&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/abs/2412.09548&#34; target=&#34;_blank&#34; id=&#34;Meshtron: High-Fidelity, Artist-Like 3D Mesh Generation at Scale&#34;&gt;Meshtron: High-Fidelity, Artist-Like 3D Mesh Generation at Scale&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a paper presents a novel mesh generation model that can generate meshes with up to 64K faces from point cloud data&lt;/li&gt;
&lt;li&gt;provides an overview of autoregressive mesh generation that is the foundation of the model&lt;/li&gt;
&lt;li&gt;explains the model development process and presents the results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-370/point_cloud_meshgen.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241214182328/https://arxiv.org/pdf/2412.09548&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://modal.com/gpu-glossary&#34; target=&#34;_blank&#34; id=&#34;GPU Glossary&#34;&gt;GPU Glossary&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the website covered a glossary of standard terms found in graphics programming in a single location&lt;/li&gt;
&lt;li&gt;broken down into Device Hardware, Device Software, and Host Software&lt;/li&gt;
&lt;li&gt;explains concepts such as Warp Scheduler, Tensor Cores, Cuda, Thread Blocks, and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-370/gpu_glossary.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241214005339/https://modal.com/gpu-glossary&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=K3ZHzJ_bhaI&#34; target=&#34;_blank&#34; id=&#34;[video] Ray Tracing Has a Noise Problem&#34;&gt;[video] Ray Tracing Has a Noise Problem&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents a look at raytracing quality in various games&lt;/li&gt;
&lt;li&gt;shows comparisons mainly focusing on shadows and reflections&lt;/li&gt;
&lt;li&gt;some of the games featured are Cyberpunk 2077, Alan Wake II and Star Wars Outlaws&lt;/li&gt;
&lt;li&gt;additionally shows the effect of denoising techniques on the quality and appearance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-370/ray_tracing_quality.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 369 -  December 8th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-369/</link>
      <pubDate>Sun, 08 Dec 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-369/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=kOkfC5fLfgE&#34; target=&#34;_blank&#34; id=&#34;[video] Coding Adventure: Rendering Fluids&#34;&gt;[video] Coding Adventure: Rendering Fluids&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a detailed walkthrough on the process of rendering water based on the results of a water particle simulation&lt;/li&gt;
&lt;li&gt;starts from an empty scene, covering mesh generation, raymarching, shading as well as interactions with the environment&lt;/li&gt;
&lt;li&gt;additionally, it presents how to render foam and bubbles to the water&amp;rsquo;s surface&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-369/water_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.froyok.fr/blog/2024-12-refraction&#34; target=&#34;_blank&#34; id=&#34;Refracting Pixels&#34;&gt;Refracting Pixels&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of different games that implement refraction into their rendering pipelines&lt;/li&gt;
&lt;li&gt;compares the different approaches, discussing advantages and disadvantages&lt;/li&gt;
&lt;li&gt;additionally presents how this interacts with anti-aliasing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-369/refraction_unfurl.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241204021109/https://www.froyok.fr/blog/2024-12-refraction/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://c0de517e.com/017_vegetation_part2.htm&#34; target=&#34;_blank&#34; id=&#34;From the archive: Making a greener grass.&#34;&gt;From the archive: Making a greener grass.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post focuses on the visual side of grass rendering in Call of Duty Black Ops 4&lt;/li&gt;
&lt;li&gt;shows different stages of the exploration and impact of the various components&lt;/li&gt;
&lt;li&gt;discusses various hacks to simulate the effect of real-life effects within the restrictions of the runtime grass&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-369/grass_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241209055311/http://c0de517e.com/017_vegetation_part2.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://poiw.github.io/publication/gffe&#34; target=&#34;_blank&#34; id=&#34;GFFE: G-buffer Free Frame Extrapolation for Low-latency Real-time Rendering&#34;&gt;GFFE: G-buffer Free Frame Extrapolation for Low-latency Real-time Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an image upscaler that is designed to extrapolate from color, depth, and motion vector inputs to a variable number of frames&lt;/li&gt;
&lt;li&gt;discusses the implementation of the motion estimation, background collection, adaptive rendering windows, and shading correction network modules&lt;/li&gt;
&lt;li&gt;presents performance and quality against existing techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-369/g_buffer_free_extrapolation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241203152916/https://poiw.github.io/publication/gffe/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/playlist?list=PLLaly9x9rqjsXLW1tMFruyh_657sh8epk&#34; target=&#34;_blank&#34; id=&#34;[video] Graphics Programming Conference 2024&#34;&gt;[video] Graphics Programming Conference 2024&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of videos from the Graphics Programming Conference in Breda has been released&lt;/li&gt;
&lt;li&gt;covers a large number of topics such as Porting Games, Vulkan best practices, Shader Occupancy, Occlusion culling, and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-369/gpc.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=MgCR-Kky628&#34; target=&#34;_blank&#34; id=&#34;[video] Gigi: A Platform for Rapid Graphics Development and Code Generation&#34;&gt;[video] Gigi: A Platform for Rapid Graphics Development and Code Generation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk presents an overview of the Gigi Platform&lt;/li&gt;
&lt;li&gt;a tool and code generation that aims to improve programmer productivity by enabling rapid authoring of shader effects&lt;/li&gt;
&lt;li&gt;shows how the tool was developed, what features it has, and what has been implemented using the platform so far&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-369/GigiViewer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=jusWW2pPnA0&#34; target=&#34;_blank&#34; id=&#34;[video] Rendering Tiny Glades With Entirely Too Much Ray Marching&#34;&gt;[video] Rendering Tiny Glades With Entirely Too Much Ray Marching&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk presents an overview of the rendering pipeline in Tiny Glades&lt;/li&gt;
&lt;li&gt;covers GPU-driven rendering, sky rendering, GI implementation, shadows, refractions, Depth Of Field, and more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-369/TinyGlade.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.hexaquo.at/pages/understanding-godot-light-shaders-and-light-calculations-by-implementing-a-toon-light-shader&#34; target=&#34;_blank&#34; id=&#34;Understanding Godot Light Shaders and Light Calculations by Implementing a Toon Light Shader &#34;&gt;Understanding Godot Light Shaders and Light Calculations by Implementing a Toon Light Shader &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses Godot Light Shaders&lt;/li&gt;
&lt;li&gt;presents where this type slots into the pipeline and what possibilities it enables&lt;/li&gt;
&lt;li&gt;presents a walkthrough on how to implement tool shading into the Godot pipeline&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-369/toon_shading_godot.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241209055005/http://www.hexaquo.at/pages/understanding-godot-light-shaders-and-light-calculations-by-implementing-a-toon-light-shader/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/news/press/khronos-streamlines-development-and-deployment-of-gpu-accelerated-applications-with-vulkan-1.4&#34; target=&#34;_blank&#34; id=&#34;Khronos Streamlines Development and Deployment of GPU-Accelerated Applications with Vulkan 1.4&#34;&gt;Khronos Streamlines Development and Deployment of GPU-Accelerated Applications with Vulkan 1.4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post announces the release of Vulkan 1.4&lt;/li&gt;
&lt;li&gt;increased guaranteed limits, required extensions, as well as&lt;/li&gt;
&lt;li&gt;addition presents improvements to copying data while rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-369/Vulkan_1_4.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241204120324/https://www.khronos.org/news/press/khronos-streamlines-development-and-deployment-of-gpu-accelerated-applications-with-vulkan-1.4&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@tomysshadow/fixing-the-loading-in-myst-iv-revelation-86e2814afbf8&#34; target=&#34;_blank&#34; id=&#34;Fixing the Loading in Myst IV: Revelation&#34;&gt;Fixing the Loading in Myst IV: Revelation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a walkthrough of how the author approached optimizing loading issues in Myst IV&lt;/li&gt;
&lt;li&gt;shows how he detected the bottlenecks, replaced texture loading logic&lt;/li&gt;
&lt;li&gt;contains a comparison of the performance of various image-loading libraries&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-369/myst.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241208064634/https://medium.com/@tomysshadow/fixing-the-loading-in-myst-iv-revelation-86e2814afbf8&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/robert-wallis&#34; target=&#34;_blank&#34;&gt;Robert Wallis&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 368 -  December 1st, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-368/</link>
      <pubDate>Sun, 01 Dec 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-368/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mamoniem.com/behind-the-pretty-frames-detroit-become-human&#34; target=&#34;_blank&#34; id=&#34;Behind the Pretty Frames: Detroit Become Human&#34;&gt;Behind the Pretty Frames: Detroit Become Human&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a very detailed look at how a frame in Detroit Become Human is being drawn&lt;/li&gt;
&lt;li&gt;presents insights into how the shading pipeline is implemented, details into implementation for the various resource passes, vertex formats, interactions with animations, effects implementation, etc&lt;/li&gt;
&lt;li&gt;additionally shows a flow graph of how a full frame is structured with images of the resources involved in each pass&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-368/DetroitBecomeHuman.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241128045807/https://mamoniem.com/behind-the-pretty-frames-detroit-become-human/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/eliemichel/SlangWebGPU&#34; target=&#34;_blank&#34; id=&#34;Slang x WebGPU&#34;&gt;Slang x WebGPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the example project presents an example of how to use Slang with WebGPU&lt;/li&gt;
&lt;li&gt;shows how to use CMake integration to compile shaders from slang to WGSL (WebGPU shading language)&lt;/li&gt;
&lt;li&gt;additionally shows how to use the reflection API to generate binding helpers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-368/SlangWebGPU.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241202032453/https://github.com/eliemichel/SlangWebGPU&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://docs.google.com/document/d/1MyvFNjbaJl62v_RJ3oWhGIsUIOY74XYlcqlYHbZQriM/edit?tab=t.0&#34; target=&#34;_blank&#34; id=&#34;Fixing The GPU&#34;&gt;Fixing The GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;In the working document, Timothy Lottes records and suggests solutions for GPU programming issues in a compute shader context&lt;/li&gt;
&lt;li&gt;covers many problematic areas, from performance hints over shader compiler improvements, caching related, buffer access patterns, and much more&lt;/li&gt;
&lt;li&gt;provides example cases that offer insights into current shortcomings, performance issues, and shader compiler bugs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-368/FixingTheGPU.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241202032745/https://docs.google.com/document/d/1MyvFNjbaJl62v_RJ3oWhGIsUIOY74XYlcqlYHbZQriM/edit?tab=t.0#heading=h.qc665jb4qw9d&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rust-gpu.github.io/blog/optimizing-matmul&#34; target=&#34;_blank&#34; id=&#34;Optimizing a Rust GPU matmul kernel&#34;&gt;Optimizing a Rust GPU matmul kernel&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to use RustGPU to compile a compute kernel&lt;/li&gt;
&lt;li&gt;discusses the implementation details and interactions with the ecosystem&lt;/li&gt;
&lt;li&gt;additionally presents how RustGPU enables shader logic to be run on the CPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-368/RustGPU.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241130100630/https://rust-gpu.github.io/blog/optimizing-matmul/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dubiousconst282.github.io/2024/10/03/voxel-ray-tracing/&#34; target=&#34;_blank&#34; id=&#34;A guide to fast voxel ray tracing using sparse 64-trees&#34;&gt;A guide to fast voxel ray tracing using sparse 64-trees&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the efficient implementation of Sparse Voxel Octrees&lt;/li&gt;
&lt;li&gt;presents how to build the required tree structures and traverse the created trees&lt;/li&gt;
&lt;li&gt;additionally provides advice to improve debuggability, performance, and robustness of the initial implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-368/voxel_tree_heatmap.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241009163926/https://dubiousconst282.github.io/2024/10/03/voxel-ray-tracing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/arm-community-blogs/b/graphics-gaming-and-vr-blog/posts/immortalis-g925-the-fragment-prepass&#34; target=&#34;_blank&#34; id=&#34;Hidden Surface Removal in Immortalis-G925: The Fragment Prepass&#34;&gt;Hidden Surface Removal in Immortalis-G925: The Fragment Prepass&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article presents the new Fragment Pre-pass hardware implementation available in upcoming Arm GPUs&lt;/li&gt;
&lt;li&gt;explains how the technique works, what it enables, and what are the limitations&lt;/li&gt;
&lt;li&gt;additionally, it discusses best practices for performance and shows some performance numbers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-368/ArmSurfaceRemoval.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241202033355/https://community.arm.com/arm-community-blogs/b/graphics-gaming-and-vr-blog/posts/immortalis-g925-the-fragment-prepass&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jendrikillner.com/books/&#34; target=&#34;_blank&#34; id=&#34;My recommended Books&#34;&gt;My recommended Books&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;My list of recommendations for books&lt;/li&gt;
&lt;li&gt;Covering Computer graphics, engine design, algorithms, collision detection, as well as knowledge management&lt;/li&gt;
&lt;li&gt;contains resources for beginners as well as advanced programmers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-368/book-recommendations.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241130045255/https://www.jendrikillner.com/books/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bsky.app/profile/bartwr.bsky.social/post/3lbvaozvyyc2g&#34; target=&#34;_blank&#34; id=&#34;Differentiable Graphics with Slang.D for Appearance-Based Optimization&#34;&gt;Differentiable Graphics with Slang.D for Appearance-Based Optimization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A summary of the chapter Differentiable Graphics with Slang.D for Appearance-Based Optimization included in GPU Zen 3&lt;/li&gt;
&lt;li&gt;the article focuses on the practical usage of stochastic gradient descent and optimization from beginning to a working minification system for materials&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-368/downsampling.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241202033819/https://bsky.app/profile/bartwr.bsky.social/post/3lbvaozvyyc2g&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://30fps.net/pages/pixelart-scaling&#34; target=&#34;_blank&#34; id=&#34;A simple way to scale pixel art games&#34;&gt;A simple way to scale pixel art games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents insights into how to upscale retro pixel art games for higher resolutions than the source material&lt;/li&gt;
&lt;li&gt;The suggested solution is using nearest for vertical and linear for horizontal&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-368/bilinear_vs_nearest_scaling_comparison_larger.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241127204944/https://30fps.net/pages/pixelart-scaling/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/nvpro-samples/vk_minimal_latest&#34; target=&#34;_blank&#34; id=&#34;Modern Vulkan Application Sample&#34;&gt;Modern Vulkan Application Sample&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Vulkan code example presents how to use various modern Vulkan concepts to create compact sample applications&lt;/li&gt;
&lt;li&gt;presents how to use descriptor management, specialization constants, timeline semaphores, ImGui integration, etc.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-368/vulkan_start_app.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241202034319/https://github.com/nvpro-samples/vk_minimal_latest&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 367 -  November 24th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-367/</link>
      <pubDate>Sun, 24 Nov 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-367/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shader-slang.com/blog/2024/11/20/theres-a-lot-going-on-with-slang/&#34; target=&#34;_blank&#34; id=&#34;There’s a lot going on with Slang!&#34;&gt;There’s a lot going on with Slang!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog provides an overview of changes to the Slang shading system ecosystem&lt;/li&gt;
&lt;li&gt;Slang is now part of Khronos and adds support for Metal and WebGPU&lt;/li&gt;
&lt;li&gt;additionally, improved type system, Unicode, as well as atomic support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-367/slang_playground.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241123051034/https://shader-slang.com/blog/2024/11/20/theres-a-lot-going-on-with-slang/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.frost.kiwi/analytical-anti-aliasing/&#34; target=&#34;_blank&#34; id=&#34;AAA - Analytical Anti-Aliasing&#34;&gt;AAA - Analytical Anti-Aliasing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a look at various anti-aliasing techniques&lt;/li&gt;
&lt;li&gt;presents many interactive examples to demonstrate the techniques and allows experimentation with them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-367/antialiasing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241123031523/https://blog.frost.kiwi/analytical-anti-aliasing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/khronos-announces-vulkan-video-encode-av1-encode-quantization-map-extensions&#34; target=&#34;_blank&#34; id=&#34;Khronos Announces Vulkan Video Encode AV1 &amp;amp; Encode Quantization Map Extensions&#34;&gt;Khronos Announces Vulkan Video Encode AV1 &amp;amp; Encode Quantization Map Extensions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post announces the release of a new encode AV1 extension&lt;/li&gt;
&lt;li&gt;Vulkan Video now provides full decode AND encode acceleration for the H.264, H.265, and AV1 codec&lt;/li&gt;
&lt;li&gt;additionally presents an overview of the Encode Quantization Map extension and how it allows applications to better control the encoding quality&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-367/vulkan_video.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241122214002/https://www.khronos.org/blog/khronos-announces-vulkan-video-encode-av1-encode-quantization-map-extensions&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=QNN3JOI551A&#34; target=&#34;_blank&#34; id=&#34;[video] GPU driven rendering in AnKi 3D Engine&#34;&gt;[video] GPU driven rendering in AnKi 3D Engine&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk provides an overview of the GPU-based rendering implementation&lt;/li&gt;
&lt;li&gt;presents an overview of how the different stages of a frame are implemented&lt;/li&gt;
&lt;li&gt;covering scene representation, culling implementation, shadow rendering, mesh shading, and more&lt;/li&gt;
&lt;li&gt;additionally presents an overview of the frame performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-367/anki_gpu_driven_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://docs.google.com/presentation/d/1tsGjwZmP2mZBNyURNN4-XYsgJxfsG6omaC3w5ZQXzr4/edit#slide=id.g2155b36a3d3_0_0&#34; style=&#34;color:white;&#34;&gt;slides &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/presentations/2024/GPC24_Occupancy_explained.pdf&#34; target=&#34;_blank&#34; id=&#34;Occupancy explained through the AMD RDNA architecture&#34;&gt;Occupancy explained through the AMD RDNA architecture&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the slides for a talk given at the Graphics Programming Conference 2024 have been released&lt;/li&gt;
&lt;li&gt;provides an overview of AMD hardware execution patterns, what occupancy is, and how it affects performance&lt;/li&gt;
&lt;li&gt;the slides don&amp;rsquo;t have speaker notes, so following them is a bit difficult at times&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-367/rgp_latency_hiding.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241120130901/https://gpuopen.com/presentations/2024/GPC24_Occupancy_explained.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/cpu-performance-guide/cpu-performance-guide-part2/&#34; target=&#34;_blank&#34; id=&#34;CPU performance optimization guide – part 2&#34;&gt;CPU performance optimization guide – part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a high-level overview of how to use AMD profilers to investigate cache miss behavior&lt;/li&gt;
&lt;li&gt;explains the different available hardware counters and how to interpret the results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-367/cpu_performance_guide.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241123060552/https://gpuopen.com/learn/cpu-performance-guide/cpu-performance-guide-part2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://erfan-ahmadi.github.io/blog/Nabla/fif&#34; target=&#34;_blank&#34; id=&#34;Frames In Flight Explained&#34;&gt;Frames In Flight Explained&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the concept of in-flight frames in computer graphics applications&lt;/li&gt;
&lt;li&gt;shows how the execution pattern between CPU and GPU requires synchronization&lt;/li&gt;
&lt;li&gt;additionally discusses how it affects memory usage, latency, and execution performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-367/cpugpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241113022334/https://erfan-ahmadi.github.io/blog/Nabla/fif&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=RYm-M6KwuhI&#34; target=&#34;_blank&#34; id=&#34;[video] Vertex Buffers // Vulkan For Beginners #15&#34;&gt;[video] Vertex Buffers // Vulkan For Beginners #15&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how to set vertex buffers using Vulkan&lt;/li&gt;
&lt;li&gt;shows the implementation for allocation memory and uploading data for GPU access&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-367/vulkan_vertex_buffer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=JORUK7Ndlv4&#34; target=&#34;_blank&#34; id=&#34;[video] Game Engine Programming 073.1 - Sampling methods for pre-filtering diffuse Image Based Lighting&#34;&gt;[video] Game Engine Programming 073.1 - Sampling methods for pre-filtering diffuse Image Based Lighting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains the theory behind image-based lighting&lt;/li&gt;
&lt;li&gt;presents how to implement pre-filtering for the diffuse lighting component&lt;/li&gt;
&lt;li&gt;shows many visualizations of the involved steps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-367/diffuse_env_maps.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.chrome.com/blog/next-for-webgpu&#34; target=&#34;_blank&#34; id=&#34;What&amp;#39;s next for WebGPU&#34;&gt;What&amp;#39;s next for WebGPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an overview of what has been discussed for changes to WebGPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-367/webgpu_feature_whiteboard.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241123015225/https://developer.chrome.com/blog/next-for-webgpu&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://x.com/pedanticcoder&#34; target=&#34;_blank&#34;&gt;Steven Cannavan&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 366 -  November 17th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-366/</link>
      <pubDate>Sun, 17 Nov 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-366/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wkjarosz.github.io/SamplinSafari/&#34; target=&#34;_blank&#34; id=&#34;Sampling Safari&#34;&gt;Sampling Safari&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tool allows the visualization of Monte Carlo samplers&lt;/li&gt;
&lt;li&gt;many different methods can be selected&lt;/li&gt;
&lt;li&gt;allows the exploration of settings through interactive controls&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-366/sampling_explorer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.chaos.com/blog/3d-gaussian-splatting-new-frontier-in-rendering&#34; target=&#34;_blank&#34; id=&#34;3D Gaussian Splatting: A new frontier in rendering&#34;&gt;3D Gaussian Splatting: A new frontier in rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of Gaussian Splatting support in V-Ray&lt;/li&gt;
&lt;li&gt;explains the technique on a high level, advantages, and limitations&lt;/li&gt;
&lt;li&gt;presents an example of how objects can be added to scanned scenes and interact with the scene around them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-366/gaussian_splatting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mangosister.github.io/scene_agn_site/&#34; target=&#34;_blank&#34; id=&#34;Efficient Scene Appearance Aggregation for Level-of-Detail Rendering&#34;&gt;Efficient Scene Appearance Aggregation for Level-of-Detail Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a framework for volumetric scene prefiltering and level-of-detail rendering&lt;/li&gt;
&lt;li&gt;to improve geometric fit of voxel approximations, it introduces a truncated ellipsoid primitive&lt;/li&gt;
&lt;li&gt;shows how the technique allows accurate LoD rendering closely matching the ground truth at all scales.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-366/voxel_lod_overview.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/keengames/vulkan_backend&#34; target=&#34;_blank&#34; id=&#34;keen games vulkan backend&#34;&gt;keen games vulkan backend&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;keen games released a snapshot of their Vulkan Backend implementation&lt;/li&gt;
&lt;li&gt;code is not compiling as it depends on code that has not been published&lt;/li&gt;
&lt;li&gt;meant as a reference for others to see how concepts can be implemented&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-366/keen_games_logo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jms55.github.io/posts/2024-11-14-virtual-geometry-bevy-0-15&#34; target=&#34;_blank&#34; id=&#34;Virtual Geometry in Bevy 0.15&#34;&gt;Virtual Geometry in Bevy 0.15&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the changes that have been made to the Nanite-like Virtual Geometry system for Bevy&lt;/li&gt;
&lt;li&gt;discusses software rasterization, improved LOD selection, memory reduction techniques, as well as performance optimizations&lt;/li&gt;
&lt;li&gt;provides links to the various PRs and explains these, making it easy to follow along&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-366/bevy_virtual_geometry_cover.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/work-graph-playground/&#34; target=&#34;_blank&#34; id=&#34;Work Graph Playground: a learning framework for GPU Work Graphs&#34;&gt;Work Graph Playground: a learning framework for GPU Work Graphs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD released a shader toy-like application that allows exploration of D3D12 Work graphs&lt;/li&gt;
&lt;li&gt;the application is compatible with D3D WARP (aka CPU emulation of D3D12)&lt;/li&gt;
&lt;li&gt;provides tutorials of different complexity to showcase different capabilities&lt;/li&gt;
&lt;li&gt;documented source code for all tutorials is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-366/work_graph_mesh.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ea.com/technology/news/strand-hair-dragon-age-the-veilguard&#34; target=&#34;_blank&#34; id=&#34;Innovating Strand by Strand for Lifelike Hair in Dragon Age: The Veilguard&#34;&gt;Innovating Strand by Strand for Lifelike Hair in Dragon Age: The Veilguard&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a high-level overview of the hair rendering technique used in Dragon Age that uses strand-based rendering&lt;/li&gt;
&lt;li&gt;presents that 6.5ms (at 30fps mode) and 3ms for 60fps are reserved for hair rendering&lt;/li&gt;
&lt;li&gt;shows a demo video to present the technique results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-366/hair_layered_transparency.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://terathon.com/vtgame_lengyel.pdf&#34; target=&#34;_blank&#34; id=&#34;An Overview of Game Engine Architecture&#34;&gt;An Overview of Game Engine Architecture&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the slides discuss the design of the C4 Engine&lt;/li&gt;
&lt;li&gt;present how the engine has been separated into separate components and what these components do&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-366/c4_engine_architecture.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/AlexSabourinDev/cranberry_blog/blob/master/HarnessingWaveIntrinsicsForGoodAndEvil.pdf&#34; target=&#34;_blank&#34; id=&#34;Harnessing Wave Intrinsics For Good And Evil&#34;&gt;Harnessing Wave Intrinsics For Good And Evil&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation shows how to use HLSL Wave Intrinsics&lt;/li&gt;
&lt;li&gt;explains what Wave Intrinsics are, what they can be used for, and the limitations&lt;/li&gt;
&lt;li&gt;shows practical use-cases and how to implement example solutions&lt;/li&gt;
&lt;li&gt;presents the generated code on AMD hardware and discusses pitfalls&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-366/wave_intrinsics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bsky.app/profile/vassvik.bsky.social/post/3lb6j2rknyk2k&#34; target=&#34;_blank&#34; id=&#34;Optimize effective bandwidth of a 3x3x3 blur&#34;&gt;Optimize effective bandwidth of a 3x3x3 blur&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Bluesky thread presents a detailed look at how to optimize a 3x3x3 blur&lt;/li&gt;
&lt;li&gt;shows different stages of the optimization process&lt;/li&gt;
&lt;li&gt;published performance numbers for the different optimized implementations&lt;/li&gt;
&lt;li&gt;additionally presents how to use voxels to visualize the algorithm implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-366/3_3_3_blur_voxel.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://deepaksurti.com&#34; target=&#34;_blank&#34;&gt;Deepak Surti&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 365 -  November 10th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-365/</link>
      <pubDate>Sun, 10 Nov 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-365/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://osor.io/OIT&#34; target=&#34;_blank&#34; id=&#34;Implementing Order-Independent Transparency&#34;&gt;Implementing Order-Independent Transparency&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a technique for Order-Independent Transparency&lt;/li&gt;
&lt;li&gt;the presented technique uses multiple passes over the geometry to generate transmittance coefficients&lt;/li&gt;
&lt;li&gt;discusses how this turns the problem into an additive shading problem&lt;/li&gt;
&lt;li&gt;presents the implementation details step-by-step, limitations and possible optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-365/order_independent_transparency.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241108053200/https://osor.io/OIT&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.gingerbill.org/article/2024/11/10/opengl-is-not-right-handed&#34; target=&#34;_blank&#34; id=&#34;OpenGL is not Right-Handed&#34;&gt;OpenGL is not Right-Handed&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the concept of coordinate systems and how it relates to column vs row-major matrices&lt;/li&gt;
&lt;li&gt;provides into how the misconception is based on old fixed function style OpenGL concepts&lt;/li&gt;
&lt;li&gt;overview of how matrix and vector convention are disconnected from memory layout&lt;/li&gt;
&lt;li&gt;additionally shows how the Odin language supports these concepts on the language level&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-365/proj_to_ndc.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241111040520/https://www.gingerbill.org/article/2024/11/10/opengl-is-not-right-handed/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://c0de517e.com/015_vegetation_system.htm&#34; target=&#34;_blank&#34; id=&#34;From the archive: Vegetation in COD:BO4&#34;&gt;From the archive: Vegetation in COD:BO4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an overview of the process of how procedural vegetation was implemented in COD Black Ops 4&lt;/li&gt;
&lt;li&gt;discusses the design process and how different developments across the teams influenced the design of the system&lt;/li&gt;
&lt;li&gt;provides insights into the noise generation process, placement logic as well as storage considerations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-365/point_grid.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241107061346/http://c0de517e.com/015_vegetation_system.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://fgiesen.wordpress.com/2024/11/06/exact-unorm8-to-float/&#34; target=&#34;_blank&#34; id=&#34;Exact UNORM8 to float&#34;&gt;Exact UNORM8 to float&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article goes into detail how to implement a floating point (0 to 1) conversion to 8bit and back without relying on division support&lt;/li&gt;
&lt;li&gt;first presents the simple division method and then derives how to implement the same without division support&lt;/li&gt;
&lt;li&gt;goes into detail about how floating point precision and ranges&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-365/unorm8.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241107064933/https://fgiesen.wordpress.com/2024/11/06/exact-unorm8-to-float/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://fgiesen.wordpress.com/2024/11/03/bc7-optimal-solid-color-blocks&#34; target=&#34;_blank&#34; id=&#34;BC7 optimal solid-color blocks&#34;&gt;BC7 optimal solid-color blocks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides insight into the BC7 texture compression format&lt;/li&gt;
&lt;li&gt;explains how to best express constant color blocks within the constraint of the format&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-365/bc7_color_block.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241104031733/https://fgiesen.wordpress.com/2024/11/03/bc7-optimal-solid-color-blocks/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lisyarus.github.io/blog/posts/implementing-a-tiny-cpu-rasterizer-part-4.html&#34; target=&#34;_blank&#34; id=&#34;Implementing a tiny CPU rasterizer&#34;&gt;Implementing a tiny CPU rasterizer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article series about the implementation of a CPU rasterizer C++ continues&lt;/li&gt;
&lt;li&gt;part 4 to 6 are released and add support for 3d transformations, projections, clipping, depth buffer, and perspective correct interpolation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-365/cpu_raster.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241111040623/https://lisyarus.github.io/blog/posts/implementing-a-tiny-cpu-rasterizer-part-4.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.hexaquo.at/pages/introduction-to-shaders/&#34; target=&#34;_blank&#34; id=&#34;Introduction to Shaders &#34;&gt;Introduction to Shaders &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents a beginner-focused introduction to shader programming&lt;/li&gt;
&lt;li&gt;provides an overview of how shaders allow access to GPU resources, execution model, and restrictions&lt;/li&gt;
&lt;li&gt;shows how classical rendering pipelines with vertex &amp;amp; pixel shaders are used&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-365/cpu_gpu_shaders.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241111041136/https://www.hexaquo.at/pages/introduction-to-shaders/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/TheRealMJP/SHforHLSL&#34; target=&#34;_blank&#34; id=&#34;SHforHLSL&#34;&gt;SHforHLSL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;single header HLSL library for spherical harmonics&lt;/li&gt;
&lt;li&gt;implements support for L1 (2 bands, 4 coefficients) and L2 (3 bands, 9 coefficients) SH (spherical harmonics)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-365/Spherical_Harmonics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20241111035431/https://github.com/TheRealMJP/SHforHLSL&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 364 -  November 3rd, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-364/</link>
      <pubDate>Sun, 03 Nov 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-364/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/jbikker/tinybvh&#34; target=&#34;_blank&#34; id=&#34;Single-header BVH construction and traversal library. &#34;&gt;Single-header BVH construction and traversal library. &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;first release of a single header library for the construction and refit of Bounding Volume Hierarchy&lt;/li&gt;
&lt;li&gt;contains a generic C++ version as well as an AVX optimized variation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-364/bvhbanner.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lisyarus.github.io/blog/posts/implementing-a-tiny-cpu-rasterizer.html&#34; target=&#34;_blank&#34; id=&#34;Implementing a tiny CPU rasterizer&#34;&gt;Implementing a tiny CPU rasterizer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;start of a planned 12 part tutorial series on the implementation of a software rasterizer&lt;/li&gt;
&lt;li&gt;currently available parts covers the steps required to render triangle as well as to interpoliate colors across a triangle&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-364/triangle-pixels-bbox.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/mesh_shaders/mesh_shaders-meshlet_compression/&#34; target=&#34;_blank&#34; id=&#34;Meshlet compression&#34;&gt;Meshlet compression&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the findings of researach into compression of meshlet data for reduced memory usage&lt;/li&gt;
&lt;li&gt;discusses the various techniques and the effects on compression ratios&lt;/li&gt;
&lt;li&gt;additionally presents how they can be utilized my mesh and amplification shaders to decompress the data at runtime&lt;/li&gt;
&lt;li&gt;presents the effects on performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-364/mesh_shaders_render_time_culling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=AoTxTz31nXY&#34; target=&#34;_blank&#34; id=&#34;[video] Dan Baker How to Start a Career in Computer Graphics Programming&#34;&gt;[video] Dan Baker How to Start a Career in Computer Graphics Programming&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a look back at the speakers career in the video game industry&lt;/li&gt;
&lt;li&gt;what they are looking for in graphis developers and programmers for video games in general&lt;/li&gt;
&lt;li&gt;the QA section provides further insights into what developers are looking for in new hires&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-364/graphics_programming_journey.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.maximeheckel.com/posts/on-crafting-painterly-shaders&#34; target=&#34;_blank&#34; id=&#34;On Crafting Painterly Shaders&#34;&gt;On Crafting Painterly Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a walkthrough of the development of a painterly post-processing shaders&lt;/li&gt;
&lt;li&gt;provides an in-depth discussion of Kuwahara filters and extensions&lt;/li&gt;
&lt;li&gt;shows quality improvements for the various steps of the process&lt;/li&gt;
&lt;li&gt;additionally presents runnable WebGL implementation of the techniques presented&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-364/spaceship_formation_painting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dassaultsystemes-technology.github.io/EnterprisePBRShadingModel/spec-2025x.md.html&#34; target=&#34;_blank&#34; id=&#34;Enterprise PBR Shading Model&#34;&gt;Enterprise PBR Shading Model&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the spec focues on the mathematical description of the shading model&lt;/li&gt;
&lt;li&gt;model is a linear blend of a metallic and a dielectric BSDF&lt;/li&gt;
&lt;li&gt;presents the parameters, derivations as well as visual examples of the visual quality&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-364/shading_model.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://atyuwen.github.io/&#34; target=&#34;_blank&#34;&gt;atyuwen&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 363 -  October 27th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-363/</link>
      <pubDate>Sun, 27 Oct 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-363/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://boksajak.github.io/blog/RayTracingGemsChapters&#34; target=&#34;_blank&#34; id=&#34;My Ray Tracing Gems Chapters&#34;&gt;My Ray Tracing Gems Chapters&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of the author&amp;rsquo;s articles from Ray Tracing Gems published in one place&lt;/li&gt;
&lt;li&gt;Ray Traced Shadows: Maintaining Real-Time Frame Rates, The Reference Path Tracer&lt;/li&gt;
&lt;li&gt;Refraction Ray Cones For Texture Level Of Detail, Rendering Many Lights With Grid-based Reservoirs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-363/reservoir_sample.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://30fps.net/pages/videogame-shadows/&#34; target=&#34;_blank&#34; id=&#34;Classic 3D videogame shadow techniques&#34;&gt;Classic 3D videogame shadow techniques&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of shadowing techniques as they have been used by video games of the past&lt;/li&gt;
&lt;li&gt;presents examples of the different techniques, including screenshots of these techniques&lt;/li&gt;
&lt;li&gt;discusses a brief overview of each technique and its tradeoffs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-363/blade_of_darkness.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lisyarus.github.io/blog/posts/introduction-to-quaternions.html&#34; target=&#34;_blank&#34; id=&#34;(Yet another) Introduction to quaternions&#34;&gt;(Yet another) Introduction to quaternions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a walkthrough of quaternions deviations for computer graphics&lt;/li&gt;
&lt;li&gt;focuses on the formulas and algebra underlying the mathematical model&lt;/li&gt;
&lt;li&gt;includes a cheat sheet of the covered topics at the end of the article&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-363/quaternion_multiplication_graph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/abs/2410.18026&#34; target=&#34;_blank&#34; id=&#34;EON: A practical energy-preserving rough diffuse BRDF&#34;&gt;EON: A practical energy-preserving rough diffuse BRDF&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces Energy-preserving Oren–Nayar (EON) BRDF designed for rough surfaces&lt;/li&gt;
&lt;li&gt;introduces analytical energy compensation and importance sampling via Clipped Linearly Transformed Cosine&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-363/eon_brdf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://m4xc.dev/articles/fundamental-rc&#34; target=&#34;_blank&#34; id=&#34;Fundamentals of Radiance Cascades&#34;&gt;Fundamentals of Radiance Cascades&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an introduction to the Global Illumination technique called Radiance Cascades&lt;/li&gt;
&lt;li&gt;focuses on the development of an intuition for the concepts that underly the technique&lt;/li&gt;
&lt;li&gt;the steps are explained visually with animated examples&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-363/radiance_cascades.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://toji.dev/webgpu-best-practices/device-loss.html&#34; target=&#34;_blank&#34; id=&#34;WebGPU Device Loss best practices&#34;&gt;WebGPU Device Loss best practices&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post explains what a device lost event is and how to handle it from WebGPU&lt;/li&gt;
&lt;li&gt;shows the exposed API and how to react to the events&lt;/li&gt;
&lt;li&gt;discusses different approaches that can be taken to handle the event&lt;/li&gt;
&lt;li&gt;additionally provides pointers for Chrome-specific considerations for development&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-363/webgpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.mecheye.net/2024/10/the-ultimate-guide-to-matrix-multiplication-and-ordering/&#34; target=&#34;_blank&#34; id=&#34;The Ultimate Guide to Matrix Multiplication and Ordering&#34;&gt;The Ultimate Guide to Matrix Multiplication and Ordering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a detailed overview of matrix multiplication&lt;/li&gt;
&lt;li&gt;starts with an overview of matrix multiplications&lt;/li&gt;
&lt;li&gt;discusses Row-major vs. column-major, differences between shading languages&lt;/li&gt;
&lt;li&gt;then focuses on multiplication ordering, space transformations as well as inversing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-363/column_major_matrix.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://poniesandlight.co.uk/reflect/debug_print_text/&#34; target=&#34;_blank&#34; id=&#34;Texture-less Text Rendering&#34;&gt;Texture-less Text Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses a technique to render debug fonts without the usage of textures&lt;/li&gt;
&lt;li&gt;presents how to embed glyph data into shaders and render from instanced draw calls&lt;/li&gt;
&lt;li&gt;GLSL source code is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-363/font_shaders.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://x.com/pedanticcoder&#34; target=&#34;_blank&#34;&gt;Steven Cannavan&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 362 -  October 20th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-362/</link>
      <pubDate>Sun, 20 Oct 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-362/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=zROUBE5pLuI&amp;amp;t=6s&#34; target=&#34;_blank&#34; id=&#34;[video] niagara: Meshlets unchained&#34;&gt;[video] niagara: Meshlets unchained&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video continues meshlet implementation and looks at task shader performance on AMD hardware&lt;/li&gt;
&lt;li&gt;starts with an overview of the technique implementation and presents the performance problem encountered using the AMD profiler&lt;/li&gt;
&lt;li&gt;explains how the driver implements task shaders and what causes the performance issue by patching the Linux drivers&lt;/li&gt;
&lt;li&gt;From there, implement a solution that uses compute shaders to cull meshlets instead of using task shaders&lt;/li&gt;
&lt;li&gt;presents performance and memory comparison against the native task shader solution&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-362/niagara_culling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/HansKristian-Work/vkd3d-proton/blob/workgraphs/docs/workgraphs.md&#34; target=&#34;_blank&#34; id=&#34;Emulating Workgraphs&#34;&gt;Emulating Workgraphs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the document explains how vkd3d-proton decides to emulate Vulkan Workgraphs using ExecuteIndirect&lt;/li&gt;
&lt;li&gt;discusses different trade-offs and design decisions made&lt;/li&gt;
&lt;li&gt;presents how the implementation compares against native implementations on both Nvidia and AMD&lt;/li&gt;
&lt;li&gt;many workloads are currently more efficient using this emulation code path than the native driver version&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-362/simple-classify-nv.PNG&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/gnikoloff/drawing-graphics-on-apple-vision-with-metal-rendering-api&#34; target=&#34;_blank&#34; id=&#34;Drawing Graphics on Apple Vision with the Metal Rendering API&#34;&gt;Drawing Graphics on Apple Vision with the Metal Rendering API&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes how to use the native Metal rendering API for Apple Vision devices&lt;/li&gt;
&lt;li&gt;explains how to interact with the OS for Variable Rate Rasterization based on eye positions, interact with projection matrix&lt;/li&gt;
&lt;li&gt;shows different techniques exposed to render meshes to the two-eye views&lt;/li&gt;
&lt;li&gt;presents how to structure the rendering frame architecture to reduce latency&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-362/vision-pro-matrices.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/gpu-workgraphs-mesh-nodes-vulkan/&#34; target=&#34;_blank&#34; id=&#34;GPU Work Graphs mesh nodes are now in Vulkan&#34;&gt;GPU Work Graphs mesh nodes are now in Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article announces the release of Work Graphs as experimental Vulkan extensions&lt;/li&gt;
&lt;li&gt;provides links to the headers, spec, and code samples, as well as compiler support&lt;/li&gt;
&lt;li&gt;additionally provides a list of current limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-362/work_graphs_mesh_nodes.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/gpu-reshape-beta-2/&#34; target=&#34;_blank&#34; id=&#34;GPU Reshape Beta 2 Release&#34;&gt;GPU Reshape Beta 2 Release&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article introduces the new features in Reshape, a tool for instrumentation of GPU operations with instruction level validation of potentially undefined behavior&lt;/li&gt;
&lt;li&gt;explains in detail what AMD Waterfall&amp;rsquo;ing is, how the tool can detect NonUniformResourceIndex usage&lt;/li&gt;
&lt;li&gt;updates to per-byte and pixel resource usage, as well as placed resource initialization&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-362/gpu_reshape_beta_2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2024/10/15/scaling-points-in-a-specific-direction/&#34; target=&#34;_blank&#34; id=&#34;Scaling Points In a Specific Direction&#34;&gt;Scaling Points In a Specific Direction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents two mathematical methods to scale points along a direction&lt;/li&gt;
&lt;li&gt;the first method uses matrix operations, and the second uses dot products&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-362/scaling_points.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=UctwJNFDswQ&#34; target=&#34;_blank&#34; id=&#34;[video] Graphics Pipeline Object // Vulkan For Beginner #14&#34;&gt;[video] Graphics Pipeline Object // Vulkan For Beginner #14&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial series on Vulkan continues by implementing Graphics Pipeline objects&lt;/li&gt;
&lt;li&gt;presents the C++ code changes and Vulkan changes required&lt;/li&gt;
&lt;li&gt;closes with a first triangle being drawn to the screen&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-362/vulkan_pso.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=OQKbuUXg9_4&#34; target=&#34;_blank&#34; id=&#34;[video] Upscaling Face-Off: PS5 Pro PSSR vs PC DLSS/FSR 3.1 in Ratchet and Clank Rift Apart&#34;&gt;[video] Upscaling Face-Off: PS5 Pro PSSR vs PC DLSS/FSR 3.1 in Ratchet and Clank Rift Apart&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a comparison of different upscaling techniques for Ratchet and Clank Rift Apart&lt;/li&gt;
&lt;li&gt;tries to match the PC and PS5 Pro rendering quality as closely as possible&lt;/li&gt;
&lt;li&gt;compares the PS5 Pro upscaler technique against the AMD and Nvidia upscalers on PC&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-362/rift_upscaling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://erichaines.com/&#34; target=&#34;_blank&#34;&gt;Eric Haines&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 361 -  October 13th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-361/</link>
      <pubDate>Sun, 13 Oct 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-361/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=3EMdMD1PsgY&#34; target=&#34;_blank&#34; id=&#34;[video] Mesh Shaders - The Future of Rendering&#34;&gt;[video] Mesh Shaders - The Future of Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation provides a getting-started look at basic mesh shader implementations&lt;/li&gt;
&lt;li&gt;discusses effects of meshlets, use-cases, and current technologies using it&lt;/li&gt;
&lt;li&gt;additionally discusses remaining limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-361/mesh_shader_future.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=EtX7WnFhxtQ&#34; target=&#34;_blank&#34; id=&#34;[video] GPU driven Rendering with Mesh Shaders in Alan Wake 2&#34;&gt;[video] GPU driven Rendering with Mesh Shaders in Alan Wake 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation provides a high-level view of the Mesh Shader implementation used on Alan Wake 2&lt;/li&gt;
&lt;li&gt;The primary focus is on the culling efficiency that can be achieved through mesh shaders&lt;/li&gt;
&lt;li&gt;presents the performance effects on different culling steps and the amount of final triangles&lt;/li&gt;
&lt;li&gt;shows the implementation walkthrough of the mesh shader implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-361/mesh_shader_culling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://generalarcade.com/jobs/graphics-rendering-engineer/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphics Rendering Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Relocate, Remote, Kuala Lumpur&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;General Arcade, a porting and co-development studio that has worked with a wide range of clients, from indies to AAA developers and publishers, including Larian, From Software, Capcom, Devolver Digital, TinyBuild, and others, is seeking a Software Engineer with a rendering emphasis.&lt;/p&gt;

&lt;p&gt;This is a great opportunity to work with a passionate engineering team on cutting-edge industry technologies.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/GA-1280-black.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;generalarcade_week_361&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=rbu7Zu5X1zI&#34; target=&#34;_blank&#34; id=&#34;[video] How I animate 3Blue1Brown | A Manim demo with Ben Sparks&#34;&gt;[video] How I animate 3Blue1Brown | A Manim demo with Ben Sparks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents a walkthrough of a Python visualization framework for mathematical expressions&lt;/li&gt;
&lt;li&gt;shows how to get started with a simple scene to more complex curve visualization over time&lt;/li&gt;
&lt;li&gt;presents tips for workflows that allow the creation of animations efficiently&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-361/math_anim.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ivwD6n-XXQk&#34; target=&#34;_blank&#34; id=&#34;[video] GPU Reshape - Modern Shader Instrumentation and Instruction Level Validation&#34;&gt;[video] GPU Reshape - Modern Shader Instrumentation and Instruction Level Validation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk provides an overview of instrumentation-based GPU Validation system&lt;/li&gt;
&lt;li&gt;explains what kind of validation is currently supported, how operations are written in IL agnostic fashion&lt;/li&gt;
&lt;li&gt;additionally presents how to develop your own features for the system&lt;/li&gt;
&lt;li&gt;and presents a view into abilities that instrumentation could enable beyond validation (debugging, data visualization, profiling)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-361/gpu_reshape.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.intel.com/t5/Blogs/Tech-Innovation/Client/Opening-the-Development-of-Intel-Rendering-Toolkit-Libraries/post/1635859&#34; target=&#34;_blank&#34; id=&#34;Opening the Development of Intel Rendering Toolkit Libraries&#34;&gt;Opening the Development of Intel Rendering Toolkit Libraries&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;intel released the rendering toolkit as open source under Apache 2&lt;/li&gt;
&lt;li&gt;the technologies include Embree, Open Image Denoising, OpenOSPRay, and others&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-361/intel_open_source.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/sampling-normal-gaussian-distribution-gpus/&#34; target=&#34;_blank&#34; id=&#34;Sampling From a Normal (Gaussian) Distribution on GPUs&#34;&gt;Sampling From a Normal (Gaussian) Distribution on GPUs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an overview of 3 methods to sample normal Gaussian distributions&lt;/li&gt;
&lt;li&gt;discusses the implementation and trade-offs for the presented methods&lt;/li&gt;
&lt;li&gt;presents a performance comparison of the implementations running on the GPU  &lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-361/gaussian_curve.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/goodbadwolf/&#34; target=&#34;_blank&#34;&gt;Manish Mathai&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 360 -  October 6th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-360/</link>
      <pubDate>Sun, 06 Oct 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-360/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://theorangeduck.com/page/animation-quality&#34; target=&#34;_blank&#34; id=&#34;Let&amp;#39;s talk about Animation Quality&#34;&gt;Let&amp;#39;s talk about Animation Quality&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a detailed look at the quality aspects that relate to animation&lt;/li&gt;
&lt;li&gt;shows the importance of sampling rate for human motion&lt;/li&gt;
&lt;li&gt;presents the impact of data precision on animation playback&lt;/li&gt;
&lt;li&gt;additionally, it presents a detailed discussion of animation data sets and develops what is required for high-quality research results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-360/animation_quality.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://acko.net/files/use-gpu-12/use.gpu-wesl-export.pdf&#34; target=&#34;_blank&#34; id=&#34;Shader composition in Use.GPU&#34;&gt;Shader composition in Use.GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation provides an overview of the difficulties related to the composition of GPU graphics techniques&lt;/li&gt;
&lt;li&gt;presents how Use.GPU tries to solve the problems by making composition a first-class design goal&lt;/li&gt;
&lt;li&gt;presents how implementation details require completely different implementations&lt;/li&gt;
&lt;li&gt;shows solutions to the problems discussed&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-360/use_gpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hal.science/hal-04561269&#34; target=&#34;_blank&#34; id=&#34;Interval Shading: using Mesh Shaders to generate shading intervals for volume rendering&#34;&gt;Interval Shading: using Mesh Shaders to generate shading intervals for volume rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper proposes the use of tetrahedrons as primitives for volume rendering using mesh shaders&lt;/li&gt;
&lt;li&gt;uses mesh shaders to compute the depths of the front and back faces at the same time when interpolating vertex attributes and passing both depths to the rasterizer stage&lt;/li&gt;
&lt;li&gt;additionally presents how to use the same idea to implement SDF tracing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-360/mesh_shader_interval.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://generalarcade.com/jobs/graphics-rendering-engineer/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphics Rendering Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Relocate, Remote, Kuala Lumpur&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;General Arcade, a porting and co-development studio that has worked with a wide range of clients, from indies to AAA developers and publishers, including Larian, From Software, Capcom, Devolver Digital, TinyBuild, and others, is seeking a Software Engineer with a rendering emphasis.&lt;/p&gt;

&lt;p&gt;This is a great opportunity to work with a passionate engineering team on cutting-edge industry technologies.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/GA-1280-black.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;generalarcade_week_360&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://xavierchermain.github.io/publications/aniso-ibl&#34; target=&#34;_blank&#34; id=&#34;Anisotropic Specular Image-Based Lighting Based on BRDF Major Axis Sampling&#34;&gt;Anisotropic Specular Image-Based Lighting Based on BRDF Major Axis Sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper proposes an anisotropic specular image-based lighting method that can serve as a drop-in replacement for bent normal techniques&lt;/li&gt;
&lt;li&gt;derives an analytic formula to determine the two closest and two farthest points from the reflected direction on an approximation of the BRDF confidence region boundary&lt;/li&gt;
&lt;li&gt;compares the method against bent normal technique and ground truth using the GGX specular BRDF&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-360/anisotropic.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/rdts-driver-experiments/&#34; target=&#34;_blank&#34; id=&#34;Introducing Driver Experiments to the AMD Radeon Developer Tool Suite&#34;&gt;Introducing Driver Experiments to the AMD Radeon Developer Tool Suite&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post introduces the new Driver Experiments&lt;/li&gt;
&lt;li&gt;this tool allows developers to enable/disable hardware features as well as optimization flags&lt;/li&gt;
&lt;li&gt;the post explains what features are exposed and what these options control&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-360/amd_driver_experiments.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/download/publications/Hierarchical_Light_Sampling_with_Accurate_Spherical_Gaussian_Lighting.pdf&#34; target=&#34;_blank&#34; id=&#34;Hierarchical Light Sampling with Accurate Spherical Gaussian Lighting&#34;&gt;Hierarchical Light Sampling with Accurate Spherical Gaussian Lighting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This paper presents an approximation of the importance based on spherical Gaussians (SGs) for light clusters&lt;/li&gt;
&lt;li&gt;Each light cluster is represented as an SG light and analytically approximates the product integral of the SG light and a BRDF&lt;/li&gt;
&lt;li&gt;presents how to use the method to reduce the MC variance for many light scenes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-360/sg_light.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=RqrkVmj-ntM&#34; target=&#34;_blank&#34; id=&#34;The Endless Grid&#34;&gt;The Endless Grid&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents how to implement the rendering of a shader-based continuous grid system&lt;/li&gt;
&lt;li&gt;explains how to generate the grid from a shader, deal with antialiasing, vary the grid sizes with distances, and much more&lt;/li&gt;
&lt;li&gt;the implementation is shown and provided using OpenGL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-360/opengl_grid.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/goodbadwolf/&#34; target=&#34;_blank&#34;&gt;Manish Mathai&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 359 -  September 29th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-359/</link>
      <pubDate>Sun, 29 Sep 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-359/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=etNmLiaLxb8&#34; target=&#34;_blank&#34; id=&#34;[video] Master Class: Being a Tech Art Detective&#34;&gt;[video] Master Class: Being a Tech Art Detective&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk presents an overview of the approach tech artists use to investigate effects in other developers&amp;rsquo; works&lt;/li&gt;
&lt;li&gt;shows how to use various tools, such as RenderDoc, Nsight, Intel GPA, etc. to analyze game content&lt;/li&gt;
&lt;li&gt;presents an overview of various techniques from games&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-359/tech_art_detective.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/gpc-2024/&#34; target=&#34;_blank&#34; id=&#34;Join our speakers in the Netherlands this November for the inaugural Graphics Programming Conference&#34;&gt;Join our speakers in the Netherlands this November for the inaugural Graphics Programming Conference&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post covers which sessions AMD will be presenting at the  Graphics Programming Conference this November in Breda (Netherlands)&lt;/li&gt;
&lt;li&gt;brief overview of the content of each talk (Occupancy and Work Graphs)&lt;/li&gt;
&lt;li&gt;as well as which partner talks will be presented&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-359/gpc-gpu-work-graphs.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240929101250/https://gpuopen.com/gpc-2024/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=m62ePwK33PM&#34; target=&#34;_blank&#34; id=&#34;[video] Gigi Lightning Talks&#34;&gt;[video] Gigi Lightning Talks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents a selection of short talks about different techniques and how it was implemented the Gigi framework&lt;/li&gt;
&lt;li&gt;covers Reconstruct Materials (differential rendering), FFT 1D/2D, Gaussian Splat Viewer, Fractal Generation&lt;/li&gt;
&lt;li&gt;each section provides an overview of the technique and shows the implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-359/gigi_jam.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.supergoodcode.com/device-generated-commands/&#34; target=&#34;_blank&#34; id=&#34;Device Generated Commands&#34;&gt;Device Generated Commands&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a brief overview of the state of Vulkan Device Generated Commands&lt;/li&gt;
&lt;li&gt;this extension allows applications to write GPU commands from other GPU shaders&lt;/li&gt;
&lt;li&gt;lists which drivers currently support the extension&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-359/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240926201925/https://www.supergoodcode.com/device-generated-commands/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://generalarcade.com/jobs/graphics-rendering-engineer/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphics Rendering Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Relocate, Remote, Kuala Lumpur&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;General Arcade, a porting and co-development studio that has worked with a wide range of clients, from indies to AAA developers and publishers, including Larian, From Software, Capcom, Devolver Digital, TinyBuild, and others, is seeking a Software Engineer with a rendering emphasis.&lt;/p&gt;

&lt;p&gt;This is a great opportunity to work with a passionate engineering team on cutting-edge industry technologies.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/GA-1280-black.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;generalarcade_week_359&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://nvda.ws/3BdxdU5&#34; target=&#34;_blank&#34; id=&#34;Free Learn OpenUSD Trainings&#34;&gt;Free Learn OpenUSD Trainings&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;NVIDIA released an interactive and free course about learning OpenUSD concepts&lt;/li&gt;
&lt;li&gt;Broken into modules, it explains the different aspects of OpenUSD in written and video form&lt;/li&gt;
&lt;li&gt;The provided Jupyter notebook gives the ability to explore the concepts in examples&lt;/li&gt;
&lt;li&gt;Starts with the basics and develops into more advanced concepts such as animation and layer ordering rules&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-359/openusd.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240920142029/https://www.nvidia.com/en-us/learn/learning-path/openusd/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.yiningkarlli.com/projects/cachepoints.html&#34; target=&#34;_blank&#34; id=&#34;Cache Points For Production-Scale Occlusion-Aware Many-Lights Sampling And Volumetric Scattering&#34;&gt;Cache Points For Production-Scale Occlusion-Aware Many-Lights Sampling And Volumetric Scattering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an  in-depth description of a system for guiding direct light sampling of scenes with hundreds of thousands of lights&lt;/li&gt;
&lt;li&gt;describes how the system can use online learning of visibility estimates and how it&amp;rsquo;s used for accelerating volumetric scattering cases&lt;/li&gt;
&lt;li&gt;additionally provides insights into the production experience and limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-359/cache-lights.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240929052315/https://www.yiningkarlli.com/projects/cachepoints.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://theorangeduck.com/page/delta-time-frame-behind&#34; target=&#34;_blank&#34; id=&#34;DeltaTime is a frame behind&#34;&gt;DeltaTime is a frame behind&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses the limitations of a classic delta time-based approach for animations&lt;/li&gt;
&lt;li&gt;explains why the techniques inherently are limited&lt;/li&gt;
&lt;li&gt;provides a couple of ideas to smooth over the limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-359/delta_time.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240928104048/https://theorangeduck.com/page/delta-time-frame-behind&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/articles/fp8_tables.php&#34; target=&#34;_blank&#34; id=&#34;FP8 data type - all values in a table&#34;&gt;FP8 data type - all values in a table&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents an overview of the various 8-bit floating point formats&lt;/li&gt;
&lt;li&gt;shows the limits, precisions, and errors for all possible values in the representations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-359/f8_values.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240927103749/https://asawicki.info/articles/fp8_tables.php&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=86FAWCzIe_4&#34; target=&#34;_blank&#34; id=&#34;[video] CUDA Programming Course – High-Performance Computing with GPUs&#34;&gt;[video] CUDA Programming Course – High-Performance Computing with GPUs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;free course of 12 hours of content on CUDA development&lt;/li&gt;
&lt;li&gt;presents how to get the system setup, explains the basics of GPU development concepts&lt;/li&gt;
&lt;li&gt;extends the concepts from writing a first CUDA use-case to optimizing matrix multiplications to a full multi-layer perceptron model&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-359/cuda-course.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/JasperBekkers&#34; target=&#34;_blank&#34;&gt;Jasper Bekkers&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 358 -  September 22nd, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-358/</link>
      <pubDate>Sun, 22 Sep 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-358/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.yosoygames.com.ar/wp/2024/09/why-does-vkmergepipelinecaches-exist/&#34; target=&#34;_blank&#34; id=&#34;Why does vkMergePipelineCaches exist?&#34;&gt;Why does vkMergePipelineCaches exist?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses how Vulkan Pipeline caches operate&lt;/li&gt;
&lt;li&gt;presents how multiple threads creating pipeline create contention and how multiple caches can solve the problem&lt;/li&gt;
&lt;li&gt;additionally discusses which flags are required to create truly independent caches between threads&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-358/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240919011947/https://www.yosoygames.com.ar/wp/2024/09/why-does-vkmergepipelinecaches-exist/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/directx-adopting-spir-v&#34; target=&#34;_blank&#34; id=&#34;DirectX Adopting SPIR-V as the Interchange Format of the Future&#34;&gt;DirectX Adopting SPIR-V as the Interchange Format of the Future&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post introduces the start of the initiative to support SPIR-V in D3D going forward&lt;/li&gt;
&lt;li&gt;the plan is to support SPIR-V shaders starting with Shader Model 7 release&lt;/li&gt;
&lt;li&gt;discusses limitations with DXIL, how SPIR-V can solve some&lt;/li&gt;
&lt;li&gt;additionally, it presents a history of shader intermediate languages&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-358/WeDontNeedDXIL.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240920162122/https://devblogs.microsoft.com/directx/directx-adopting-spir-v/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://generalarcade.com/jobs/graphics-rendering-engineer/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphics Rendering Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Relocate, Remote, Kuala Lumpur&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;General Arcade, a porting and co-development studio that has worked with a wide range of clients, from indies to AAA developers and publishers, including Larian, From Software, Capcom, Devolver Digital, TinyBuild, and others, is seeking a Software Engineer with a rendering emphasis.&lt;/p&gt;

&lt;p&gt;This is a great opportunity to work with a passionate engineering team on cutting-edge industry technologies.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/GA-1280-black.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;generalarcade_week_358&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lessvrong.com/cs/gstex/&#34; target=&#34;_blank&#34; id=&#34;GStex: Per-Primitive Texturing of 2D Gaussian Splatting for Decoupled Appearance and Geometry Modeling&#34;&gt;GStex: Per-Primitive Texturing of 2D Gaussian Splatting for Decoupled Appearance and Geometry Modeling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post introduces a technique to decouple the appearance and geometry of Gaussian&lt;/li&gt;
&lt;li&gt;the approach decouples appearance and geometry through the use of per-Gaussian texture maps&lt;/li&gt;
&lt;li&gt;presents a quality comparison against other Gaussian splatting techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-358/gaussian_splatting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240922233648/https://lessvrong.com/cs/gstex/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.graphicsprogrammingconference.nl/schedule/&#34; target=&#34;_blank&#34; id=&#34;Graphics Programming Conference - Schedule&#34;&gt;Graphics Programming Conference - Schedule&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The schedule for the graphics programming conference was released&lt;/li&gt;
&lt;li&gt;conference will happen in November in Breda, Netherlands&lt;/li&gt;
&lt;li&gt;contains a mix of talks and courses&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-358/GPC_Banner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240922233924/https://www.graphicsprogrammingconference.nl/schedule/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://nvda.ws/3BdxdU5&#34; target=&#34;_blank&#34; id=&#34;Free Learn OpenUSD Trainings&#34;&gt;Free Learn OpenUSD Trainings&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;NVIDIA released an interactive and free course about learning OpenUSD concepts&lt;/li&gt;
&lt;li&gt;Broken into modules, it explains the different aspects of OpenUSD in written and video form&lt;/li&gt;
&lt;li&gt;The provided Jupyter notebook gives the ability to explore the concepts in examples&lt;/li&gt;
&lt;li&gt;Starts with the basics and develops into more advanced concepts such as animation and layer ordering rules&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-358/openusd.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240920142029/https://www.nvidia.com/en-us/learn/learning-path/openusd/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://smrtr.io/mxNZz&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;3D Programming Team Lead&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Toronto or Montreal&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;As a 3D Programmer Team Lead, you will be responsible for leading a team of talented rendering programmers in the development of the next generation of the Far Cry branded games.&lt;/p&gt;

&lt;p&gt;You will collaborate closely with tech artists and other programmers to implement advanced rendering techniques and create stunning visuals that enhance the overall gaming experience.&lt;/p&gt;

&lt;p&gt;Your people and project management skills will be used to help the team achieve goals and create great tech.&lt;/p&gt;

&lt;p&gt;This is a fantastic opportunity to work on Far Cry with an incredible team that has a wealth of experience and expertise.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/ubisoft_horizontal_logo_black.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;ubisoft_week_358&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wunkolo.github.io/post/2024/09/gpu-debug-scopes/&#34; target=&#34;_blank&#34; id=&#34;GPU Debug Scopes&#34;&gt;GPU Debug Scopes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to group API commands in Vulkan through the use of GPU markers&lt;/li&gt;
&lt;li&gt;presents which extension exists, how to utilize RAII in different languages to manage the state required&lt;/li&gt;
&lt;li&gt;additionally contains pointers to techniques for coloring the events&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-358/raii-scopes.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240920173205/https://wunkolo.github.io/post/2024/09/gpu-debug-scopes/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/amd-rdna-3-5-isa/&#34; target=&#34;_blank&#34; id=&#34;AMD RDNA™ 3.5 Instruction Set Architecture (ISA) reference guide is now available&#34;&gt;AMD RDNA™ 3.5 Instruction Set Architecture (ISA) reference guide is now available&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD has released an Instruction Set reference guide for RDNA 3.5&lt;/li&gt;
&lt;li&gt;The guide covers the shader core execution model, various wave execution models, available instructions, and more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-358/AMD_RDNA3.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240917124420/https://gpuopen.com/amd-rdna-3-5-isa/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2024/09/14/Vector-math-library-codegen-in-Debug/&#34; target=&#34;_blank&#34; id=&#34;Vector math library codegen in Debug&#34;&gt;Vector math library codegen in Debug&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes the debug build performance of various compilers&lt;/li&gt;
&lt;li&gt;presents how different code structures allow the compiler to achieve different levels of optimizations&lt;/li&gt;
&lt;li&gt;shows how C-style vector functions can generate more efficient code compared to C++ abstractions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-358/vector_code_gen.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240921070251/https://aras-p.info/blog/2024/09/14/Vector-math-library-codegen-in-Debug/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=W-MLYIjA65w&#34; target=&#34;_blank&#34; id=&#34;Gradient Progress Bar - Procedural Shapes and Patterns - Episode 13&#34;&gt;Gradient Progress Bar - Procedural Shapes and Patterns - Episode 13&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents how to implement a progress bar using SDFs&lt;/li&gt;
&lt;li&gt;implementation is shown using Unity and Unreal Visual Shading languages&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-358/progress_bar.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://metalbyexample.com/&#34; target=&#34;_blank&#34;&gt;Warren Moore&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 357 -  September 15th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-357/</link>
      <pubDate>Sun, 15 Sep 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-357/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://diglib.eg.org/items/423fd6b9-d226-4e82-92a0-4856bc064bdf&#34; target=&#34;_blank&#34; id=&#34;Towards Practical Meshlet Compression&#34;&gt;Towards Practical Meshlet Compression&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper proposes a codec designed explicitly for meshlet compression within a mesh shader&lt;/li&gt;
&lt;li&gt;presents how to find optimal generalized triangle strips on meshlets&lt;/li&gt;
&lt;li&gt;discusses the lossless compression schema for index data&lt;/li&gt;
&lt;li&gt;additionally presents a crack-free quantization for vertex attributes&lt;/li&gt;
&lt;li&gt;performance results are presented, and the code is available  &lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-357/meshlet_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://github.com/Bloodwyn/compressed-meshlet-paper&#34; style=&#34;color:white;&#34;&gt;code &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Qbs9v1W7St8&#34; target=&#34;_blank&#34; id=&#34;Shaders // Vulkan For Beginners #13&#34;&gt;Shaders // Vulkan For Beginners #13&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains the shader authoring pipeline for Vulkan applications&lt;/li&gt;
&lt;li&gt;discusses the different stages involved and how data is passed between stages&lt;/li&gt;
&lt;li&gt;shows the C++ necessary to compile shaders from text and load binary compilation results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-357/glsl_spirv.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2024/09/09/an-introduction-to-workgraphs-part-2-performance/&#34; target=&#34;_blank&#34; id=&#34;An introduction to workgraphs part 2: Performance&#34;&gt;An introduction to workgraphs part 2: Performance&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a detailed look at D3D12 work graph performance on Nvidia hardware&lt;/li&gt;
&lt;li&gt;shows a comparison of classification &amp;amp; raytracing pass using compute shaders as well as workgraphs&lt;/li&gt;
&lt;li&gt;uses Nvidia Nsight to collect reasons for the underwhelming performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-357/workgraph-performance.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/multi-process-profiling-support-in-timing-captures/&#34; target=&#34;_blank&#34; id=&#34;Multi-process profiling support in Timing Captures&#34;&gt;Multi-process profiling support in Timing Captures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post shows how to profile an application with multiple processes using PIX for Windows&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-357/winpix_multi_proc_capture_sampled_functions.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://claire-blackshaw.com/blog/2024/09/volume_vs_surface/&#34; target=&#34;_blank&#34; id=&#34;Surface vs Volume Formats in Tools&#34;&gt;Surface vs Volume Formats in Tools&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a look at different mesh representation formats&lt;/li&gt;
&lt;li&gt;covering the pros &amp;amp; cons of various volumetric representations as well as implicit representations&lt;/li&gt;
&lt;li&gt;concludes that for authoring workflows, volumetric representations are now feasible and offer various advantages&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-357/surface_vs_volume.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://smrtr.io/mxNZz&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;3D Programming Team Lead&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Toronto or Montreal&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;As a 3D Programmer Team Lead, you will be responsible for leading a team of talented rendering programmers in the development of the next generation of the Far Cry branded games.&lt;/p&gt;

&lt;p&gt;You will collaborate closely with tech artists and other programmers to implement advanced rendering techniques and create stunning visuals that enhance the overall gaming experience.&lt;/p&gt;

&lt;p&gt;Your people and project management skills will be used to help the team achieve goals and create great tech.&lt;/p&gt;

&lt;p&gt;This is a fantastic opportunity to work on Far Cry with an incredible team that has a wealth of experience and expertise.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/ubisoft_horizontal_logo_black.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;ubisoft_week_357&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/download/publications/AnimatedDMMs.pdf&#34; target=&#34;_blank&#34; id=&#34;DMMs (displaced micro-meshes) &#34;&gt;DMMs (displaced micro-meshes) &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new method for the representation of skinned meshes with deformations for raytracing&lt;/li&gt;
&lt;li&gt;method allows for a compact representation of micro-triangle geometry through the hierarchical encoding of displacements&lt;/li&gt;
&lt;li&gt;shows how to animate base meshes and apply additional displaced movements on top&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-357/displaced_mesh_skinning.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.answer.ai/posts/2024-09-12-gpupuzzles.html&#34; target=&#34;_blank&#34; id=&#34;Learn GPU Programming in Your Browser&#34;&gt;Learn GPU Programming in Your Browser&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post introduces WebGPU-powered puzzles that aim to teach graphics programming&lt;/li&gt;
&lt;li&gt;different independent units explain concepts and allow users to write and interact with GPU concepts directly in the browser&lt;/li&gt;
&lt;li&gt;teaches the fundamentals in text and expands during the different lessons&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-357/webgpu_puzzles.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://x.com/FreyaHolmer/status/1834989650236015036?t=Qfccj4PcbD3UrMHRvheSKw&#34; target=&#34;_blank&#34; id=&#34;Freya&amp;#39;s Guide to XYZ Axes and Handedness&#34;&gt;Freya&amp;#39;s Guide to XYZ Axes and Handedness&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a diagram that visually explains left-handed vs. right-handed coordinate systems&lt;/li&gt;
&lt;li&gt;additionally presents which concepts are independent of the handedness&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-357/handedness.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.wihlidal.com&#34; target=&#34;_blank&#34;&gt;Graham Wihlidal&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 356 -  September 8th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-356/</link>
      <pubDate>Sun, 08 Sep 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-356/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jason.today/rc&#34; target=&#34;_blank&#34; id=&#34;Building Real-Time Global Illumination - Radiance Cascades&#34;&gt;Building Real-Time Global Illumination - Radiance Cascades&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post continues the discussion of the Radiance Cascades GI technique&lt;/li&gt;
&lt;li&gt;presents how to use information from a low number of rays to reduce the number of artifacts as much as possible&lt;/li&gt;
&lt;li&gt;shows the effect of the different steps and how multiple cascades are combined&lt;/li&gt;
&lt;li&gt;source code and interactive experiments are available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-356/radiance_cache.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240904005158/https://jason.today/rc&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2024/09/02/summing-blue-noise-octaves-like-perlin-noise/&#34; target=&#34;_blank&#34; id=&#34;Summing Blue Noise Octaves Like Perlin Noise&#34;&gt;Summing Blue Noise Octaves Like Perlin Noise&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents the effects of combining multiple levels of noise&lt;/li&gt;
&lt;li&gt;shows this for blue noise, white noise, box noise, and many more&lt;/li&gt;
&lt;li&gt;additionally, it presents how the demo was made using the open-source Gigi prototyping platform&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-356/blue-noise.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240907012117/https://blog.demofox.org/2024/09/02/summing-blue-noise-octaves-like-perlin-noise/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://box2d.org/posts/2024/08/determinism/&#34; target=&#34;_blank&#34; id=&#34;Determinism&#34;&gt;Determinism&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents what is required to write deterministic algorithms&lt;/li&gt;
&lt;li&gt;discusses algorithmic, multithreaded, and cross-platform considerations&lt;/li&gt;
&lt;li&gt;shows how different compiler options and standard library implementation can affect the results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-356/fp_fast.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240909130238/https://box2d.org/posts/2024/08/determinism/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=AqRkwN3MxUI&#34; target=&#34;_blank&#34; id=&#34;[video] Explaining my game engine in 2024 - Part1: Triangle mesh tangent space, normal map identification&#34;&gt;[video] Explaining my game engine in 2024 - Part1: Triangle mesh tangent space, normal map identification&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a summary of how normal maps can be used to augment surface detail&lt;/li&gt;
&lt;li&gt;presents the derivation of the math that, such as tangent spaces, enables the augmentation&lt;/li&gt;
&lt;li&gt;additionally presents a method that can be used to approximately detect if a texture contains normal map information&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-356/normal_maps.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=lfY0v4q2dtw&#34; target=&#34;_blank&#34; id=&#34;[video] Animated Loading Indicator - Procedural Shapes and Patterns - Episode 11&#34;&gt;[video] Animated Loading Indicator - Procedural Shapes and Patterns - Episode 11&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents how to combine polar coordinates, tiling, and blending to create a procedural loading indicator&lt;/li&gt;
&lt;li&gt;the implementation is shown using Unity and Unreal Visual shading languages&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-356/loading_indicator.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/khronos-siggraph-2024-rewind&#34; target=&#34;_blank&#34; id=&#34;Khronos SIGGRAPH 2024 Rewind&#34;&gt;Khronos SIGGRAPH 2024 Rewind&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a collection of Khronos talks that happened during SIGGRAPH 2024&lt;/li&gt;
&lt;li&gt;provides a link to the slides as well as the videos&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-356/siggraph-rewind.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240907011906/https://www.khronos.org/blog/khronos-siggraph-2024-rewind&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jonolick.com/home/ediz-a-critical-look-at-a-simplistic-image-upscaling-approach&#34; target=&#34;_blank&#34; id=&#34;EDIZ: A Critical Look at a Simplistic Image Upscaling Approach&#34;&gt;EDIZ: A Critical Look at a Simplistic Image Upscaling Approach&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses the EDIZ (Error Diffusion Image Zooming) algorithm for image upscaling&lt;/li&gt;
&lt;li&gt;presents a high-level overview of the technique&lt;/li&gt;
&lt;li&gt;discuss weaknesses and shortcomings&lt;/li&gt;
&lt;li&gt;additionally, it presents an implementation of the technique in a code sample&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-356/upscale_output_orig.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240909234456/https://www.jonolick.com/home/ediz-a-critical-look-at-a-simplistic-image-upscaling-approach&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://games.acm.org/adventures-in-avoiding-dais-buffers&#34; target=&#34;_blank&#34; id=&#34;Adventures in Avoiding DAIS Buffers&#34;&gt;Adventures in Avoiding DAIS Buffers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the authors&amp;rsquo; findings when exploring Visibility buffers and methods to access UV derivatives&lt;/li&gt;
&lt;li&gt;presents the different methods, additional texture channels, ray-tracing into cached vertex transforms, and usage of LDS for short-term caching&lt;/li&gt;
&lt;li&gt;presents code implementations of the techniques and presents quality comparison videos&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-356/differential_quality_comparision.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240909034858/https://games.acm.org/adventures-in-avoiding-dais-buffers/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ratusapp.wordpress.com/2024/09/08/screen-space-shadows&#34; target=&#34;_blank&#34; id=&#34;Screen Space Shadows&#34;&gt;Screen Space Shadows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents his idea for a screen-space shadow technique that relies on Hierarchical Depth Buffers for each shadow-casting light&lt;/li&gt;
&lt;li&gt;starts with a brief overview of virtual shadow maps and the difficulties of debugging them that lead to the idea&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-356/vsm-max-pages-exceeded-artifact.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240908144249/https://ratusapp.wordpress.com/2024/09/08/screen-space-shadows/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/zeux/volk/releases/tag/1.3.295&#34; target=&#34;_blank&#34; id=&#34;volk - 1.3.295&#34;&gt;volk - 1.3.295&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the release adds support for new Vulkan extensions&lt;/li&gt;
&lt;li&gt;exposes VK_AMD_anti_lag, VK_KHR_calibrated_timestamps, VK_KHR_pipeline_binary and others&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-356/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240907033955/https://github.com/zeux/volk/releases/tag/1.3.295&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 355 -  September 1st, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-355/</link>
      <pubDate>Sun, 01 Sep 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-355/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/bringing-explicit-pipeline-caching-control-to-vulkan&#34; target=&#34;_blank&#34; id=&#34;Bringing Explicit Pipeline Caching Control to Vulkan&#34;&gt;Bringing Explicit Pipeline Caching Control to Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an overview of the new  VK_KHR_pipeline_binary that allows direct retrieval of binary data associated with individual pipelines&lt;/li&gt;
&lt;li&gt;this extension allows applications to write custom caching, pre-compilation as well as loading mechanisms&lt;/li&gt;
&lt;li&gt;The article explains what the extension allows, how it&amp;rsquo;s exposed, and considerations when designing a caching system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-355/vulkan-explicit-control-over-pipline-caching.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240829150022/https://www.khronos.org/blog/bringing-explicit-pipeline-caching-control-to-vulkan&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.activision.com/publications/2024/08/Neural_Light_Grid&#34; target=&#34;_blank&#34; id=&#34;The Neural Light Grid: A Scalable Production-Ready Learned Irradiance Volume&#34;&gt;The Neural Light Grid: A Scalable Production-Ready Learned Irradiance Volume&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a new method for precomputing indirect lighting into a novel form of Irradiance Volume&lt;/li&gt;
&lt;li&gt;It discusses how two approaches, one neural net and one parametric function based on ReLU fields&lt;/li&gt;
&lt;li&gt;presents performance and memory usage information and presents comparisons against existing solutions&lt;/li&gt;
&lt;li&gt;additionally discusses the limitations of the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-355/Neural_Light_Grid_Image.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240902183643/https://research.activision.com/publications/2024/08/Neural_Light_Grid&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.sctheblog.com/blog/hair-software-rasterize/&#34; target=&#34;_blank&#34; id=&#34;Software rasterizing hair&#34;&gt;Software rasterizing hair&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents a discussion of how to apply software rasterizing to the problem of hair rendering&lt;/li&gt;
&lt;li&gt;technique is based on the Frostbite technique from the presentation &amp;ldquo;Every Strand Counts: Physics and Rendering Behind Frostbite&amp;rsquo;s Hair&amp;rdquo;&lt;/li&gt;
&lt;li&gt;discusses the implementation of the steps that make up the technique, such as spline projection, rasterization using edge functions, as well as interpolation information along the strands&lt;/li&gt;
&lt;li&gt;WebGPU demo and implementation is available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-355/frostbitten-hair-static-img.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240902183823/https://www.sctheblog.com/blog/hair-software-rasterize/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://generalarcade.com/jobs/graphics-rendering-engineer/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphics Rendering Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Relocate, Remote, Kuala Lumpur&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;General Arcade, a porting and co-development studio that has worked with a wide range of clients, from indies to AAA developers and publishers, including Larian, From Software, Capcom, Devolver Digital, TinyBuild, and others, is seeking a Software Engineer with a rendering emphasis.&lt;/p&gt;

&lt;p&gt;This is a great opportunity to work with a passionate engineering team on cutting-edge industry technologies.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/GA-1280-black.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;generalarcade_week_355&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://moonside.games/posts/layers-all-the-way-down&#34; target=&#34;_blank&#34; id=&#34;Layers All The Way Down: The Untold Story of Shader Compilation Background&#34;&gt;Layers All The Way Down: The Untold Story of Shader Compilation Background&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes the reasoning why SDL GPU doesn&amp;rsquo;t require a single portable high-level shader language&lt;/li&gt;
&lt;li&gt;focuses on the complexity of the shader ecosystem, how different formats are converted and required to be across platforms&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-355/fez-sdl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240830162737/https://moonside.games/posts/layers-all-the-way-down/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=rSn7lUWUN0E&#34; target=&#34;_blank&#34; id=&#34;[video] Animated 80s Sunset Pattern - Procedural Shapes and Patterns - Episode 10&#34;&gt;[video] Animated 80s Sunset Pattern - Procedural Shapes and Patterns - Episode 10&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how to implement a perspective-animated grid with a color gradient&lt;/li&gt;
&lt;li&gt;presents how to implement perspective wrap in UV space&lt;/li&gt;
&lt;li&gt;combines with other nodes to create the effect&lt;/li&gt;
&lt;li&gt;implementation is shown in Unity and Unreal visual shading languages&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-355/animated_grid_with_gradient.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/libsdl-org/SDL/pull/9312&#34; target=&#34;_blank&#34; id=&#34;The GPU API MkII&#34;&gt;The GPU API MkII&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;SDL GPU abstraction has been merged into the main branch&lt;/li&gt;
&lt;li&gt;provides a D3D11, D3D12, Metal and Vulkan implementation layer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-355/sdl_gpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240831052430/https://github.com/libsdl-org/SDL/pull/9312&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lcamtuf.substack.com/p/random-finds-ai-image-upscale-collapse&#34; target=&#34;_blank&#34; id=&#34;The untimely demise of an image upscaler&#34;&gt;The untimely demise of an image upscaler&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the effects of applying ML upscaling algorithms repeatedly to the same image&lt;/li&gt;
&lt;li&gt;compares against the effect of repeatedly scaling an image using a Lanczos filter&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-355/image_upscaling_test.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240830082445/https://lcamtuf.substack.com/p/random-finds-ai-image-upscale-collapse&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://atyuwen.github.io/&#34; target=&#34;_blank&#34;&gt;Yuwen Wu&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 354 -  August 25th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-354/</link>
      <pubDate>Sun, 25 Aug 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-354/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hgpu.org/?p=29362&#34; target=&#34;_blank&#34; id=&#34;Characterizing CUDA and OpenMP Synchronization Primitives&#34;&gt;Characterizing CUDA and OpenMP Synchronization Primitives&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an overview of the performance characteristics of synchronization primitives&lt;/li&gt;
&lt;li&gt;discusses what factors affect performance and presents performance results for these factors&lt;/li&gt;
&lt;li&gt;presents an open-source testing framework to measure these effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-354/cuda_primitives.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/KhronosGroup/Vulkan-Docs/blob/fb9f45c5ee8f4e8cd6f2b19eeb751fd305773a67/proposals/VK_KHR_pipeline_binary.adoc&#34; target=&#34;_blank&#34; id=&#34;VK_KHR_pipeline_binary&#34;&gt;VK_KHR_pipeline_binary&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this proposal discusses an alternative approach to Pipeline caching in Vulkan&lt;/li&gt;
&lt;li&gt;explains limitations of the existing Vulkan methods&lt;/li&gt;
&lt;li&gt;presents how the proposed solutions suggest solving limitations and giving application developers more control&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-354/Vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240826061737/https://github.com/KhronosGroup/Vulkan-Docs/blob/fb9f45c5ee8f4e8cd6f2b19eeb751fd305773a67/proposals/VK_KHR_pipeline_binary.adoc&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://terathon.com/blog/poor-foundations-ga.html&#34; target=&#34;_blank&#34; id=&#34;Poor Foundations in Geometric Algebra&#34;&gt;Poor Foundations in Geometric Algebra&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents how Geometric Algebra concepts are often defined in the literature and what better definitions look like&lt;/li&gt;
&lt;li&gt;discusses different concepts such as Inner Products, Contractions, and duals&lt;/li&gt;
&lt;li&gt;additionally ensures comparing the best possible GA implementation against the best possible matrix implementations for a more fair comparison of the implementations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-354/geometric_algebra.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240826061921/http://terathon.com/blog/poor-foundations-ga.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.stefanpijnacker.nl/article/compute-with-directx-12-part-2/&#34; target=&#34;_blank&#34; id=&#34;Compute With DirectX 12 – Part 2: The Setup&#34;&gt;Compute With DirectX 12 – Part 2: The Setup&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the D3D12 tutorial presents how to get started with compute shader usage&lt;/li&gt;
&lt;li&gt;explains the steps required to setup shaders, create the necessary API objects, and execute the shader&lt;/li&gt;
&lt;li&gt;source code is available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-354/d3d12_compute_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240826062109/https://www.stefanpijnacker.nl/article/compute-with-directx-12-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://generalarcade.com/jobs/graphics-rendering-engineer/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphics Rendering Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Relocate, Remote, Kuala Lumpur&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;General Arcade, a porting and co-development studio that has worked with a wide range of clients, from indies to AAA developers and publishers, including Larian, From Software, Capcom, Devolver Digital, TinyBuild, and others, is seeking a Software Engineer with a rendering emphasis.&lt;/p&gt;

&lt;p&gt;This is a great opportunity to work with a passionate engineering team on cutting-edge industry technologies.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/GA-1280-black.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;generalarcade_week_354&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://anki3d.org/workarounds-for-issues-with-mesh-shaders-vulkan-hlsl/&#34; target=&#34;_blank&#34; id=&#34;Workarounds for issues with mesh shaders &amp;#43; Vulkan &amp;#43; HLSL&#34;&gt;Workarounds for issues with mesh shaders &amp;#43; Vulkan &amp;#43; HLSL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post explains how HLSL shaders compiled for mesh shader usage with Vulkan require special annotations&lt;/li&gt;
&lt;li&gt;default shader behavior doesn&amp;rsquo;t handle it correctly, and it only fails on AMD without any validation errors&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-354/logo_248.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240819195858/https://anki3d.org/workarounds-for-issues-with-mesh-shaders-vulkan-hlsl/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jglrxavpok.github.io/2024/08/21/recreating-nanite-raytracing.html&#34; target=&#34;_blank&#34; id=&#34;Recreating Nanite: Raytracing&#34;&gt;Recreating Nanite: Raytracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses a method to allow virtual geometry to be represented in ray-tracing scenes&lt;/li&gt;
&lt;li&gt;explains issues related to BVH construction and LOD selection&lt;/li&gt;
&lt;li&gt;shows how to integrate generation logic into loading and runtime frames&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-354/virtual_geometry_raytracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240826062256/https://jglrxavpok.github.io/2024/08/21/recreating-nanite-raytracing.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=SwGbHsBAcZ0&#34; target=&#34;_blank&#34; id=&#34;Visualizing 4D Pt.1&#34;&gt;Visualizing 4D Pt.1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video develops a mental model for 4-dimensional space&lt;/li&gt;
&lt;li&gt;explores where the space is located and what it represents&lt;/li&gt;
&lt;li&gt;starts exploring the space via generalization of concepts from 2D to 3D and finally to 4D&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-354/4D_space_model.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/using-isadecoder-api/&#34; target=&#34;_blank&#34; id=&#34;Decoding instructions with the machine-readable AMD GPU ISA specifications&#34;&gt;Decoding instructions with the machine-readable AMD GPU ISA specifications&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the short blog post presents how to use human-readable ISA documentation to decode one CDNA instruction&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-354/gpu_amd.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/machine-readable-isa/&#34; target=&#34;_blank&#34; id=&#34;AMD GPU machine-readable ISA documentation&#34;&gt;AMD GPU machine-readable ISA documentation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD released ISA documentation for RDNA2 and CDNA ISA&lt;/li&gt;
&lt;li&gt;additionally, it presents a small example application that presents how to use the released data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-354/gpu_amd2.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240823053727/https://gpuopen.com/learn/using-isadecoder-api/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ea.com/seed/news/gigi&#34; target=&#34;_blank&#34; id=&#34;Gigi: Rapid Prototyping Platform for Real-Time Rendering&#34;&gt;Gigi: Rapid Prototyping Platform for Real-Time Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post introduces a prototyping programming platform for shader development&lt;/li&gt;
&lt;li&gt;exposes a way to use a visual node graph editor and HLSL shader nodes for the development of shader techniques&lt;/li&gt;
&lt;li&gt;allows the export of the developed solution into D3D12 code (more targets will be supported later)&lt;/li&gt;
&lt;li&gt;the video tutorial presents how to use the system and the debug tools available to implement a box blur technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-354/seed-gigieditor.png.adapt.1456w.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240823212004/https://www.ea.com/seed/news/gigi&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=kVqFMKF1YcQ&#34; target=&#34;_blank&#34; id=&#34;Programmable Vertex Pulling // Intermediate OpenGL Series&#34;&gt;Programmable Vertex Pulling // Intermediate OpenGL Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to load vertex information from within a Vertex Shader instead of relying on fixed function hardware&lt;/li&gt;
&lt;li&gt;provides an overview of the concepts of Programmable Vertex Pulling and use cases that are enabled through it&lt;/li&gt;
&lt;li&gt;implementation is shown using OpenGL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-354/opengl_vertex_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://lesleylai.info&#34; target=&#34;_blank&#34;&gt;Lesley Lai&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 353 -  August 18th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-353/</link>
      <pubDate>Sun, 18 Aug 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-353/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://advances.realtimerendering.com/s2024/content/Cao-NanoMesh/AdavanceRealtimeRendering_NanoMesh0810.pdf&#34; target=&#34;_blank&#34; id=&#34;Seamless Rendering on Mobile: The Magic of Adaptive LOD Pipeline&#34;&gt;Seamless Rendering on Mobile: The Magic of Adaptive LOD Pipeline&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation discusses how to use cluster-based mesh representations to allow transitions between model levels&lt;/li&gt;
&lt;li&gt;shows how to calculate the cluster representations calculate cluster error metrics to allow LOD selection&lt;/li&gt;
&lt;li&gt;additionally, it discusses how to integrate support for skinned meshes&lt;/li&gt;
&lt;li&gt;provides performance numbers for the different stages of the pipeline&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-353/seamless_cluster_mobile.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240816072405/https://advances.realtimerendering.com/s2024/content/Cao-NanoMesh/AdavanceRealtimeRendering_NanoMesh0810.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://jonathanolson.net/exact-polygonal-filtering&#34; target=&#34;_blank&#34; id=&#34;Exact Polygonal Filtering&#34;&gt;Exact Polygonal Filtering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes an approach to calculating accurate filtering of polygonal shapes with closed-form solutions&lt;/li&gt;
&lt;li&gt;discusses the underlying theory of the method and implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-353/mitchell-netravali-filter.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240816013452/http://jonathanolson.net/exact-polygonal-filtering&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rust-gpu.github.io/blog/transition-announcement/&#34; target=&#34;_blank&#34; id=&#34;Rust GPU Transitions to Community Ownership&#34;&gt;Rust GPU Transitions to Community Ownership&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post announces that Rust GPU (compiling Rust into SPIR-V) will transition from Embark to Community ownership&lt;/li&gt;
&lt;li&gt;a brief overview of the goals and next steps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-353/rust-gpu.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240816040835/https://rust-gpu.github.io/blog/transition-announcement/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://generalarcade.com/jobs/graphics-rendering-engineer/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphics Rendering Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Relocate, Remote, Kuala Lumpur&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;General Arcade, a porting and co-development studio that has worked with a wide range of clients, from indies to AAA developers and publishers, including Larian, From Software, Capcom, Devolver Digital, TinyBuild, and others, is seeking a Software Engineer with a rendering emphasis.&lt;/p&gt;

&lt;p&gt;This is a great opportunity to work with a passionate engineering team on cutting-edge industry technologies.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/GA-1280-black.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;generalarcade_week_353&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://theorangeduck.com/page/closed-form-matrix-decompositions&#34; target=&#34;_blank&#34; id=&#34;Closed-Form 3x3 Matrix Decompositions&#34;&gt;Closed-Form 3x3 Matrix Decompositions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses a closed-form solution for polar and singular value decomposition of 3x3 matrixes&lt;/li&gt;
&lt;li&gt;based on findings from &amp;ldquo;Isotropic ARAP energy using Cauchy-Green invariants&amp;rdquo;&lt;/li&gt;
&lt;li&gt;contains the source code implementation&lt;/li&gt;
&lt;li&gt;additionally, it discusses how to improve numerical stability&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-353/decomposition.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240815065531/https://theorangeduck.com/page/closed-form-matrix-decompositions&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=hMNQHlbHYHc&#34; target=&#34;_blank&#34; id=&#34;[video] MaterialX Virtual Town Hall 2024&#34;&gt;[video] MaterialX Virtual Town Hall 2024&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation covers the current state of OpenPBR and the state of integration into MaterialX&lt;/li&gt;
&lt;li&gt;updates on the state of support in tools&lt;/li&gt;
&lt;li&gt;additionally provides a look at the upcoming developments&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-353/virtual_town_hall.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ikwIpn_elgA&#34; target=&#34;_blank&#34; id=&#34;[video] Work Graphs: Hands-On with the Future of Graphics Programming&#34;&gt;[video] Work Graphs: Hands-On with the Future of Graphics Programming&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk provides an overview of the D3D12 work graph API&lt;/li&gt;
&lt;li&gt;provides details into how the API is mapped onto AMD hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-353/work_graphs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/AlexSabourinDev/cranberry_blog/blob/master/StretchyReflections.md&#34; target=&#34;_blank&#34; id=&#34;Why Do Reflections Stretch At The Horizon?&#34;&gt;Why Do Reflections Stretch At The Horizon?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post provides an explanation of Microfacet Models&lt;/li&gt;
&lt;li&gt;shows how the reflections are affected by the surface and the view directions&lt;/li&gt;
&lt;li&gt;presents how this explains the look of reflections on water surfaces as they approach the horizon&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-353/Ottawa01_reflection.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240819040836/https://github.com/AlexSabourinDev/cranberry_blog/blob/master/StretchyReflections.md&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://lesleylai.info&#34; target=&#34;_blank&#34;&gt;Lesley Lai&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 352 -  August 11th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-352/</link>
      <pubDate>Sun, 11 Aug 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-352/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://advances.realtimerendering.com/s2024/index.html#hable&#34; target=&#34;_blank&#34; id=&#34;Variable Rate Shading with Visibility Buffer Rendering&#34;&gt;Variable Rate Shading with Visibility Buffer Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentations provide a detailed overview of the challenges when implementing Visibility Buffer RenderinVisibility Buffer Rendering&lt;/li&gt;
&lt;li&gt;discusses why classical rasterization techniques could be limiting on high triangle density and how&lt;/li&gt;
&lt;li&gt;presents the different challenges that need to be solved when implementing the technique&lt;/li&gt;
&lt;li&gt;for the challenges, present different possible solutions, discuss tradeoffs, and present performance numbers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-352/visibility_buffer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240812052406/https://advances.realtimerendering.com/s2024/content/Hable/Advances_SIGGRAPH_2024_VisibilityVRS-SIGGRAPH_Advances_2024.pptx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://markjgillespie.com/Research/harnack-tracing/index.html&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing Harmonic Functions&#34;&gt;Ray Tracing Harmonic Functions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a technique that allows Harmonic Functions to be sphere-traced directly&lt;/li&gt;
&lt;li&gt;discusses use cases where the Harmonic Functions can be applied, such as grid shells, surface reconstructions&lt;/li&gt;
&lt;li&gt;A real-time shader toy demo is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-352/harmonic_teaser.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240811014305/https://markjgillespie.com/Research/harnack-tracing/index.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.guerrilla-games.com/read/synthesizing-realistic-clouds-for-video-games&#34; target=&#34;_blank&#34; id=&#34;Synthesizing Realistic Clouds for Video Games&#34;&gt;Synthesizing Realistic Clouds for Video Games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk presents an overview of the Decima (Horizon Zero Dawn) cloud rendering system&lt;/li&gt;
&lt;li&gt;covers the different phenomenons that need to be combined to create realistic clouds&lt;/li&gt;
&lt;li&gt;discusses how to implement and combine the different aspects into a sading and modeling solution&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-352/cloud_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240812052722/https://d3d3g8mu99pzk9.cloudfront.net/AndrewSchneider/Schneider%20-%20Synthesizing%20Realistic%20Clouds%20for%20Video%20Games.pptx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/vulkan-sc-1.0.15-released-spir-v-validation-and-new-nvidia-drivers-for-desktop-systems-available&#34; target=&#34;_blank&#34; id=&#34;Vulkan SC 1.0.15 Released: SPIR-V Validation and New NVIDIA Drivers for Desktop Systems Available&#34;&gt;Vulkan SC 1.0.15 Released: SPIR-V Validation and New NVIDIA Drivers for Desktop Systems Available&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog posts documents which extensions have been ratified and included as part of Vulkan Safety Critical&lt;/li&gt;
&lt;li&gt;clarifies how to provide SPIR-V for use with the validation layer&lt;/li&gt;
&lt;li&gt;additionally, it presents an update on the Driver support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-352/Vulkan-SC.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240810155221/https://www.khronos.org/blog/vulkan-sc-1.0.15-released-spir-v-validation-and-new-nvidia-drivers-for-desktop-systems-available&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://generalarcade.com/jobs/graphics-rendering-engineer/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphics Rendering Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Relocate, Remote, Kuala Lumpur&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;General Arcade, a porting and co-development studio that has worked with a wide range of clients, from indies to AAA developers and publishers, including Larian, From Software, Capcom, Devolver Digital, TinyBuild, and others, is seeking a Software Engineer with a rendering emphasis.&lt;/p&gt;

&lt;p&gt;This is a great opportunity to work with a passionate engineering team on cutting-edge industry technologies.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/GA-1280-black.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;generalarcade_week_352&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/improving-gpu-performance-by-reducing-instruction-cache-misses-2/&#34; target=&#34;_blank&#34; id=&#34;Improving GPU Performance by Reducing Instruction Cache Misses&#34;&gt;Improving GPU Performance by Reducing Instruction Cache Misses&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents how to detect if a GPU workload is limited by instruction cache misses&lt;/li&gt;
&lt;li&gt;discusses techniques that can be applied to reduce instruction cache misses&lt;/li&gt;
&lt;li&gt;shows how to see the effect of the changes using the NVIDIA Nsight Compute tool&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-352/warp-stall-reasons-four-workloads.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240812052050/https://developer.nvidia.com/blog/improving-gpu-performance-by-reducing-instruction-cache-misses-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/querying-the-pix-timing-capture-file-format/&#34; target=&#34;_blank&#34; id=&#34;Querying the PIX Timing Capture file format&#34;&gt;Querying the PIX Timing Capture file format&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post reveals that pix timing captures are internally using SQLite as a storage format&lt;/li&gt;
&lt;li&gt;provides SQLite code to allow access to the data in the container&lt;/li&gt;
&lt;li&gt;the provided example code shows different use cases, including comments to describe the functionality of each demo sample in detail&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-352/pix_sql.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240808112039/https://devblogs.microsoft.com/pix/querying-the-pix-timing-capture-file-format/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/four-new-papers-released-for-hpg-conference/&#34; target=&#34;_blank&#34; id=&#34;Highlights from HPG Conference 2024: Four exciting new research papers&#34;&gt;Highlights from HPG Conference 2024: Four exciting new research papers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post introduces AMD papers released at HPG (High-Performance Graphics) 2024&lt;/li&gt;
&lt;li&gt;covers Real-Time Procedural Generation with GPU Work Graphs, H-PLOC – Super-Fast BVH Construction, HIPRT – A Ray Tracing Framework in HIP as well as DGF – Geometry Compression for Micropolygon Meshes&lt;/li&gt;
&lt;li&gt;each comes with a short video to summarize the main paper developments and takeaways&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-352/hpg_paper.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240811002041/https://gpuopen.com/four-new-papers-released-for-hpg-conference/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=bUTURdeg7IU&#34; target=&#34;_blank&#34; id=&#34;[video] Game Engine Programming 071.1 - Introduction to Physically Based Rendering&#34;&gt;[video] Game Engine Programming 071.1 - Introduction to Physically Based Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents a brief summary of Physically Based Rendering methods&lt;/li&gt;
&lt;li&gt;discusses the model as presented by Google Filament&lt;/li&gt;
&lt;li&gt;closes with a comparison against Phon shading results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-352/pbr_intro.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=CURcteWRmKs&#34; target=&#34;_blank&#34; id=&#34;[video] Pass me that render, please // Vulkan For Beginners #12&#34;&gt;[video] Pass me that render, please // Vulkan For Beginners #12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains the Vulkan render pass concept&lt;/li&gt;
&lt;li&gt;shows how to use a render pass to clear the framebuffer to a constant color&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-352/render_pass_vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/Jontology&#34; target=&#34;_blank&#34;&gt;Jon Greenberg&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 351 -  August 4th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-351/</link>
      <pubDate>Sun, 04 Aug 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-351/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://youtu.be/lx1v-BczaBM?t=28256&#34; target=&#34;_blank&#34; id=&#34;[video] Keynote by Peter Shirley: 60 fps rendering: past, present, and future&#34;&gt;[video] Keynote by Peter Shirley: 60 fps rendering: past, present, and future&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The keynote covers the history of computer graphics research (in algorithms, materials) with a focus on techniques used until today&lt;/li&gt;
&lt;li&gt;discusses a look into the future by presenting techniques of the past that were not successful with current research&lt;/li&gt;
&lt;li&gt;additionally presents how the user base might influence research directions in the future&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-351/hpg_keynote.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-quantization&#34; target=&#34;_blank&#34; id=&#34;A Visual Guide to Quantization&#34;&gt;A Visual Guide to Quantization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post visuall explains floating point quantization techniques&lt;/li&gt;
&lt;li&gt;presenting 32-bit, 16-bit as well as 8-bit floating point formats&lt;/li&gt;
&lt;li&gt;explains the concepts in relationship to LLM models&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-351/quantization_fp32_int8.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240804024351/https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-quantization&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=j3bW_EvCS4k&#34; target=&#34;_blank&#34; id=&#34;[video] EGSR2024: Ray Traced Stochastic Depth Map for Ambient Occlusion&#34;&gt;[video] EGSR2024: Ray Traced Stochastic Depth Map for Ambient Occlusion&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk recording discusses a method for calculating ambient occlusion using stochastic depth maps to optimize ray-traced AO&lt;/li&gt;
&lt;li&gt;presents a quality comparison with different resolutions and different test cases&lt;/li&gt;
&lt;li&gt;additionally compares against screen space solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-351/stochastic_depth_ao.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.selfshadow.com/2024/08/03/siggraph-2024-links&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2024 Links&#34;&gt;SIGGRAPH 2024 Links&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of links to SIGGRAPH 2024 resources&lt;/li&gt;
&lt;li&gt;includes courses, talks, posters as well as open source data releases&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-351/s24_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240806042435/https://blog.selfshadow.com/2024/08/03/siggraph-2024-links/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://advances.realtimerendering.com/s2024/content/EA-Serac/Flexible%20and%20Extensible%20Shader%20Authoring%20in%20Frostbite%20with%20Serac-SIGGRAPH2024Advances_8.2.2024.pptx&#34; target=&#34;_blank&#34; id=&#34;[pptx] Flexible and Extensible Shader Authoring in Frostbite with Serac&#34;&gt;[pptx] Flexible and Extensible Shader Authoring in Frostbite with Serac&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Siggraph presentation presents Frostbites&amp;rsquo; shader authoring solution&lt;/li&gt;
&lt;li&gt;shows how it allows extensible component replacement, mixing of different implementations, and automatic interpolation logic&lt;/li&gt;
&lt;li&gt;additionally discusses what worked well, what still needs to be improved&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-351/frostbite_shader_authoring.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240806042457/https://advances.realtimerendering.com/s2024/content/EA-Serac/Flexible%20and%20Extensible%20Shader%20Authoring%20in%20Frostbite%20with%20Serac-SIGGRAPH2024Advances_8.2.2024.pptx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.activision.com/activision/2024/activision-releases-call-of-duty-warzone-caldera-data-set?s=09&amp;amp;utm_source=pocket_shared&#34; target=&#34;_blank&#34; id=&#34;Activision Releases Call of Duty®: Warzone™ Caldera Data Set for Academic Use&#34;&gt;Activision Releases Call of Duty®: Warzone™ Caldera Data Set for Academic Use&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post announces the release of the geometry for the Call of Duty Warzone map in USD format&lt;/li&gt;
&lt;li&gt;The dataset contains five million meshes, 28 million primitives, and more than one billion point instances&lt;/li&gt;
&lt;li&gt;license allows use for non-commercial, academic use&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-351/COD_CALDERA.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240806042528/https://blog.activision.com/activision/2024/activision-releases-call-of-duty-warzone-caldera-data-set?s=09&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://odedstein.com/projects/reach-for-the-arcs&#34; target=&#34;_blank&#34; id=&#34;Reconstructing Surfaces from SDFs via Tangent Points&#34;&gt;Reconstructing Surfaces from SDFs via Tangent Points&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a method that converts an SDF into a point cloud&lt;/li&gt;
&lt;li&gt;point cloud is then converted into a mesh surface&lt;/li&gt;
&lt;li&gt;compares the quality of the new algorithm against existing solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-351/sdf_teaser.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240723160336/http://odedstein.com/projects/reach-for-the-arcs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Zn9hhcu2LDg&#34; target=&#34;_blank&#34; id=&#34;[video] Game Engine Programming 070.3 - Mikk TSpace&#34;&gt;[video] Game Engine Programming 070.3 - Mikk TSpace&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video episode explains how to integrate Mikk TSpace tangent space calculation into the engine&lt;/li&gt;
&lt;li&gt;discusses the importance of consistent tangent space authoring for good results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-351/tangent_space_calculations.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/Jontology&#34; target=&#34;_blank&#34;&gt;Jon Greenberg&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 350  -  July 28th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-350/</link>
      <pubDate>Sun, 28 Jul 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-350/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://linebender.org/gpu-stroke-expansion-paper/&#34; target=&#34;_blank&#34; id=&#34;GPU-friendly Stroke Expansion&#34;&gt;GPU-friendly Stroke Expansion&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new method to apply strokes to lines in a GPU-friendly way&lt;/li&gt;
&lt;li&gt;presents how to lower filled and stroked Bézier paths into an Euler spiral as an intermediate representation&lt;/li&gt;
&lt;li&gt;tests and shows the performance of the implementation on CPU and GPUs&lt;/li&gt;
&lt;li&gt;video and code have been released&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-350/gpu_stroke_expansion.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://youtu.be/qPmwbp7A3BQ?t=20666&#34; style=&#34;color:white;&#34;&gt;video &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240727133935/https://linebender.org/gpu-stroke-expansion-paper/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=VbsLoR3Ml_8&#34; target=&#34;_blank&#34; id=&#34;[video] Karen Ghavam Keynote at HPG 2024&#34;&gt;[video] Karen Ghavam Keynote at HPG 2024&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation recording discusses the development of the Vulkan ecosystem&lt;/li&gt;
&lt;li&gt;how LunarG came to deliver the Vulkan SDK, the history of the developments, and ecosystem overview&lt;/li&gt;
&lt;li&gt;presents a look into the development approach, improvements, and how it worked in practice&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-350/hpg_vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://materialx.org/assets/ASWF_OSD2024_MaterialX_Final.pdf&#34; target=&#34;_blank&#34; id=&#34;MaterialX and OpenPBR Town Hall&#34;&gt;MaterialX and OpenPBR Town Hall&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation covers the current state of OpenPBR and the state of integration into MaterialX&lt;/li&gt;
&lt;li&gt;updates on the state of support in tools&lt;/li&gt;
&lt;li&gt;additionally provides a look at the upcoming developments&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-350/openpbr_slides.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240730033000/https://materialx.org/assets/ASWF_OSD2024_MaterialX_Final.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ggx-research.github.io/publication/2024/07/27/publication-cbt.html&#34; target=&#34;_blank&#34; id=&#34;Concurrent Binary Trees for Large-Scale Game Components&#34;&gt;Concurrent Binary Trees for Large-Scale Game Components&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a concurrent binary tree (CBT) for adaptive triangulations of arbitrary (half-edge) meshes&lt;/li&gt;
&lt;li&gt;shows how to use a CBT as a memory management construct&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-350/cbt-teaser.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240730033340/https://ggx-research.github.io/publication/2024/07/27/publication-cbt&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/download/publications/HPLOC.pdf&#34; target=&#34;_blank&#34; id=&#34;H-PLOC: Super-fast, high-quality BVH construction&#34;&gt;H-PLOC: Super-fast, high-quality BVH construction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an approach to BVH construction based on the parallel locally-
ordered clustering approach (PLOC) and PLOC++&lt;/li&gt;
&lt;li&gt;shows how to implement the algorithm in a single kernel launch&lt;/li&gt;
&lt;li&gt;explains a method to convert the binary BVH into wide BVHs where each parent can have an N number of child nodes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-350/bvh_construction.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240730033051/https://gpuopen.com/download/publications/HPLOC.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/download/publications/DGF.pdf&#34; target=&#34;_blank&#34; id=&#34;DGF: A Dense, Hardware-Friendly Geometry Format for Lossily Compressing Meshlets with Arbitrary Topologies&#34;&gt;DGF: A Dense, Hardware-Friendly Geometry Format for Lossily Compressing Meshlets with Arbitrary Topologies&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a block-compressed geometry format&lt;/li&gt;
&lt;li&gt;explains the data packing applied, what can be encoded, and how to compress it&lt;/li&gt;
&lt;li&gt;presents memory comparisons against existing solutions&lt;/li&gt;
&lt;li&gt;additionally shows how hardware support with ray-tracing BVH builds might reduce memory consumption&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-350/packed_geometry.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240717202308/https://gpuopen.com/download/publications/DGF.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/work_graphs_mesh_nodes/work_graphs_mesh_nodes-procedural_generation/&#34; target=&#34;_blank&#34; id=&#34;Procedural generation&#34;&gt;Procedural generation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an overview of generating a procedural world&lt;/li&gt;
&lt;li&gt;discusses how biomes, terrain, grass, and flowers are placed&lt;/li&gt;
&lt;li&gt;additionally shows how they turned the flat world into a sphere  &lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-350/work_graphs_mesh_nodes.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240730033652/https://gpuopen.com/learn/work_graphs_mesh_nodes/work_graphs_mesh_nodes-procedural_generation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dl.acm.org/doi/10.1145/3665320.3670993&#34; target=&#34;_blank&#34; id=&#34;Cache Points for Production-Scale Occlusion-Aware Many-Lights Sampling and Volumetric Scatterin&#34;&gt;Cache Points for Production-Scale Occlusion-Aware Many-Lights Sampling and Volumetric Scatterin&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This paper provides a deep dive into Disney&amp;rsquo;s Hyperion Renderer&amp;rsquo;s many-lights sampling system&lt;/li&gt;
&lt;li&gt;presents how it caches and interpolates light sampling distributions at points throughout space&lt;/li&gt;
&lt;li&gt;Presents how the approach allows the incorporation of learned visibility estimates into light sampling distributions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-350/light_caching.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240727011932/https://dl.acm.org/doi/10.1145/3665320.3670993&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hal.science/hal-04654692&#34; target=&#34;_blank&#34; id=&#34;GigaVoxels DP : Starvation-Less Render and Production for Large and Detailed Volumetric Worlds Walkthrough&#34;&gt;GigaVoxels DP : Starvation-Less Render and Production for Large and Detailed Volumetric Worlds Walkthrough&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a voxel scene processing model that allows on-demand production of data during rendering&lt;/li&gt;
&lt;li&gt;presents how to overlap the work to reduce synchronization and starvation issues&lt;/li&gt;
&lt;li&gt;shows a way to visualize the execution of GPU cores on a dynamic timeline&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-350/voxel_parallel.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240730033712/https://hal.science/hal-04654692&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/frame-latency-meter-flm-1-0/&#34; target=&#34;_blank&#34; id=&#34;Introducing Frame Latency Meter (FLM) v1.0&#34;&gt;Introducing Frame Latency Meter (FLM) v1.0&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD released a tool to help measure input to screen latency on Windows&lt;/li&gt;
&lt;li&gt;users can specify a region to watch for changes; if a simulated mouse event triggers a change in this region, it calculates the latency and records for later analyses&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-350/flm.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240726152456/https://gpuopen.com/learn/frame-latency-meter-flm-1-0/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cybereality.com/screen-space-indirect-lighting-with-visibility-bitmask-improvement-to-gtao-ssao-real-time-ambient-occlusion-algorithm-glsl-shader-implementation&#34; target=&#34;_blank&#34; id=&#34;Screen Space Indirect Lighting with Visibility Bitmask: Improvement to GTAO/SSAO Real-Time Ambient Occlusion Algorithm (GLSL Shader Implementation)&#34;&gt;Screen Space Indirect Lighting with Visibility Bitmask: Improvement to GTAO/SSAO Real-Time Ambient Occlusion Algorithm (GLSL Shader Implementation)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an overview of the author&amp;rsquo;s implementation of Screen Space Indirect Lighting with Visibility Bitmask&lt;/li&gt;
&lt;li&gt;presents an overview of the technique, discussing tradeoffs of the implementation&lt;/li&gt;
&lt;li&gt;shows the results in-engine in a test scene and shows the shader implementation in GLSL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-350/SSILVB_Crate_Shot.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240730034339/https://cybereality.com/screen-space-indirect-lighting-with-visibility-bitmask-improvement-to-gtao-ssao-real-time-ambient-occlusion-algorithm-glsl-shader-implementation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=htr3vELCmnY&#34; target=&#34;_blank&#34; id=&#34;[video] Normal Mapping Adventures // OpenGL Intermediate Series&#34;&gt;[video] Normal Mapping Adventures // OpenGL Intermediate Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial provides an overview of the normal mapping technique&lt;/li&gt;
&lt;li&gt;explains the limitations of vertex and interpolated vertex lighting&lt;/li&gt;
&lt;li&gt;followed by an explanation of how normal maps allow additional information and how to generate this required data&lt;/li&gt;
&lt;li&gt;finally, it provides a detailed discussion of the implementation steps using OpenGL/GLSL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-350/OpenGL_normal_mapping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Jhon Adams for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 349  -  July 21st, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-349/</link>
      <pubDate>Sun, 21 Jul 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-349/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/brix-foliage-gi/brix-foliage-gi-index/&#34; target=&#34;_blank&#34; id=&#34;Foliage in AMD FidelityFX™ Brixelizer GI&#34;&gt;Foliage in AMD FidelityFX™ Brixelizer GI&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the 2-part article series explains how Brixelizer GI (a sparse distance field backed GI solution) limitations affect Foliage geometry&lt;/li&gt;
&lt;li&gt;part 1 explains the limitations, and Part 2 covers how to extend the system to support Foliage (alpha-tested) geometry&lt;/li&gt;
&lt;li&gt;the implementation of an additional Alpha cache helps to resolve the problem&lt;/li&gt;
&lt;li&gt;additionally, it discusses how the system deals with animations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-349/brixelizer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240717234139/https://gpuopen.com/learn/brix-foliage-gi/brix-foliage-gi-index/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=fDjEq30dwNM&#34; target=&#34;_blank&#34; id=&#34;[video] Rectangle Signed Distance Field - Procedural Shapes and Patterns - Episode 4&#34;&gt;[video] Rectangle Signed Distance Field - Procedural Shapes and Patterns - Episode 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents how to create an SDF for a rectangle using Unity and Unreal&lt;/li&gt;
&lt;li&gt;effect allows the modification of many parameters, including size, edge thickness, corner radius, and stroke thickness&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-349/rectangle_sdf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.scipress.io/post/A8bwlINqd0n3prteVEJh/Digital-images&#34; target=&#34;_blank&#34; id=&#34;Digital images&#34;&gt;Digital images&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how images are represented&lt;/li&gt;
&lt;li&gt;covers the build-up from single binary images to grayscale and, finally, color images&lt;/li&gt;
&lt;li&gt;a brief discussion of the concept of resolution, human vision as well as DPI&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-349/color_image.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240722032736/https://www.scipress.io/post/A8bwlINqd0n3prteVEJh/Digital-images&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/download/publications/Real-Time_Procedural_Generation_with_GPU_Work_Graphs-GPUOpen_preprint.pdf&#34; target=&#34;_blank&#34; id=&#34;Real-Time Procedural Generation with GPU Work Graphs&#34;&gt;Real-Time Procedural Generation with GPU Work Graphs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a detailed look at how to use D3D12 work graphs to generate a procedural world&lt;/li&gt;
&lt;li&gt;shows how multiple generation phases are combined with GPU ray-tracing to create a world&lt;/li&gt;
&lt;li&gt;discusses how the BVH structure is used to place markers, generate Ivy, marketplace arrangements, as well as ground clutter&lt;/li&gt;
&lt;li&gt;presents results with performance information&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-349/procedural_vines.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240722033104/https://gpuopen.com/download/publications/Real-Time_Procedural_Generation_with_GPU_Work_Graphs-GPUOpen_preprint.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/work_graphs_mesh_nodes/work_graphs_mesh_nodes-intro/&#34; target=&#34;_blank&#34; id=&#34;GPU Work Graphs mesh nodes in Microsoft DirectX® 12&#34;&gt;GPU Work Graphs mesh nodes in Microsoft DirectX® 12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the series of articles discusses how work graphs are now allowed to execute mesh rendering work&lt;/li&gt;
&lt;li&gt;part 1 how presents the getting started guide through the code sample on basic setup&lt;/li&gt;
&lt;li&gt;the second part focuses on best practices for performance&lt;/li&gt;
&lt;li&gt;finally, the last part discusses how to use work graphs to procedurally generate and render a whole game world&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-349/terrain_procedural_tiling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240718183303/https://gpuopen.com/learn/work_graphs_mesh_nodes/work_graphs_mesh_nodes-intro/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-2407-17-preview/&#34; target=&#34;_blank&#34; id=&#34;PIX 2407.17-preview: Mesh Nodes in Work Graphs&#34;&gt;PIX 2407.17-preview: Mesh Nodes in Work Graphs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A brief blog post discusses what aspects of the new mesh nodes preview for d3d12 can be debugged using Pix&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-349/PIX_AMD_MeshNodesSample.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240718210157/https://devblogs.microsoft.com/pix/pix-2407-17-preview/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://docs.scale-lang.com/&#34; target=&#34;_blank&#34; id=&#34;SCALE by Spectral Compute&#34;&gt;SCALE by Spectral Compute&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;SCALE is a GPGPU toolchain allowing CUDA programs to be natively run on AMD GPUs&lt;/li&gt;
&lt;li&gt;discusses what hardware is currently supported and how it&amp;rsquo;s achieved&lt;/li&gt;
&lt;li&gt;documentation provides examples of how to get started&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-349/scale_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240718170426/https://docs.scale-lang.com/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@00furkandogan/instanced-skeletal-meshes-with-gpu-driven-animations-using-vulkan-e66162b08144&#34; target=&#34;_blank&#34; id=&#34;Instanced Skeletal Meshes with GPU Driven Animations using Vulkan&#34;&gt;Instanced Skeletal Meshes with GPU Driven Animations using Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses a solution to allow GPU instanced and animated models using Vulkan&lt;/li&gt;
&lt;li&gt;presented solution pre-calculates all bone transformations for all frames of the animations and calculates the sample index during the vertex shader stage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-349/skeletal_animation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240722033004/https://medium.com/@00furkandogan/instanced-skeletal-meshes-with-gpu-driven-animations-using-vulkan-e66162b08144&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://cemyuksel.com/research/hairmesh_rendering&#34; target=&#34;_blank&#34; id=&#34;Real-Time Hair Rendering with Hair Meshes&#34;&gt;Real-Time Hair Rendering with Hair Meshes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper to be presented at SIGGRAPH 2024 presents a technique for rasterizing hair from hair strands&lt;/li&gt;
&lt;li&gt;since it&amp;rsquo;s based on Hair meshes (which are protected by patents), I did not read it and can&amp;rsquo;t provide a summary&lt;/li&gt;
&lt;li&gt;ensure to contact your legal team before proceeding to read&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-349/july_hm3-small.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240719222704/http://cemyuksel.com/research/hairmesh_rendering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/vivitsum&#34; target=&#34;_blank&#34;&gt;Vivitsu Maharaja&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 348  -  July 14th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-348/</link>
      <pubDate>Sun, 14 Jul 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-348/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.rastergrid.com/blog/projects/2024/07/behind-the-scenes-the-vulkan-sc-ecosystem/&#34; target=&#34;_blank&#34; id=&#34;Behind the scenes: the Vulkan SC Ecosystem &#34;&gt;Behind the scenes: the Vulkan SC Ecosystem &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides insights into the Vulkan variant for safety-critical applications&lt;/li&gt;
&lt;li&gt;shows the differences between stock Vulkan&lt;/li&gt;
&lt;li&gt;presents a detailed look at the architecture and how the variant is maintained&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-348/fi_vulkan_sc.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240710143819/https://www.rastergrid.com/blog/projects/2024/07/behind-the-scenes-the-vulkan-sc-ecosystem/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/pdf/2405.13364&#34; target=&#34;_blank&#34; id=&#34;LucidRaster: GPU Software Rasterizer for Exact Order-Independent Transparency&#34;&gt;LucidRaster: GPU Software Rasterizer for Exact Order-Independent Transparency&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper discusses the implementation of a compute-shader-based rasterizer specialized for order-independent transparency&lt;/li&gt;
&lt;li&gt;explains the implementation and choices made&lt;/li&gt;
&lt;li&gt;presents performance comparison against other solutions&lt;/li&gt;
&lt;li&gt;additional explains the limitations of the current implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-348/lucid_raster.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240524033035/https://arxiv.org/pdf/2405.13364&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/fidelityfx-breadcrumbs-now-available/&#34; target=&#34;_blank&#34; id=&#34;Introducing the AMD FidelityFX™ Breadcrumbs library&#34;&gt;Introducing the AMD FidelityFX™ Breadcrumbs library&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post introduces the new AMD library that aims to improve GPU hang debugging&lt;/li&gt;
&lt;li&gt;allows developers to insert information into the command buffer&lt;/li&gt;
&lt;li&gt;in case of crashes, it allows to figure out which part of the frame has finished execution and what is still outstanding&lt;/li&gt;
&lt;li&gt;supports both Vulkan and D3D12&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-348/amd_breadcrumps_library.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240715134614/https://gpuopen.com/learn/fidelityfx-breadcrumbs-now-available/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/getting-the-most-out-of-fidelityfx-brixelizer/&#34; target=&#34;_blank&#34; id=&#34;Introducing AMD FidelityFX™ Brixelizer&#34;&gt;Introducing AMD FidelityFX™ Brixelizer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents an overview of using Brixelizer for Ambient Occlusion and soft shadows&lt;/li&gt;
&lt;li&gt;shows performance number and discusses what aspects influence performance&lt;/li&gt;
&lt;li&gt;concludes with a summary of best-practices to consider when eveluating Brixelizer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-348/brixelizer_lod_test.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240715134236/https://gpuopen.com/learn/getting-the-most-out-of-fidelityfx-brixelizer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/arm-community-blogs/b/graphics-gaming-and-vr-blog/posts/introducing-arm-accuracy-super-resolution&#34; target=&#34;_blank&#34; id=&#34;Introducing Arm Accuracy Super Resolution&#34;&gt;Introducing Arm Accuracy Super Resolution&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post introduces Arm Accuracy Super Resolution&lt;/li&gt;
&lt;li&gt;this upscaler is based upon AMD FSR 2.0 and optimized mobile GPUs&lt;/li&gt;
&lt;li&gt;shows performance numbers as well as quality comparison against other solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-348/arm_upscaler.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240716062125/https://community.arm.com/arm-community-blogs/b/graphics-gaming-and-vr-blog/posts/introducing-arm-accuracy-super-resolution&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=el70HE6rXV4&#34; target=&#34;_blank&#34; id=&#34;[video] Upscaling Face-Off: FSR 3.1 vs DLSS 3.7/ XeSS 1.3 - Has AMD Improved?&#34;&gt;[video] Upscaling Face-Off: FSR 3.1 vs DLSS 3.7/ XeSS 1.3 - Has AMD Improved?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a comparison to present the improvements done with FSR 3.1&lt;/li&gt;
&lt;li&gt;presents a comparison against other upscaling solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-348/fsr_comparision.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=R_5CTBgkfZ0&#34; target=&#34;_blank&#34; id=&#34;[video] Combining Signed Distance Fields - Procedural Shapes and Patterns - Episode 3&#34;&gt;[video] Combining Signed Distance Fields - Procedural Shapes and Patterns - Episode 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents how to combine multiple SDFs in shaders&lt;/li&gt;
&lt;li&gt;this information is used to implement a lava lamp effect&lt;/li&gt;
&lt;li&gt;implementation is shown using Unreal and Unity visual shading languages&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-348/combined_sdf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=u5qNqIGRFHY&#34; target=&#34;_blank&#34; id=&#34;[video] Image Memory Barriers // Vulkan For Beginners #11&#34;&gt;[video] Image Memory Barriers // Vulkan For Beginners #11&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an overview of the concept of image barriers&lt;/li&gt;
&lt;li&gt;explains what kind of hardware-defined memory layout changes might be associated with image layouts&lt;/li&gt;
&lt;li&gt;presents how to implement the barriers in Vulkan required to solve the Vulkan validator messages for the swap chain presentation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-348/vulkan_barrier.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=gdBACyIOCtc&#34; target=&#34;_blank&#34; id=&#34;[video] 3D Toon Rendering in &amp;#39;Hi-Fi RUSH&amp;#39;&#34;&gt;[video] 3D Toon Rendering in &amp;#39;Hi-Fi RUSH&amp;#39;&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the GDC presentation explains how the toon rendering effect was achieved&lt;/li&gt;
&lt;li&gt;the game uses a customized UE4 version, and the talk shows which stages need to be modified&lt;/li&gt;
&lt;li&gt;covers the lighting, cross-hatching, and halftone patterns, as well as how the outlines are applied&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-348/hi_fi_rush_gdc.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/open-sourcing-dxil-validator-hash/&#34; target=&#34;_blank&#34; id=&#34;Open Sourcing DXIL Validator Hash&#34;&gt;Open Sourcing DXIL Validator Hash&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post announces the intent to open source DXIL shader validation as well as to support a mode to skip hash validation&lt;/li&gt;
&lt;li&gt;explains what hash validation is, what the current state is, and what issues arise because of it&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-348/OprahValidator.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240710234822/https://devblogs.microsoft.com/directx/open-sourcing-dxil-validator-hash/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://behdad.org/text2024/&#34; target=&#34;_blank&#34; id=&#34;State of Text Rendering 2024&#34;&gt;State of Text Rendering 2024&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The survey paper presents a very detailed look at the state of font rendering&lt;/li&gt;
&lt;li&gt;discusses a high-level overview of font rendering systems, implementation, and limitations&lt;/li&gt;
&lt;li&gt;lists a long list of available solutions with brief summaries, as well as what solutions well-known software projects use&lt;/li&gt;
&lt;li&gt;showing performance tests of different solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-348/text_layout.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240716135330/https://behdad.org/text2024/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.graphicsprogrammingconference.nl/&#34; target=&#34;_blank&#34; id=&#34;Graphics Programming Conference&#34;&gt;Graphics Programming Conference&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a new graphics programming-focused conference in Breda, Netherlands&lt;/li&gt;
&lt;li&gt;The call for speakers is still open till July 31st&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-348/gpc_banner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/leonardoetcheverry/&#34; target=&#34;_blank&#34;&gt;Leonardo Etcheverry&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 347  -  July 7th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-347/</link>
      <pubDate>Sun, 07 Jul 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-347/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://youtu.be/3so7xdZHKxw&#34; target=&#34;_blank&#34; id=&#34;[video] Exploring a New Approach to Realistic Lighting: Radiance Cascades&#34;&gt;[video] Exploring a New Approach to Realistic Lighting: Radiance Cascades&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains visually step-by-step how the Radiance Cascades technique aims to solve Global Illumination&lt;/li&gt;
&lt;li&gt;explains the underlying idea based on observations of linear and angular resolution&lt;/li&gt;
&lt;li&gt;presents results and also shows what the limitations are&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-347/radiance_cascades.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://x.com/reduzio/status/1809541577175429447&#34; target=&#34;_blank&#34; id=&#34;Spatial Indexing Algorithms&#34;&gt;Spatial Indexing Algorithms&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;X thread with a collection of Spatial Indexing Algorithms&lt;/li&gt;
&lt;li&gt;covers the pros/cons and what the techniques are typically used for&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-347/spatial_indexing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240708044058/https://unrollnow.com/status/1809541577175429447&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=69k7ZXLK1to&#34; target=&#34;_blank&#34; id=&#34;[video] Lossless Scaling: Frame Generation For Every Game - But How Good Is it?&#34;&gt;[video] Lossless Scaling: Frame Generation For Every Game - But How Good Is it?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents how the &amp;ldquo;Lossless Scaling&amp;rdquo; mod generates in-between frames for smoother game output&lt;/li&gt;
&lt;li&gt;explains that the mode only uses color output without any additional meta-data or motion vectors&lt;/li&gt;
&lt;li&gt;compares the technique against FSR 3.1 and DLSS 3.7&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-347/frame_gen.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=GMQym0in8OY&#34; target=&#34;_blank&#34; id=&#34;[video] Circle Signed Distance Field - Procedural Shapes and Patterns - Episode 2&#34;&gt;[video] Circle Signed Distance Field - Procedural Shapes and Patterns - Episode 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents how to create a signed distance field for a circle&lt;/li&gt;
&lt;li&gt;the implementation is shown using Unity and Unreal&lt;/li&gt;
&lt;li&gt;additionally presents a first overview of different shapes this series will be targeting to create&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-347/sphere_sdf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=TAQ7yBLRZ3U&#34; target=&#34;_blank&#34; id=&#34;[video] KEYNOTE: Use.GPU - Declarative/Reactive 3D Graphics by Steven Wittens&#34;&gt;[video] KEYNOTE: Use.GPU - Declarative/Reactive 3D Graphics by Steven Wittens&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the keynote presentation discusses the Use.GPU technology&lt;/li&gt;
&lt;li&gt;presents issues of graphics technology and how the author aims to improve the authoring&lt;/li&gt;
&lt;li&gt;discusses how the React style has been applied to GPU app authoring&lt;/li&gt;
&lt;li&gt;provides a walkthrough of the implementation logic and examples&lt;/li&gt;
&lt;li&gt;shows how to compose shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-347/usegpu_lines.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/pdf/2405.00127&#34; target=&#34;_blank&#34; id=&#34;GPU-friendly Stroke Expansion&#34;&gt;GPU-friendly Stroke Expansion&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new method to apply strokes to lines in a GPU-friendly way&lt;/li&gt;
&lt;li&gt;presents how to lower filled and stroked Bézier paths into an Euler spiral as an intermediate representation&lt;/li&gt;
&lt;li&gt;tests and shows the performance of the implementation on CPU and GPUs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-347/stroke_expansion.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240503213757/https://arxiv.org/pdf/2405.00127&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://diglib.eg.org/items/b6dd6989-0856-4937-95d7-9372bc2c2588&#34; target=&#34;_blank&#34; id=&#34;VMF Diffuse: A unified rough diffuse BRDF&#34;&gt;VMF Diffuse: A unified rough diffuse BRDF&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a unified BRDF that allows a consistent expression of smooth to highly rough porous behavior materials&lt;/li&gt;
&lt;li&gt;compares the results against ground-truth&lt;/li&gt;
&lt;li&gt;The presented solution might be approximated for real-time usage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-347/vmf_diffuse.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240703110124/https://diglib.eg.org/items/b6dd6989-0856-4937-95d7-9372bc2c2588&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@marehtcone/compute-shader-wave-intrinsics-tricks-e237ffb159ef&#34; target=&#34;_blank&#34; id=&#34;Compute shader wave intrinsics tricks&#34;&gt;Compute shader wave intrinsics tricks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes a couple of available shader intrinsics that allow the different threads of a shader wave to cooperate&lt;/li&gt;
&lt;li&gt;starts with simple techniques and increasing complexity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-347/wave_intrinsics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240708044022/https://medium.com/@marehtcone/compute-shader-wave-intrinsics-tricks-e237ffb159ef&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/JasperBekkers/&#34; target=&#34;_blank&#34;&gt;Jasper Bekkers&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 346  -  June 30th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-346/</link>
      <pubDate>Sun, 30 Jun 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-346/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jcgt.org/published/0013/01/01/&#34; target=&#34;_blank&#34; id=&#34;A Practical Real-Time Model for Diffraction on Rough Surfaces&#34;&gt;A Practical Real-Time Model for Diffraction on Rough Surfaces&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a real-time BRDF model addressing diffraction on rough surfaces&lt;/li&gt;
&lt;li&gt;shows the improved realism in Unity over the Cook–Torrance model&lt;/li&gt;
&lt;li&gt;presents a performance comparison against a base Cook–Torrance implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-346/diffraction_model.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240627034228/https://www.jcgt.org/published/0013/01/01/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://frguthmann.github.io/posts/profiling_webgpu/&#34; target=&#34;_blank&#34; id=&#34;GPU profiling for WebGPU workloads on Windows with Chrome&#34;&gt;GPU profiling for WebGPU workloads on Windows with Chrome&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents how to profile WebGPU applications with Nsight, PIX, and Radeon GPU Profiler&lt;/li&gt;
&lt;li&gt;The presented solution takes advantage of context sharing and dll interception&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-346/chrome_nsight_main_view.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240625120253/https://frguthmann.github.io/posts/profiling_webgpu/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://iliyan.com/publications/ResidualPathIntegral&#34; target=&#34;_blank&#34; id=&#34;Residual path integrals for re-rendering&#34;&gt;Residual path integrals for re-rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an approach for incremental re-rendering of scenes&lt;/li&gt;
&lt;li&gt;it formulates image differences as a residual path integral, solved with importance sampling and path mapping&lt;/li&gt;
&lt;li&gt;presents speed-ups over previous methods and independent frame rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-346/residual_path_title.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240626195024/http://iliyan.com/publications/ResidualPathIntegral&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.tsumea.com/jobs/2402/c-gameplay-and-ui-programmers&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;C&amp;#43;&amp;#43; Gameplay and UI Programmers&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Auckland, New Zealand&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Grinding Gear Games are seeking experienced C++ Gameplay and UI Programmers to join our incredibly talented team. We&amp;rsquo;re after programmers to help design and implement gameplay and UI elements for Path of Exile using modern C++.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_GGG.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;ggg_week_346&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://highperformancegraphics.org/2024/program/index.html&#34; target=&#34;_blank&#34; id=&#34;High Performance Graphics - Conference Program&#34;&gt;High Performance Graphics - Conference Program&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the conference program for the High-Performance Graphics has been released&lt;/li&gt;
&lt;li&gt;will take place between July 26 to 28 in Denver&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-346/hpg_banner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240621150655/https://highperformancegraphics.org/2024/program/index.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=tjYVcOJONdI&#34; target=&#34;_blank&#34; id=&#34;[video] SIGGRAPH 2024 Technical Papers Trailer&#34;&gt;[video] SIGGRAPH 2024 Technical Papers Trailer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows an overview of Technical Papers to be presented at SIGGRAPH 2024&lt;/li&gt;
&lt;li&gt;shows a quick showcase of each trailer and a brief summary of the presented approaches&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-346/siggraph_2024_trailer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hal.science/hal-04620165&#34; target=&#34;_blank&#34; id=&#34;Patch Decomposition for Efficient Mesh Contours Extraction&#34;&gt;Patch Decomposition for Efficient Mesh Contours Extraction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a method for the efficient extraction of mesh contours&lt;/li&gt;
&lt;li&gt;it proposes a simple, flat data structure that is GPU-friendly and uses  patches bounded by normal cones and sphere&lt;/li&gt;
&lt;li&gt;discusses how to generate these patches and improve bounding sphere calculations&lt;/li&gt;
&lt;li&gt;presents a performance comparison against CPU techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-346/contour_patches.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240625204150/https://hal.science/hal-04620165&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=tXEEr4T6q-s&#34; target=&#34;_blank&#34; id=&#34;[video] Submitting Command Buffers // Vulkan For Beginners #10&#34;&gt;[video] Submitting Command Buffers // Vulkan For Beginners #10&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the next episode of the Vulkan tutorial series presents how to execute work to the GPU&lt;/li&gt;
&lt;li&gt;presents how to clear the image to a fixed color and integrate it with the presentation process&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-346/image_acquire.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=sZBzg-v9d04&#34; target=&#34;_blank&#34; id=&#34;[video] Intro To Procedural Shapes and Patterns - Episode 1&#34;&gt;[video] Intro To Procedural Shapes and Patterns - Episode 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new video tutorial series that will cover how to generate procedural shapes and patterns from shaders&lt;/li&gt;
&lt;li&gt;implementation is shown using Unity and Unreal Engine&lt;/li&gt;
&lt;li&gt;this video focuses on the reasons why to use the approaches and how to create a pattern with antialiased edges&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-346/antialiasing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=gg40RWiaHRY&#34; target=&#34;_blank&#34; id=&#34;[video] I Tried Turning Games Into Text&#34;&gt;[video] I Tried Turning Games Into Text&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents an approach to develop an ASCII art shader approach (converts 3D rendering to text)&lt;/li&gt;
&lt;li&gt;discusses methods, issues of the techniques, improvements and presents results on several different games&lt;/li&gt;
&lt;li&gt;presents how to map the techniques onto a compute shader execution model&lt;/li&gt;
&lt;li&gt;additionally presents other techniques that could be built upon&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-346/ascii_art.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2024/06/29/a-quick-introduction-to-workgraphs/&#34; target=&#34;_blank&#34; id=&#34;A quick introduction to workgraphs&#34;&gt;A quick introduction to workgraphs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents a walkthrough on how to implement a raytracing classification shadow optimization using D3D12 work graphs&lt;/li&gt;
&lt;li&gt;first discuss an overview of the technique&lt;/li&gt;
&lt;li&gt;followed by a presentation on how to express this technique using HLSL and D3D12 work graphs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-346/d3d12_workgraph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240629223931/https://interplayoflight.wordpress.com/2024/06/29/a-quick-introduction-to-workgraphs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://bruop.github.io&#34; target=&#34;_blank&#34;&gt;Bruno Opsenica&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 345  -  June 23rd, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-345/</link>
      <pubDate>Sun, 23 Jun 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-345/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=QQP6-JF64DQ&#34; target=&#34;_blank&#34; id=&#34;[video] GDC 2024 - GPU Work Graphs: Welcome to the Future of GPU Programming&#34;&gt;[video] GDC 2024 - GPU Work Graphs: Welcome to the Future of GPU Programming&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the GDC video presents a discussion of the new work graph features for D3D (also a Vulkan AMD-specific extension exists)&lt;/li&gt;
&lt;li&gt;explains the issue with the current ExecuteIndirect model&lt;/li&gt;
&lt;li&gt;shows an overview of the API model and how it aims to solve the challenges&lt;/li&gt;
&lt;li&gt;presents an overview of a compute shader rasterizer and a runtime GPU scattering system based on the technology&lt;/li&gt;
&lt;li&gt;additionally discusses the support level&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-345/workgraph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://gpuopen.com/gdc-presentations/2024/GDC2024_GPU_Work_Graphs.pdf&#34; style=&#34;color:white;&#34;&gt;slides &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20240620201823/https://gpuopen.com/gdc-presentations/2024/GDC2024_GPU_Work_Graphs.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/cpu-performance-guide/cpu-performance-guide-part1/&#34; target=&#34;_blank&#34; id=&#34;CPU performance optimization guide – part 1&#34;&gt;CPU performance optimization guide – part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the first blog in a series about CPU optimizations&lt;/li&gt;
&lt;li&gt;this part presents how different implementations of max between floats can generate very different code&lt;/li&gt;
&lt;li&gt;presents the effect of branch misprediction on performance and how to use the AMD profiler to detect through hardware counters&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-345/branch-prediction-pmc-analysis.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240619045223/https://gpuopen.com/learn/cpu-performance-guide/cpu-performance-guide-part1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=mVAGcqgEXdU&#34; target=&#34;_blank&#34; id=&#34;[video] I3D 2024 Papers Session 6 - Efficient Forward and Differentiable Rendering&#34;&gt;[video] I3D 2024 Papers Session 6 - Efficient Forward and Differentiable Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video recording of I3D 2024 sessions covers the following papers&lt;/li&gt;
&lt;li&gt;Efficient Particle-Based Fluid Surface Reconstruction Using Mesh Shaders and Bidirectional Two-Level Grids,  ShaderPerFormer: Platform-independent Context-aware Shader Performance Predictor&lt;/li&gt;
&lt;li&gt;Transforming a Non-Differentiable Rasterizer into a Differentiable One with Stochastic Gradient Estimation&lt;/li&gt;
&lt;li&gt;these papers cover a focus on performance from an academic focus&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-345/shader_performance_predictions.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.tsumea.com/jobs/2402/c-gameplay-and-ui-programmers&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;C&amp;#43;&amp;#43; Gameplay and UI Programmers&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Auckland, New Zealand&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Grinding Gear Games are seeking experienced C++ Gameplay and UI Programmers to join our incredibly talented team. We&amp;rsquo;re after programmers to help design and implement gameplay and UI elements for Path of Exile using modern C++.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_GGG.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;ggg_week_345&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=kWLev9CoQdg&amp;amp;t=8s&#34; target=&#34;_blank&#34; id=&#34;[video] Triangle Visibility Buffer 2.0&#34;&gt;[video] Triangle Visibility Buffer 2.0&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk provides an overview of the experimental Triangle Visibility Buffer 2.0 implementation&lt;/li&gt;
&lt;li&gt;The presented approach uses only compute shaders to write the visibility buffer&lt;/li&gt;
&lt;li&gt;discusses the pipeline design, different approaches based on triangle sizes, and how performance compares&lt;/li&gt;
&lt;li&gt;additionally presents which features are still missing compared to hardware rasterization&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-345/visibility_buffer_2_0.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cs.dartmouth.edu/~wjarosz/publications/seyb24from.html&#34; target=&#34;_blank&#34; id=&#34;From microfacets to participating media: A unified theory of light transport with stochastic geometry&#34;&gt;From microfacets to participating media: A unified theory of light transport with stochastic geometry&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a method that aims to unify microfacets and volumes for light transport purposes&lt;/li&gt;
&lt;li&gt;the paper shows that both can be expressed as stochastic implicit surfaces (SIS) and, more specifically, Gaussian process implicit surfaces (GPIS)&lt;/li&gt;
&lt;li&gt;discusses the derivation, representation generation, and tracing aspects of GPIS&lt;/li&gt;
&lt;li&gt;additionally discusses limitations regarding performance and quality&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-345/seyb24from-teaser.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240623224738/https://cs.dartmouth.edu/~wjarosz/publications/seyb24from.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://stefan-marr.de/2024/06/5-reasons-for-box-plots-as-default&#34; target=&#34;_blank&#34; id=&#34;5 Reasons Why Box Plots are the Better Default Choice for Visualizing Performance&#34;&gt;5 Reasons Why Box Plots are the Better Default Choice for Visualizing Performance&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents why the author suggests using box plots over bar charts as the default way to represent performance&lt;/li&gt;
&lt;li&gt;shows annotated examples of how box plots can express a lot of helpful information in a concise form&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-345/boxplot.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240618202415/https://stefan-marr.de/2024/06/5-reasons-for-box-plots-as-default/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/Jontology&#34; target=&#34;_blank&#34;&gt;Jon Greenberg&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 344  -  June 17th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-344/</link>
      <pubDate>Mon, 17 Jun 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-344/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=1OhWTLNESlc&#34; target=&#34;_blank&#34; id=&#34;[video] REAC 2024 DAY 1 Testing Rendering Code at Frostbite&#34;&gt;[video] REAC 2024 DAY 1 Testing Rendering Code at Frostbite&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk presents the system used by EA&amp;rsquo;s Frostbite team to test the rendering engine&lt;/li&gt;
&lt;li&gt;shows an overview of the current state of the system and why they are the way they are&lt;/li&gt;
&lt;li&gt;discusses all the complexities and difficulties&lt;/li&gt;
&lt;li&gt;shows the tooling available and how different tools exist for different use cases&lt;/li&gt;
&lt;li&gt;additionally discusses trade-offs and development approaches&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-344/gpu_testing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=C1H4zIiCOaI&#34; target=&#34;_blank&#34; id=&#34;[video] Coding Adventure: Optimizing a Ray Tracer (by building a BVH)&#34;&gt;[video] Coding Adventure: Optimizing a Ray Tracer (by building a BVH)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains the concept of a BVH (bounding volume hierarchy) and presents how it increases the performance of a raytracing implementation&lt;/li&gt;
&lt;li&gt;shows a detailed explanation and many visualizations of the behavior of the data structure and how to build an efficient implementation&lt;/li&gt;
&lt;li&gt;presents different heuristics that can be used to order the data for efficient access&lt;/li&gt;
&lt;li&gt;shows the results and presents performance improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-344/bvh_traversal.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://imadr.me/raymarching-explained-interactively/&#34; target=&#34;_blank&#34; id=&#34;Raymarching explained interactively&#34;&gt;Raymarching explained interactively&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an interactive walkthrough into the implementation of the Raymarching algorithm&lt;/li&gt;
&lt;li&gt;explains the logic of signed distance functions in 2D and expands these to 3D&lt;/li&gt;
&lt;li&gt;presents the implementation of a simple 3D raymarching scenes&lt;/li&gt;
&lt;li&gt;the provided code samples are interactive and can be used to get a better understanding of the presented techniques through experimentations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-344/raymarching_visualize.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240521072421/https://imadr.me/raymarching-explained-interactively/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=dSe7eg8Dj98&#34; target=&#34;_blank&#34; id=&#34;[video] Quaternions to Homogeneous Points, Lines, and Planes&#34;&gt;[video] Quaternions to Homogeneous Points, Lines, and Planes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the second path of the math tutorial series from GDC 2024 extends the dual quaternion knowledge (see last week 338 for prerequisite)&lt;/li&gt;
&lt;li&gt;starts by developing an intuition for plane representation (normal + distance), difference between positions and directions, and behavior under reflections&lt;/li&gt;
&lt;li&gt;additionally explains the understanding of homogenous concepts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-344/plane_offset_origin.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=l98JgYBQz68&#34; target=&#34;_blank&#34; id=&#34;[video] REAC 2024 DAY 2 Modernizing geometry rendering in Alan Wake 2&#34;&gt;[video] REAC 2024 DAY 2 Modernizing geometry rendering in Alan Wake 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation presents updates done to the rendering pipeline of the internal engine used for Alan Wake 2&lt;/li&gt;
&lt;li&gt;focuses on explaining the technique selection and why the choices were made&lt;/li&gt;
&lt;li&gt;in-detail discusses the meshlet geometry pipeline and changes to the material system&lt;/li&gt;
&lt;li&gt;additionally discusses updates on the used transparency models&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-344/gpu_mesh_clusters.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=aTUSyJ5zmV8&#34; target=&#34;_blank&#34; id=&#34;[video] I3D 2024 Papers Session 5 - Noise and Reconstruction&#34;&gt;[video] I3D 2024 Papers Session 5 - Noise and Reconstruction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video recordings of Noise and Reconstrictions papers from I3D have been released&lt;/li&gt;
&lt;li&gt;covers  FAST: Filter-Adapted Spatio-Temporal Sampling for Real-Time Rendering, Filtering After Shading With Stochastic Texture Filtering, and Cone-Traced Supersampling for Signed Distance Field Rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-344/surface_visibility.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://c0de517e.com/014_future_engines.htm&#34; target=&#34;_blank&#34; id=&#34;The engine of the future.&#34;&gt;The engine of the future.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;following the REAC 2024 conference, this author composes his 10 predictions on how graphics engine architecture might evolve&lt;/li&gt;
&lt;li&gt;looks back at the history, current developments and looks into the future&lt;/li&gt;
&lt;li&gt;additional discusses how mobile requirements vary and how it might indicate a future on consoles and PCs as well&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-344/voodoo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240613145201/http://c0de517e.com/014_future_engines.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.wihlidal.com&#34; target=&#34;_blank&#34;&gt;Graham Wihlidal&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 343  -  June 9th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-343/</link>
      <pubDate>Sun, 09 Jun 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-343/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/playlist?list=PLAOytOz0HZbKTvk1jiAUsic_8rul8n7g9&#34; target=&#34;_blank&#34; id=&#34;[video] Rendering Engine Architecture Conference&#34;&gt;[video] Rendering Engine Architecture Conference&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video recordings for the Rendering Engine Architecture Conference have been released&lt;/li&gt;
&lt;li&gt;covering a large number of topics from resource management, GPU-based mesh pipeline, testing approaches, and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-343/reac_2024_opening.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jms55.github.io/posts/2024-06-09-virtual-geometry-bevy-0-14/&#34; target=&#34;_blank&#34; id=&#34;Virtual Geometry in Bevy 0.14&#34;&gt;Virtual Geometry in Bevy 0.14&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a detailed discussion of implementing meshlet-based virtual geometry rendering into Bevvy&lt;/li&gt;
&lt;li&gt;discusses how meshlet LODs are calculated, how meshlet culling has been implemented, and how they are rendered without mesh shader support&lt;/li&gt;
&lt;li&gt;presents findings from different approaches and discusses the pros/cons of the various approaches&lt;/li&gt;
&lt;li&gt;Additionally, it shows the integration work for supporting systems (depth pyramid generation, material shading, etc.).&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-343/bevy_virtual_geometry_showcase.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240609234609/https://jms55.github.io/posts/2024-06-09-virtual-geometry-bevy-0-14/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://edw.is/learning-vulkan&#34; target=&#34;_blank&#34; id=&#34;How I learned Vulkan and wrote a small game engine with it&#34;&gt;How I learned Vulkan and wrote a small game engine with it&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses the author&amp;rsquo;s experience learning Vulkan through the development of a small 3d engine&lt;/li&gt;
&lt;li&gt;presents the approach for keeping things focused and decisions leading to using Vulkan&lt;/li&gt;
&lt;li&gt;explains the API concepts and how they are used in the engine (shaders, pipelines, queues, etc.)&lt;/li&gt;
&lt;li&gt;additionally presents how higher-level techniques are implemented inside the engine&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-343/mtp_screenshot2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240609032738/http://edw.is/learning-vulkan/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://cemyuksel.com/research/seilers_interpolation&#34; target=&#34;_blank&#34; id=&#34;Seiler’s Interpolation&#34;&gt;Seiler’s Interpolation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the short paper presents how to reformat bezier interpolation using cheaper functions&lt;/li&gt;
&lt;li&gt;shows the implementation of quadratic, cubic, and higher-order polynomials&lt;/li&gt;
&lt;li&gt;additionally shows how a GPU implementation could take advantage of hardware linear interpolation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-343/bezier_blending.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240606170340/http://cemyuksel.com/research/seilers_interpolation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rene.ruhr/gfx/gpuhash&#34; target=&#34;_blank&#34; id=&#34;On Hash Functions for the GPU&#34;&gt;On Hash Functions for the GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a geometric and statistical analysis of the PCG2D hash function&lt;/li&gt;
&lt;li&gt;explains the terminology of random number generators and how they can be mapped onto GPUs&lt;/li&gt;
&lt;li&gt;visualization of provided using shader toys&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-343/gpu_pcg2d.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240610235256/https://rene.ruhr/gfx/gpuhash/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wallisc.github.io/rendering/2024/06/06/Intro-to-GPU-ML-Denoising.html&#34; target=&#34;_blank&#34; id=&#34;Machine Learning on the GPU - Case Study: Open Image Denoise&#34;&gt;Machine Learning on the GPU - Case Study: Open Image Denoise&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a high-level view that explains machine learning concepts for practical usage by graphics programmers&lt;/li&gt;
&lt;li&gt;presents the individual concepts and how DirectML maps them into compute shaders&lt;/li&gt;
&lt;li&gt;additionally presents an overview of the different passes that make up the Open Image Denoise implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-343/OpenML_DenoisedKitchen.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240609071902/https://wallisc.github.io/rendering/2024/06/06/Intro-to-GPU-ML-Denoising.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.aswf.io/blog/academy-software-foundation-releases-openpbr-1-0&#34; target=&#34;_blank&#34; id=&#34;Academy Software Foundation Releases OpenPBR 1.0&#34;&gt;Academy Software Foundation Releases OpenPBR 1.0&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post introduces the release of the first stable release of OpenPBR&lt;/li&gt;
&lt;li&gt;discusses the importance of the standard and the history of its development&lt;/li&gt;
&lt;li&gt;MaterialX now contains a reference implementation of the model&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-343/ShaderPlayground_OpenPBR_PaintBrushes.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://academysoftwarefoundation.github.io/OpenPBR/index.html&#34; style=&#34;color:white;&#34;&gt;spec &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240604171020/https://www.aswf.io/blog/academy-software-foundation-releases-openpbr-1-0/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://andrewkchan.dev/posts/perspective-interpolation.html&#34; target=&#34;_blank&#34; id=&#34;Perspective-Correct Interpolation&#34;&gt;Perspective-Correct Interpolation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how a rasterizer calculates intermediate values on a triangle&lt;/li&gt;
&lt;li&gt;explains barycentric Interpolation and explains the cause for common artifacts on PS1-level hardware&lt;/li&gt;
&lt;li&gt;then derives perspective-correct Interpolation that resolves the artifacts  &lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-343/perspective_interpolation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240605043503/https://andrewkchan.dev/posts/perspective-interpolation.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=EnKE-d7eMds&#34; target=&#34;_blank&#34; id=&#34;[video] I3D 2024 Papers Session 4 - Points and Splats&#34;&gt;[video] I3D 2024 Papers Session 4 - Points and Splats&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The videos for I3D paper presentations have been released&lt;/li&gt;
&lt;li&gt;covering Reducing the Memory Footprint of 3D Gaussian Splatting, SimLOD: Simultaneous LOD Generation and Rendering for Point Clouds&lt;/li&gt;
&lt;li&gt;additional Deblur-GS: 3D Gaussian Splatting from Camera Motion Blurred Images as well as Light Field Display Point Rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-343/point_cloud_lod.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=LzwXHuMu6PU&#34; target=&#34;_blank&#34; id=&#34;[video] The OpenGL Software Ecosystem&#34;&gt;[video] The OpenGL Software Ecosystem&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an overview of the OpenGL Ecosystem&lt;/li&gt;
&lt;li&gt;explains the history of OpenGL and how OS integration compares to Direct3D&lt;/li&gt;
&lt;li&gt;presents what software layers are involved and which software components enable easier cross-platform development&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-343/OpenGl_framework_stack.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://mastodon.gamedev.place/@cort&#34; target=&#34;_blank&#34;&gt;Cort Stratton&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 342  -  June 2nd, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-342/</link>
      <pubDate>Sun, 02 Jun 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-342/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/download/publications/Efficient_Visibility_Reuse_for_Real-time_ReSTIR.pdf&#34; target=&#34;_blank&#34; id=&#34;Efficient Visibility Reuse for Real-time ReSTIR&#34;&gt;Efficient Visibility Reuse for Real-time ReSTIR&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a variance reduction technique for ReSTIR aimed at reducing shadow noise&lt;/li&gt;
&lt;li&gt;presents a comparison against existing methods&lt;/li&gt;
&lt;li&gt;discusses side-effects of the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-342/amd_restir.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://gpuopen.com/download/publications/Efficient_Visibility_Reuse_for_Real-time_ReSTIR.mp4&#34; style=&#34;color:white;&#34;&gt;video &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240603181441/https://gpuopen.com/download/publications/Efficient_Visibility_Reuse_for_Real-time_ReSTIR.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=e3391_C6aXE&#34; target=&#34;_blank&#34; id=&#34;[video] I3D&amp;#39;24 Technical Paper: Filtering After Shading with Stochastic Texture Filtering&#34;&gt;[video] I3D&amp;#39;24 Technical Paper: Filtering After Shading with Stochastic Texture Filtering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;extended presentation of the I3D paper presentation discussed last week&lt;/li&gt;
&lt;li&gt;the paper presents an investigation into applying texture filtering after shading instead of before shading&lt;/li&gt;
&lt;li&gt;shows comparisons of the approaches and a background into the underlying theory&lt;/li&gt;
&lt;li&gt;presents guidelines on the tradeoffs and when to use different approaches&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-342/filter_after_shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/pdf/2405.13409&#34; target=&#34;_blank&#34; id=&#34;Specular Polynomials&#34;&gt;Specular Polynomials&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a way to reformulate SDS (a path with at least a specular, diffuse, specular bounce) paths into a polynomial system&lt;/li&gt;
&lt;li&gt;explains how to use root finding to solve the paths&lt;/li&gt;
&lt;li&gt;shows the presented solutions for caustics in a unidirectional ray tracer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-342/caustics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240524040803/https://arxiv.org/pdf/2405.13409&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2024/05/29/ray-tracing-with-voxels-in-c-series-part-6&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing with Voxels in C&amp;#43;&amp;#43; Series – Part 6&#34;&gt;Ray Tracing with Voxels in C&amp;#43;&amp;#43; Series – Part 6&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article series extends the voxel rendering implementation to use path tracing&lt;/li&gt;
&lt;li&gt;discusses and explains the different components of the rendering equation&lt;/li&gt;
&lt;li&gt;additionally presents the effect of importance sampling for reduced convergence time&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-342/voxel_ptbanner.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240530105243/https://jacco.ompf2.com/2024/05/29/ray-tracing-with-voxels-in-c-series-part-6/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/microsoft-directsr-announced&#34; target=&#34;_blank&#34; id=&#34;Microsoft® DirectSR and AMD FidelityFX™ Super Resolution technology&#34;&gt;Microsoft® DirectSR and AMD FidelityFX™ Super Resolution technology&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post explains the new DirectSR (Super Resolution) API&lt;/li&gt;
&lt;li&gt;provides a walkthrough of the API and how to integrate it into an existing engine&lt;/li&gt;
&lt;li&gt;provides an overview and discussion of the different exposed parameters&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-342/DirectSR.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240530100316/https://gpuopen.com/learn/microsoft-directsr-announced/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/dxc-1-8-2405-available&#34; target=&#34;_blank&#34; id=&#34;DXC 1.8.2405 Available Now, Including HLSL 202x&#34;&gt;DXC 1.8.2405 Available Now, Including HLSL 202x&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post introduces the ongoing work of implementing future HLSL versions directly into Clang&lt;/li&gt;
&lt;li&gt;discusses the expected difference between legacy and future HLSL versions&lt;/li&gt;
&lt;li&gt;additionally shows the first version of DXC compiled with clang and performance improvement&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-342/ConformingLiterals.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240528215201/https://devblogs.microsoft.com/directx/dxc-1-8-2405-available/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/baldurk/renderdoc/releases/tag/v1.33&#34; target=&#34;_blank&#34; id=&#34;Renderdoc - Version v1.33&#34;&gt;Renderdoc - Version v1.33&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the latest version of Renderdoc includes a custom and improved DXIL disassembler&lt;/li&gt;
&lt;li&gt;additionally lists the improvements for SM6.6 feature support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-342/dxil_in_renderdoc.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240531201648/https://github.com/baldurk/renderdoc/releases/tag/v1.33&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphics.cs.utah.edu/research/projects/physically-guided-hair-interpolation/&#34; target=&#34;_blank&#34; id=&#34;Real-Time Physically Guided Hair Interpolation&#34;&gt;Real-Time Physically Guided Hair Interpolation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new method that aims to improve hair interpolation from a smaller number of guided hairs&lt;/li&gt;
&lt;li&gt;presents the theory and implementation of the technique&lt;/li&gt;
&lt;li&gt;compares against existing solutions in quality and performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-342/hair_moving.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240000000000*/https://graphics.cs.utah.edu/research/projects/physically-guided-hair-interpolation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://20k.github.io/c&amp;#43;&amp;#43;/2024/05/31/schwarzschild.html&#34; target=&#34;_blank&#34; id=&#34;Implementing General Relativity: Rendering the Schwarzschild black hole, in C&amp;#43;&amp;#43;&#34;&gt;Implementing General Relativity: Rendering the Schwarzschild black hole, in C&amp;#43;&amp;#43;&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a high-level introduction to general relativity&lt;/li&gt;
&lt;li&gt;takes the underlying theory and shows how to convert it into code&lt;/li&gt;
&lt;li&gt;shows a C++ based implementation of the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-342/schwarzs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240531210453/https://20k.github.io/c&amp;#43;&amp;#43;/2024/05/31/schwarzschild.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wickedengine.net/2024/06/texture-streaming/&#34; target=&#34;_blank&#34; id=&#34;Texture Streaming&#34;&gt;Texture Streaming&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses the streaming system implementation in the Wicked Engine&lt;/li&gt;
&lt;li&gt;discusses how the data is provided, loading streaming processed in the background, and finalized for rendering&lt;/li&gt;
&lt;li&gt;additionally discussed techniques to improve streaming information, such as GPU streaming feedback buffers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-342/texture_streaming.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240602233855/https://wickedengine.net/2024/06/texture-streaming/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=cMo0wFP879U&#34; target=&#34;_blank&#34; id=&#34;[video] I3D 2024 Papers Session 2 - Light Transport and Storage&#34;&gt;[video] I3D 2024 Papers Session 2 - Light Transport and Storage&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video of the I3D 2023 Paper session on Light Transport&lt;/li&gt;
&lt;li&gt;covers Bounded VNDF Sampling for the Smith–GGX BRDF, ZH3: Quadratic Zonal Harmonics and  Interactive Rendering of Caustics using Dimension Reduction for Manifold Next-Event Estimation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-342/i3d_paper_session.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://pharr.org/matt&#34; target=&#34;_blank&#34;&gt;Matt Pharr&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 341  -  May 26th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-341/</link>
      <pubDate>Sun, 26 May 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-341/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zero-radiance.github.io/post/microfacet-specular/&#34; target=&#34;_blank&#34; id=&#34;Construction of a Microfacet Specular BSDF: A Geometric Approach&#34;&gt;Construction of a Microfacet Specular BSDF: A Geometric Approach&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper provides a walkthrough explanation of the different components that define a BSDF (bidirectional scattering distribution function) that defines the shading behavior of a materials&lt;/li&gt;
&lt;li&gt;covers the underlying theory, explaining the derivation as well as the geometric interpretations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-341/micro_tiling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240524210457/https://zero-radiance.github.io/post/microfacet-specular/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.activision.com/tech-reports/2024/05/hemispherical-lighting-insights&#34; target=&#34;_blank&#34; id=&#34;Hemispherical Lighting Insights&#34;&gt;Hemispherical Lighting Insights&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces models to solve the reconstruction of irradiance in the vertex-normal space&lt;/li&gt;
&lt;li&gt;applies the developed framework to hemispherical and cone occlusion to volumetric lighting&lt;/li&gt;
&lt;li&gt;as well as mitigating light leakage for normal-mapped surfaces&amp;rsquo; appearance of runtime ambient occlusion&lt;/li&gt;
&lt;li&gt;shadertoy implementation is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-341/Hemispherical_Lighting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240524220036/https://research.activision.com/tech-reports/2024/05/hemispherical-lighting-insights&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2024/05/22/ray-tracing-with-voxels-in-c-series-part-5/&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing with Voxels in C&amp;#43;&amp;#43; Series – Part 5&#34;&gt;Ray Tracing with Voxels in C&amp;#43;&amp;#43; Series – Part 5&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the series on voxel ray tracer continues by presenting how to accumulate samples over time with a nonstatic camera&lt;/li&gt;
&lt;li&gt;explains temporal pixel reprojection, how to deal with sub-pixel blending, and how to improve results with occurring object occlusions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-341/voxel_raytracing.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240525101756/https://jacco.ompf2.com/2024/05/22/ray-tracing-with-voxels-in-c-series-part-5/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jeremyong.com/graphics/2024/05/19/getting-started-in-computer-graphics/&#34; target=&#34;_blank&#34; id=&#34;Getting Started In Computer Graphics&#34;&gt;Getting Started In Computer Graphics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a detailed description for programmers interested in graphics programming&lt;/li&gt;
&lt;li&gt;explains what the job entails, different specializations in games, and what topics graphics programmers often work on&lt;/li&gt;
&lt;li&gt;additionally gives insights into the technologies the author recommends to start learning with&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-341/graphics_programming_beginner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240526193115/https://www.jeremyong.com/graphics/2024/05/19/getting-started-in-computer-graphics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cyanilux.com/tutorials/god-rays-shader-breakdown&#34; target=&#34;_blank&#34; id=&#34;Sun Beams / God Rays Shader Breakdown&#34;&gt;Sun Beams / God Rays Shader Breakdown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains an approach to implementing Sun Beams using Billboarding techniques&lt;/li&gt;
&lt;li&gt;implementation is shown using the visual shading language of Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-341/godrays.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240524180742/https://www.cyanilux.com/tutorials/god-rays-shader-breakdown/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/agility-sdk-1-614-0&#34; target=&#34;_blank&#34; id=&#34;Agility SDK 1.614.0: R9B9G9E5 support for Render Targets and UAVs&#34;&gt;Agility SDK 1.614.0: R9B9G9E5 support for Render Targets and UAVs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents that the latest D3D12 SDK update introduces support for R9B9G9E5 for Render Target and UAVs&lt;/li&gt;
&lt;li&gt;explains how the R9B9G9E5 format allows higher precisions compared to half-floats and less memory usage than float formats&lt;/li&gt;
&lt;li&gt;additionally expressed the importance of verifying hardware support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-341/999e5_banding.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240523173023/https://devblogs.microsoft.com/directx/agility-sdk-1-614-0/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=g-yJ8wobzMQ&#34; target=&#34;_blank&#34; id=&#34;Unity Shader Graph Basics (Part 8 - Scene Intersections 1)&#34;&gt;Unity Shader Graph Basics (Part 8 - Scene Intersections 1)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows how to implement a shader effect that allows objects to change their appearance close to existing depth values in the depth buffer&lt;/li&gt;
&lt;li&gt;the presented technique relies on a rendering order that ensures the depth values are written before the objects want to read them&lt;/li&gt;
&lt;li&gt;technique is implemented using the visual shader language of Unity  &lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-341/depth_blending.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=MXWsLTsq80c&#34; target=&#34;_blank&#34; id=&#34;Recording the clear command // Vulkan For Beginners #9&#34;&gt;Recording the clear command // Vulkan For Beginners #9&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial continues to discuss the implementation of a Vulkan renderer&lt;/li&gt;
&lt;li&gt;this week&amp;rsquo;s videos explain how to clear the back buffer to a solid color in every frame&lt;/li&gt;
&lt;li&gt;C++ implementation is shown&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-341/vulkan_clearing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.wihlidal.com&#34; target=&#34;_blank&#34;&gt;Graham Wihlidal&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 340  -  May 19th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-340/</link>
      <pubDate>Sun, 19 May 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-340/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.nvidia.com/labs/rtr/publication/pharr2024stochtex/&#34; target=&#34;_blank&#34; id=&#34;Filtering After Shading with Stochastic Texture Filtering&#34;&gt;Filtering After Shading with Stochastic Texture Filtering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an investigation into applying texture filtering after shading instead of before shading&lt;/li&gt;
&lt;li&gt;shows comparisons of the approaches and a background into the underlying theory&lt;/li&gt;
&lt;li&gt;presents guidelines on the tradeoffs and when to use different approaches&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-340/filtering_different_stages.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240521034050/https://research.nvidia.com/labs/rtr/publication/pharr2024stochtex/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://xol.io/blah/death-to-shading-languages/&#34; target=&#34;_blank&#34; id=&#34;Death To Shading Languages&#34;&gt;Death To Shading Languages&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents his view on shading languages and the (lack of) evolution&lt;/li&gt;
&lt;li&gt;discusses the shortcomings and issues arising from them&lt;/li&gt;
&lt;li&gt;shows an outlook on why the concept of shading language is outdated and should be retired&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-340/vulkan_d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240517104332/https://xol.io/blah/death-to-shading-languages/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://suikasibyl.github.io/vxpg&#34; target=&#34;_blank&#34; id=&#34;Real-Time Path Guiding Using Bounding Voxel Sampling&#34;&gt;Real-Time Path Guiding Using Bounding Voxel Sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a path-guiding method that utilizes an irradiance voxel data structure&lt;/li&gt;
&lt;li&gt;the presented method is a spatial distribution&lt;/li&gt;
&lt;li&gt;shows an evaluation of static and dynamic scenes, containing quality and performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-340/bounding_voxel_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240521034659/https://suikasibyl.github.io/vxpg&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphics.cs.utah.edu/research/projects/area-restir/&#34; target=&#34;_blank&#34; id=&#34;Area ReSTIR: Resampling for Real-Time Defocus and Antialiasing&#34;&gt;Area ReSTIR: Resampling for Real-Time Defocus and Antialiasing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces Area ReSTIR that extends ReSTIR to be able to be applied to sub-pixel details&lt;/li&gt;
&lt;li&gt;presents how to allow the reservoir to integrate with the area for the lens and film&lt;/li&gt;
&lt;li&gt;shows the technique applied to depth of field and antialiasing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-340/restir-vs-arearestir-small.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240516105209/https://graphics.cs.utah.edu/research/projects/area-restir/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2024/05/15/ray-tracing-with-voxels-in-c-series-part-4/&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing with Voxels in C&amp;#43;&amp;#43; Series – Part 4&#34;&gt;Ray Tracing with Voxels in C&amp;#43;&amp;#43; Series – Part 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article continues the series that covers the implementation of a voxel raytracer&lt;/li&gt;
&lt;li&gt;this week explains the concept of noise patterns and presents the effects using soft shadows&lt;/li&gt;
&lt;li&gt;explains white noise, blue noise, and stratification&lt;/li&gt;
&lt;li&gt;additionally, it shows how to temporally apply noise to allow temporal accumulation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-340/blueshadow.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240521035050/https://jacco.ompf2.com/2024/05/15/ray-tracing-with-voxels-in-c-series-part-4/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hal.science/hal-04567402&#34; target=&#34;_blank&#34; id=&#34;A Fully-correlated Anisotropic Micrograin BSDF Model&#34;&gt;A Fully-correlated Anisotropic Micrograin BSDF Model&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an improved version of a BSDF developed for micro grain materials&lt;/li&gt;
&lt;li&gt;shows how it explicitly models height-normal dependencies to summarize shadowing and masking inside the porous layer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-340/grain_bsdf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240521035242/https://hal.science/hal-04567402&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=tethAU66xaA&#34; target=&#34;_blank&#34; id=&#34;[video] Beyond White Noise for Real-Time Rendering&#34;&gt;[video] Beyond White Noise for Real-Time Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents how different types of noise for random number generation can affect the results&lt;/li&gt;
&lt;li&gt;discusses Randomness/fairness when generating random numbers&lt;/li&gt;
&lt;li&gt;present how different noises affect stochastic rendering techniques and suggest solutions to common problems&lt;/li&gt;
&lt;li&gt;discusses FAST noise generator utility and available pre-generated noise patterns&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-340/random-in-2d.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1778_shapes_and_forms_of_dx12_root_signatures&#34; target=&#34;_blank&#34; id=&#34;Shapes and forms of DX12 root signatures&#34;&gt;Shapes and forms of DX12 root signatures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an excellent overview of the different ways to create root signatures in D3D12&lt;/li&gt;
&lt;li&gt;starts with a brief overview of what a root signature is and how it&amp;rsquo;s used&lt;/li&gt;
&lt;li&gt;then discusses different methods to author, create, decompile, and use the concept&lt;/li&gt;
&lt;li&gt;presents a brief discussion on how root signatures are used and how other engines handle it&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-340/DX12_root_signatures_diagram_02.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240516134753/https://asawicki.info/news_1778_shapes_and_forms_of_dx12_root_signatures&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jglrxavpok.github.io/2024/05/13/recreating-nanite-mesh-shader-time.html&#34; target=&#34;_blank&#34; id=&#34;Recreating Nanite: Mesh shader time&#34;&gt;Recreating Nanite: Mesh shader time&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses how to implement cluster-based mesh rendering using mesh shaders&lt;/li&gt;
&lt;li&gt;discusses how to set mesh shaders using Vulkan&lt;/li&gt;
&lt;li&gt;extends the pipeline to use task shaders to execute LOD selection and frustum culling&lt;/li&gt;
&lt;li&gt;presents performance numbers and how wave utilization is essential&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-340/nsight-compare-workgroupsize1-final.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240521035811/https://jglrxavpok.github.io/2024/05/13/recreating-nanite-mesh-shader-time.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://weiphil.github.io/portfolio/neural_bvh&#34; target=&#34;_blank&#34; id=&#34;N-BVH: Neural ray queries with bounding volume hierarchies&#34;&gt;N-BVH: Neural ray queries with bounding volume hierarchies&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a new neural method to compress BVH for raytracing workloads&lt;/li&gt;
&lt;li&gt;shows how the technique is designed to be integrated into existing raytracing pipelines&lt;/li&gt;
&lt;li&gt;presents a comparison against existing solutions on memory and performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-340/neural_bvh.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240521035959/https://weiphil.github.io/portfolio/neural_bvh&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/aortizelguero&#34; target=&#34;_blank&#34;&gt;Angel Ortiz&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 339  -  May 12th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-339/</link>
      <pubDate>Sun, 12 May 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-339/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/amd-gpu-architecture-programming-documentation/&#34; target=&#34;_blank&#34; id=&#34;AMD GPU architecture programming documentation&#34;&gt;AMD GPU architecture programming documentation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD released documentation for the Micro engine and the RDNA 3 ISA&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-339/rdna3-isa.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240511092203/https://gpuopen.com/amd-gpu-architecture-programming-documentation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/brotli-g-pre-condition-block-compressed-textures/&#34; target=&#34;_blank&#34; id=&#34;Pre-condition block compressed textures with Brotli-G&#34;&gt;Pre-condition block compressed textures with Brotli-G&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents that the Brotli-G (GPU compression library) now allows a pre-condition step that allows further file reduction&lt;/li&gt;
&lt;li&gt;shows how to use the feature and what image formats are currently supported&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-339/brotli_sdp.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240513053117/https://gpuopen.com/learn/brotli-g-pre-condition-block-compressed-textures/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2024/05/08/ray-tracing-with-voxels-in-c-series-part-3/&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing with Voxels in C&amp;#43;&amp;#43; Series – Part 3&#34;&gt;Ray Tracing with Voxels in C&amp;#43;&amp;#43; Series – Part 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article continues the development of a voxel raytracer by explaining anti-aliasing and soft shadows&lt;/li&gt;
&lt;li&gt;presents the difference between numerical integration and stochastic integration solvers&lt;/li&gt;
&lt;li&gt;shows the technique with anti-aliasing first and derives soft shadows as a follow-up&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-339/viking-voxel-tracing.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240513053446/https://jacco.ompf2.com/2024/05/08/ray-tracing-with-voxels-in-c-series-part-3/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=vHhxfFdfSog&#34; target=&#34;_blank&#34; id=&#34;Buffer Those Commands! // Vulkan For Beginners #8&#34;&gt;Buffer Those Commands! // Vulkan For Beginners #8&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains the Vulkan command buffer concepts&lt;/li&gt;
&lt;li&gt;presents limitations that OpenGL had and how Vulkan can solve these&lt;/li&gt;
&lt;li&gt;shows the command buffer lifecycle, explains memory management&lt;/li&gt;
&lt;li&gt;presents how to use the API to operate on command buffers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-339/command_buffer_cycle.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://apoorvaj.io/the-shader-graph-contract&#34; target=&#34;_blank&#34; id=&#34;The shader graph contract &#34;&gt;The shader graph contract &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the design trade-offs for a shader graph system&lt;/li&gt;
&lt;li&gt;presents the complexity when integrating with modern complex shading systems&lt;/li&gt;
&lt;li&gt;shows how Unreal and Unity implement the ideas&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-339/shader_graph_contract.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240513053844/https://apoorvaj.io/the-shader-graph-contract/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://torust.me/ZH3.pdf&#34; target=&#34;_blank&#34; id=&#34;ZH3: Quadratic Zonal Harmonics&#34;&gt;ZH3: Quadratic Zonal Harmonics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces the ZH3 format for spherical harmonics that fills the gap between linear and quadratic SHs&lt;/li&gt;
&lt;li&gt;The proposed solution improves the quality at the cost of a single extra coefficient per channel&lt;/li&gt;
&lt;li&gt;the source code is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-339/zh-format.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240513053616/http://torust.me/ZH3.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.mikeswanson.com/apples-mysterious-fisheye-projection&#34; target=&#34;_blank&#34; id=&#34;Apple’s Mysterious Fisheye Projection&#34;&gt;Apple’s Mysterious Fisheye Projection&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses projection methods for spherical videos&lt;/li&gt;
&lt;li&gt;presents issues with existing methods&lt;/li&gt;
&lt;li&gt;reverse engineers what apples Methods appears to be doing and how it&amp;rsquo;s able to achieve higher quality&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-339/apple-fish-eye-projection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240428234139/https://blog.mikeswanson.com/apples-mysterious-fisheye-projection/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/keithoconor&#34; target=&#34;_blank&#34;&gt;Keith O&amp;rsquo;Conor&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 338  -  May 5th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-338/</link>
      <pubDate>Sun, 05 May 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-338/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=en2QcehKJd8&#34; target=&#34;_blank&#34; id=&#34;[video] Math in Game Development Summit: A Visual Guide to Quaternions and Dual Quaternions&#34;&gt;[video] Math in Game Development Summit: A Visual Guide to Quaternions and Dual Quaternions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the GDC talk presents a great explanation of Quaternions and expands the concepts to cover dual quaternions&lt;/li&gt;
&lt;li&gt;presents interactive and visual examples of the different components and operations involved&lt;/li&gt;
&lt;li&gt;shows issues and limitations with matrix interpolations and how quaternions and dual quaternions can solve these limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-338/gdc-quaternions.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2024/05/01/ray-tracing-with-voxels-in-c-series-part-2/&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing with Voxels in C&amp;#43;&amp;#43; Series – Part 2&#34;&gt;Ray Tracing with Voxels in C&amp;#43;&amp;#43; Series – Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this blog post covers how to extend a raytracer in a voxel world with support for reflections&lt;/li&gt;
&lt;li&gt;expands perfect reflection to allow for refraction&lt;/li&gt;
&lt;li&gt;contains challenges for the reader to develop their understanding further&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-338/voxel-reflections.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240506053445/https://jacco.ompf2.com/2024/05/01/ray-tracing-with-voxels-in-c-series-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://syntec-research.github.io/FaceFolds/&#34; target=&#34;_blank&#34; id=&#34;Meshed Radiance Manifolds for Efficient Volumetric Rendering of Dynamic Faces&#34;&gt;Meshed Radiance Manifolds for Efficient Volumetric Rendering of Dynamic Faces&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a method for view synthesis of facial expression captures in 3D views not captured&lt;/li&gt;
&lt;li&gt;the presented solution is running at real-time rates without relying on machine learning techniques&lt;/li&gt;
&lt;li&gt;achieved using a layered mesh for view-dependent information and mixing this with view-independent RGBA texture video&lt;/li&gt;
&lt;li&gt;the included paper presents a summary of the technique, compares it against existing solutions, and discusses the limitations of the approach&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-338/face-method.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240423015120/https://syntec-research.github.io/FaceFolds/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=MVGoiofe-4g&#34; target=&#34;_blank&#34; id=&#34;[video] I3D 2024 Papers Preview&#34;&gt;[video] I3D 2024 Papers Preview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents a summary of all the papers that will be presented at the I3D Conference 2024&lt;/li&gt;
&lt;li&gt;shows a brief summary of a couple of seconds for each paper&lt;/li&gt;
&lt;li&gt;papers cover an extensive range of topics, from ML techniques, VR research, upcoming display technologies, new filtering approaches, and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-338/i3d-paper-preview.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://armanmaesumi.github.io/onenoise/&#34; target=&#34;_blank&#34; id=&#34;One Noise to Rule Them All: Learning a Unified Model of Spatially-Varying Noise Patterns&#34;&gt;One Noise to Rule Them All: Learning a Unified Model of Spatially-Varying Noise Patterns&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper discusses a generative model that is trained to generate multiple types of noise and blend between them&lt;/li&gt;
&lt;li&gt;presents the network architecture, how it has been implemented and improved&lt;/li&gt;
&lt;li&gt;shows many examples of the generated results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-338/noise_paper_teaser.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240426053919/https://armanmaesumi.github.io/onenoise/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ea.com/seed/news/spatio-temporal-sampling&#34; target=&#34;_blank&#34; id=&#34;Filter-Adapted Spatio-Temporal Sampling for Real-Time Rendering&#34;&gt;Filter-Adapted Spatio-Temporal Sampling for Real-Time Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a framework to shape rendering noise to optimize samples for perceptual quality and denoising performance&lt;/li&gt;
&lt;li&gt;shows how sampling patterns can be optimized to take advantage of knowledge about post-processing spatial and temporal filtering characteristics&lt;/li&gt;
&lt;li&gt;demonstrates how to use the framework on example applications&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-338/filtered-noise.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://github.com/electronicarts/fastnoise&#34; style=&#34;color:white;&#34;&gt;noise utility and textures &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240502225105/https://www.ea.com/seed/news/spatio-temporal-sampling&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=eoxYceDfKEM&#34; target=&#34;_blank&#34; id=&#34;[video] Nanite for Artists | GDC 2024&#34;&gt;[video] Nanite for Artists | GDC 2024&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows the limitations of Nanite from an artist&amp;rsquo;s perspective&lt;/li&gt;
&lt;li&gt;presents the debug views to explain why vegetation scenes are more difficult for the system to process&lt;/li&gt;
&lt;li&gt;discusses possible solutions through the use of procedural generations and fallback LODs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-338/nanite_for_artists.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://godotengine.org/article/introducing-reverse-z&#34; target=&#34;_blank&#34; id=&#34;Introducing Reverse Z (AKA I&amp;#39;m sorry for breaking your shader) &#34;&gt;Introducing Reverse Z (AKA I&amp;#39;m sorry for breaking your shader) &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Godot engine is switching the definition of near/far plane, with the near plane now mapping to a depth of 1 and the far plane to 0&lt;/li&gt;
&lt;li&gt;this post explains common patterns that are affected by this change&lt;/li&gt;
&lt;li&gt;additionally provides links to explain why this new mapping allowed significantly improved depth buffer precision&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-338/introducing-reverse-z.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240505235202/https://godotengine.org/article/introducing-reverse-z/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to John Burton for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 337  -  April 28th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-337/</link>
      <pubDate>Sun, 28 Apr 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-337/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.unrealengine.com/en-US/blog/take-a-deep-dive-into-nanite-gpu-driven-materials&#34; target=&#34;_blank&#34; id=&#34;Take a deep dive into Nanite GPU-driven materials&#34;&gt;Take a deep dive into Nanite GPU-driven materials&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation is packed with detailed information about the process of implementing shader graph support into the Nanite shading model&lt;/li&gt;
&lt;li&gt;starts with an overview of the system and discusses the steps taken to reach the current support level&lt;/li&gt;
&lt;li&gt;provides many details on the lower-level aspects and how GPU hardware influences decisions&lt;/li&gt;
&lt;li&gt;additionally explains how the system has been optimized on PS5 and Series X with console-level access&lt;/li&gt;
&lt;li&gt;also shows that work graphs for PC enable a new set of optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-337/nanite-gpu-driven-materials.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://epicgames.box.com/s/uepi1joznb0a3mhw7hu5a4m2d6vm61pi&#34; style=&#34;color:white;&#34;&gt;slides &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240429040321/https://www.unrealengine.com/en-US/blog/take-a-deep-dive-into-nanite-gpu-driven-materials&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aaltodoc.aalto.fi/server/api/core/bitstreams/ab0d594b-da79-4402-88ca-3811b39745e6/content&#34; target=&#34;_blank&#34; id=&#34;Real-time denoising of importance sampled direct lighting&#34;&gt;Real-time denoising of importance sampled direct lighting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The Master Thesis is a collaboration with Remedy Entertainment and discusses the implementation of a denoising solution for direct lighting&lt;/li&gt;
&lt;li&gt;the focus is to find a solution that balances performance and quality to allow real-time utilization of consoles&lt;/li&gt;
&lt;li&gt;reviews existing solutions and provides evaluation methods to provide analysis capabilities&lt;/li&gt;
&lt;li&gt;discusses the implementation and tradeoffs done&lt;/li&gt;
&lt;li&gt;presents performance, memory, and image comparisons of the developed solution against existing solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-337/alan_wake_denoise.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240429040531/https://aaltodoc.aalto.fi/server/api/core/bitstreams/ab0d594b-da79-4402-88ca-3811b39745e6/content&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2024/04/24/ray-tracing-with-voxels-in-c-series-part-1/&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing with Voxels in C&amp;#43;&amp;#43; Series – Part 1&#34;&gt;Ray Tracing with Voxels in C&amp;#43;&amp;#43; Series – Part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the start of a series of articles covering the implementation of ray tracing for a voxel system&lt;/li&gt;
&lt;li&gt;presents the initials of light and shadow calculations&lt;/li&gt;
&lt;li&gt;concludes with challenges to the reader to improve their understanding of the material&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-337/orangevox.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240429040032/https://jacco.ompf2.com/2024/04/24/ray-tracing-with-voxels-in-c-series-part-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alextardif.com/Compaction.html&#34; target=&#34;_blank&#34; id=&#34;How to Compact Acceleration Structures in D3D12&#34;&gt;How to Compact Acceleration Structures in D3D12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post shows how to implement Acceleration Structure compaction using D3D12&lt;/li&gt;
&lt;li&gt;this compaction step is run on the GPU timeline and often reduces the memory size required by 40%&lt;/li&gt;
&lt;li&gt;discusses the necessary API steps, GPU synchronization, and memory management strategies&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-337/CompactBvhD3D12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240429040212/https://alextardif.com/Compaction.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lisyarus.github.io/blog/posts/multiple-importance-sampling.html&#34; target=&#34;_blank&#34; id=&#34;Demystifying multiple importance sampling&#34;&gt;Demystifying multiple importance sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a full explanation of the derivation of multiple-importance sampling&lt;/li&gt;
&lt;li&gt;explains the different components and how to combine them correctly&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-337/box2-mis2-256.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240427210014/https://lisyarus.github.io/blog/posts/multiple-importance-sampling.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.willusher.io/graphics/2024/04/22/webgpu-marching-cubes&#34; target=&#34;_blank&#34; id=&#34;GPU Compute in the Browser at the Speed of Native: WebGPU Marching Cubes&#34;&gt;GPU Compute in the Browser at the Speed of Native: WebGPU Marching Cubes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to implement a marching cube compute shader&lt;/li&gt;
&lt;li&gt;the implementation is shown both in Vulkan and WebGPU&lt;/li&gt;
&lt;li&gt;compares the performance of both implementations and finds that WebGPU performance is close to native Vulkan&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-337/wgpu-mc-marching-squares.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240424222251/https://www.willusher.io/graphics/2024/04/22/webgpu-marching-cubes&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://16bpp.net/blog/post/the-performance-impact-of-cpp-final-keyword&#34; target=&#34;_blank&#34; id=&#34;The Performance Impact of C&amp;#43;&amp;#43;&amp;#39;s final Keyword&#34;&gt;The Performance Impact of C&amp;#43;&amp;#43;&amp;#39;s final Keyword&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a blog post covering the effect of using C++ final on a ray-tracing demo&lt;/li&gt;
&lt;li&gt;the author presents the findings with several platforms, compilers, and scenes and presents the performance results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-337/book2_final_scene.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240426155430/https://16bpp.net/blog/post/the-performance-impact-of-cpp-final-keyword/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/articles/&#34; target=&#34;_blank&#34; id=&#34;Raytracing - Articles&#34;&gt;Raytracing - Articles&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this page serves as a starting point for the articles of the author&lt;/li&gt;
&lt;li&gt;covering topics such as BVH building series, Probability Theory, CPU Optimization series&lt;/li&gt;
&lt;li&gt;also contains various articles on Ray Tracing, graphics techniques, and fixed point math&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-337/whittedbvh.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240424085238/https://jacco.ompf2.com/articles/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/rgp-2-1-rga-interoperability/&#34; target=&#34;_blank&#34; id=&#34;Radeon™ GPU Profiler 2.1 adds interoperability with Radeon™ GPU Analyzer (and more)!&#34;&gt;Radeon™ GPU Profiler 2.1 adds interoperability with Radeon™ GPU Analyzer (and more)!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article introduces how shaders from GPU Profiler captures can now be opened in the GPU Analyzer for more detailed investigation&lt;/li&gt;
&lt;li&gt;additionally shows UI updates and presents how instruction latency provides more information about where the latency occurs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-337/rgp_wavefront_timeline_analyze_pipeline_in_rga.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240424215306/https://gpuopen.com/learn/rgp-2-1-rga-interoperability/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.nvidia.com/en-us/on-demand/session/gdc24-gdc1003/?playlistId=playList-821861a9-571a-4073-abab-d60ece4d1e49&#34; target=&#34;_blank&#34; id=&#34;Alan Wake 2: A Deep Dive into Path Tracing Technology&#34;&gt;Alan Wake 2: A Deep Dive into Path Tracing Technology&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presentation (free login required) discusses the implementation details of Path Tracing within the Alan Wake 2 technology stack&lt;/li&gt;
&lt;li&gt;starts with an overview of the implementation used (vertex accessing, BVH creation, dealing with dynamic geometry, etc.)&lt;/li&gt;
&lt;li&gt;shows how Opacity Micromaps are used for alpha-tested geometry&lt;/li&gt;
&lt;li&gt;from there, explain how Path tracing has been implemented, covering the whole pipeline from shading, shadows, reflections, and reconstruction techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-337/path_tracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240429040855/https://www.nvidia.com/en-us/on-demand/session/gdc24-gdc1003/?playlistId=playList-821861a9-571a-4073-abab-d60ece4d1e49&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 336  -  April 21st, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-336/</link>
      <pubDate>Sun, 21 Apr 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-336/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ggx-research.github.io/publication/2024/04/17/publication-intel-diffrast.html&#34; target=&#34;_blank&#34; id=&#34;Transforming a Non-Differentiable Rasterizer into a Differentiable One with Stochastic Gradient Estimation &#34;&gt;Transforming a Non-Differentiable Rasterizer into a Differentiable One with Stochastic Gradient Estimation &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a method that allows existing non-differentiable rasterizers to be made differentiable&lt;/li&gt;
&lt;li&gt;explains the underlying technique and how to derive per-pixel stochastic gradient estimation&lt;/li&gt;
&lt;li&gt;shows how to use the concepts to implement a 3D assets optimization system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-336/differential_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://auzaiffe.wordpress.com/2024/04/15/vndf-importance-sampling-an-isotropic-distribution/&#34; target=&#34;_blank&#34; id=&#34;VNDF importance sampling for an isotropic Smith-GGX distribution&#34;&gt;VNDF importance sampling for an isotropic Smith-GGX distribution&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article introduces a specialization for the isotropic distribution of visible normals for GGX-Smith&lt;/li&gt;
&lt;li&gt;discusses the limitations and implementation&lt;/li&gt;
&lt;li&gt;source-code for HLSL and GLSL is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-336/reflected_ray_representation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240422033228/https://auzaiffe.wordpress.com/2024/04/15/vndf-importance-sampling-an-isotropic-distribution/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://colour-science.github.io/colour-science-precis/&#34; target=&#34;_blank&#34; id=&#34;Colour Science Precis for the CGI Artist&#34;&gt;Colour Science Precis for the CGI Artist&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of summaries about color science aimed at computer graphics artists&lt;/li&gt;
&lt;li&gt;provides a summary of the physics of color, the human vision, as well as the representation in computer graphics&lt;/li&gt;
&lt;li&gt;additionally discusses color transformation onto displays&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-336/colorspace_graphics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240420063228/https://colour-science.github.io/colour-science-precis/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/WeakKnight/real-time-seamless-object-space-shading&#34; target=&#34;_blank&#34; id=&#34;Real-time Seamless Object Space Shading&#34;&gt;Real-time Seamless Object Space Shading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces an object space shading method based on per-half-edge texturing (Htex)&lt;/li&gt;
&lt;li&gt;presents a comparison against existing and shows how a Htex based method helps to reduce texturing seams&lt;/li&gt;
&lt;li&gt;implementation of ReSTIR GI in object space using Unity is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-336/object_space_shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://github.com/WeakKnight/real-time-seamless-object-space-shading/blob/7199a54b188458e44f0fc540b087859143d65bb5/object_space_shading_preprint.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20240422004903/https://github.com/WeakKnight/real-time-seamless-object-space-shading/blob/7199a54b188458e44f0fc540b087859143d65bb5/object_space_shading_preprint.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240422035119/https://github.com/WeakKnight/real-time-seamless-object-space-shading&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=GgW3MVOP8_A&#34; target=&#34;_blank&#34; id=&#34;[video] Terrain Tessellation Shaders // Terrain Rendering Episode 13&#34;&gt;[video] Terrain Tessellation Shaders // Terrain Rendering Episode 13&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how to use OpenGL tessellation shaders to implement a dynamic level of detail for mesh based terrain system&lt;/li&gt;
&lt;li&gt;explains how to setup the data for usage with the shaders&lt;/li&gt;
&lt;li&gt;presents the shader and C++ code implementation required&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-336/OpenGlTesselation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=i6VVegoRuy0&#34; target=&#34;_blank&#34; id=&#34;[video] An Optimisation 6 Years In The Making&#34;&gt;[video] An Optimisation 6 Years In The Making&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents techniques to represent light shafts&lt;/li&gt;
&lt;li&gt;explains an overview of two existing approaches&lt;/li&gt;
&lt;li&gt;present an approximation technique that uses 2D planes combined with shadow map sampling and temporal filtering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-336/light_shaft_representation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://www.plane9.com&#34; target=&#34;_blank&#34;&gt;Joakim Dahl&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 335  -  April 14th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-335/</link>
      <pubDate>Sun, 14 Apr 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-335/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/radiance-cascades&#34; target=&#34;_blank&#34; id=&#34;GM Shaders Guest: Radiance Cascades&#34;&gt;GM Shaders Guest: Radiance Cascades&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post explains the Radiance Cascades technique for global illumination&lt;/li&gt;
&lt;li&gt;shows the different stages of the algorithms and how to implement them for 2D cases&lt;/li&gt;
&lt;li&gt;source code is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-335/cascade_gi_placement.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240415044107/https://mini.gmshaders.com/p/radiance-cascades&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://minus-ze.ro/posts/flattening-bezier-curves-and-arcs/&#34; target=&#34;_blank&#34; id=&#34;Flattening Bézier Curves and Arcs&#34;&gt;Flattening Bézier Curves and Arcs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post presents three methods to convert (Quadratic, Cubic) Bézier curves and elliptical arcs into line segments&lt;/li&gt;
&lt;li&gt;provides interactive examples to visualize the methods&lt;/li&gt;
&lt;li&gt;An example javascript code is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-335/generated_linear_segments.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240411180515/https://minus-ze.ro/posts/flattening-bezier-curves-and-arcs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gdcvault.com/play/1034330/3D-Toon-Rendering-in-Hi&#34; target=&#34;_blank&#34; id=&#34;3D Toon Rendering in &amp;#39;Hi-Fi RUSH&amp;#39;&#34;&gt;3D Toon Rendering in &amp;#39;Hi-Fi RUSH&amp;#39;&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the GDC presentation provides an in-depth view into how the visual stylized shading was implemented&lt;/li&gt;
&lt;li&gt;covers a large number of topics from  Deferred Toon Rendering, Comic Shader, over Global Illumination to Toon Face Shadows and more&lt;/li&gt;
&lt;li&gt;the game is based on Unreal Engine 4&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-335/toon_characters.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240415044540/https://gdcvault.com/play/1034330/3D-Toon-Rendering-in-Hi&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gdcvault.com/play/1034738/DirectX-State-of-the-Union&#34; target=&#34;_blank&#34; id=&#34;DirectX State of the Union Ft. Work Graphs and Introducing DirectSR (Presented by Microsoft)&#34;&gt;DirectX State of the Union Ft. Work Graphs and Introducing DirectSR (Presented by Microsoft)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the GDC 2024 presentation covers the problems with Draw Indirect and how Work Graphs are designed to solve them&lt;/li&gt;
&lt;li&gt;presents a walkthrough of the API and how AMD/NVidia have started to use the feature&lt;/li&gt;
&lt;li&gt;additionally introduces DirectSR, the new API that abstracts upscaling techniques behind a command D3D API&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-335/work_graph_rasterizer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240415044903/https://gdcvault.com/play/1034738/DirectX-State-of-the-Union&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=SO83KQuuZvg&#34; target=&#34;_blank&#34; id=&#34;[video] Coding Adventure: Rendering Text&#34;&gt;[video] Coding Adventure: Rendering Text&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video deep dives into font rendering&lt;/li&gt;
&lt;li&gt;starts by exploring the True Type Font format&lt;/li&gt;
&lt;li&gt;showing how to extract the glyphs and the bezier curves that represent them&lt;/li&gt;
&lt;li&gt;discusses several techniques to render the curves to form the fonts&lt;/li&gt;
&lt;li&gt;presents issues and solutions for a large number of issues encountered&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-335/text_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.graphicsprogrammingconference.nl/&#34; target=&#34;_blank&#34; id=&#34;Graphics Programming Conference&#34;&gt;Graphics Programming Conference&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a new graphics programming conference to happen in Breda (Netherlands) in November&lt;/li&gt;
&lt;li&gt;currently looking for speaker and master class proposals&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-335/graphics_programming_conference.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240415044132/https://www.graphicsprogrammingconference.nl/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 334  -  April 7th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-334/</link>
      <pubDate>Sun, 07 Apr 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-334/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jglrxavpok.github.io/2024/04/02/recreating-nanite-runtime-lod-selection.html&#34; target=&#34;_blank&#34; id=&#34;Recreating Nanite: Runtime LOD selection&#34;&gt;Recreating Nanite: Runtime LOD selection&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses how to implement a continuous LOD system for meshlet-based rendering&lt;/li&gt;
&lt;li&gt;shows how to calculate the error metric and structure the data for GPU access&lt;/li&gt;
&lt;li&gt;presents how to select the correct LOD level at runtime&lt;/li&gt;
&lt;li&gt;A video of the results is included&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-334/debug-view-clusters.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240410031147/https://jglrxavpok.github.io/2024/04/02/recreating-nanite-runtime-lod-selection.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dev.epicgames.com/community/learning/talks-and-demos/Vpv2/unreal-engine-optimizing-ue5-rethinking-performance-paradigms-for-high-quality-visuals-part-1-nanite-and-lumen-unreal-fest-2023&#34; target=&#34;_blank&#34; id=&#34;Optimizing UE5: Rethinking Performance Paradigms for High-Quality Visuals - Part 1: Nanite and Lumen | Unreal Fest 2023&#34;&gt;Optimizing UE5: Rethinking Performance Paradigms for High-Quality Visuals - Part 1: Nanite and Lumen | Unreal Fest 2023&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation provides an overview of the Nanite and Lumen systems&lt;/li&gt;
&lt;li&gt;shows a high-level look at which parts affect performance and how performance intuition doesn&amp;rsquo;t match the classical rasterization model&lt;/li&gt;
&lt;li&gt;the whole presentation slide deck is done in the UE5 editor&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-334/nanite_performance.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240406074102/https://dev.epicgames.com/community/learning/talks-and-demos/Vpv2/unreal-engine-optimizing-ue5-rethinking-performance-paradigms-for-high-quality-visuals-part-1-nanite-and-lumen-unreal-fest-2023&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=NHd1PeJfyzE&#34; target=&#34;_blank&#34; id=&#34;[video] Dithered Transparency in Unity Shader Graph&#34;&gt;[video] Dithered Transparency in Unity Shader Graph&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains the difference between alpha blending and dithered transparency&lt;/li&gt;
&lt;li&gt;shows sorting issues related to blending order and how dithered transparency solves them&lt;/li&gt;
&lt;li&gt;presents how to implement the technique using Unity Shader Graph&lt;/li&gt;
&lt;li&gt;additionally shows the limitations of the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-334/dithering_transparency.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/baldurk/renderdoc/releases/tag/v1.32&#34; target=&#34;_blank&#34; id=&#34;RenderDoc - Version v1.32&#34;&gt;RenderDoc - Version v1.32&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the latest version adds support for Slang with Vulkan, additional extensions support, D3D12 Pixel history support, and many bug fixes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-334/pixel_history.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240410030505/https://github.com/baldurk/renderdoc/releases/tag/v1.32&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://danglingpointers.com/post/copy-queues/&#34; target=&#34;_blank&#34; id=&#34;Copy Queue woes.&#34;&gt;Copy Queue woes.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how usage patterns of copy queues to upload and download data from the GPU can significantly affect the amount of stalls&lt;/li&gt;
&lt;li&gt;discusses the different patterns and presents timelines to show the waits&lt;/li&gt;
&lt;li&gt;additionally shows how multiple copy queues interact and the importance of copy queue priorities&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-334/copy-queue-timing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240410031451/http://danglingpointers.com/post/copy-queues/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://andrewkchan.dev/posts/lit-splat.html&#34; target=&#34;_blank&#34; id=&#34;Real-Time Lighting with Gaussian Splats&#34;&gt;Real-Time Lighting with Gaussian Splats&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes a method to apply lighting to Gaussian Splats&lt;/li&gt;
&lt;li&gt;shows methods to reconstruct geometry with normals and how to filter the results&lt;/li&gt;
&lt;li&gt;additionally discusses limitations and ideas for improvement or leveraging of existing mesh-based solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-334/gaussian_filter.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240410030559/https://andrewkchan.dev/posts/lit-splat.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=uvCTVp8ZC_g&#34; target=&#34;_blank&#34; id=&#34;[video] DJ! Swap that chain!!! // Vulkan For Beginners #7&#34;&gt;[video] DJ! Swap that chain!!! // Vulkan For Beginners #7&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the latest video in the series explains how to create a Vulkan Swapchain&lt;/li&gt;
&lt;li&gt;explains the different presentation modes&lt;/li&gt;
&lt;li&gt;additionally shows how to create a view of the different images of the swap chain&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-334/display-mode.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/unai_landa&#34; target=&#34;_blank&#34;&gt;Unai Landa&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 333  -  March 31st, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-333/</link>
      <pubDate>Sun, 31 Mar 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-333/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/gdc-presentations/2024/GDC2024_Game_Optimization_with_The_Radeon_Developer_Tool_Suite.pdf&#34; target=&#34;_blank&#34; id=&#34;Game optimization with the AMD radeon developer tool suite&#34;&gt;Game optimization with the AMD radeon developer tool suite&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the GDC presentation provides an overview of the profiler tools available from AMD&lt;/li&gt;
&lt;li&gt;presents the updated shader analysis tool, including a preview of the single shader stage mode&lt;/li&gt;
&lt;li&gt;additionally presents an overview of the raytracing and memory debugging tool improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-333/single_shader_mode.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240326191004/https://gpuopen.com/gdc-presentations/2024/GDC2024_Game_Optimization_with_The_Radeon_Developer_Tool_Suite.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.maximeheckel.com/posts/moebius-style-post-processing/&#34; target=&#34;_blank&#34; id=&#34;Moebius-style post-processing and other stylized shaders&#34;&gt;Moebius-style post-processing and other stylized shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a walkthrough of how to implement a post-processing effect that emulates Jean Giraud&amp;rsquo;s art style&lt;/li&gt;
&lt;li&gt;shows how the author approached object outlines, shadows, and lighting patterns&lt;/li&gt;
&lt;li&gt;provides interactive WebGL implementations that showcase the individual stages of the implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-333/stylized_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240326184505/https://blog.maximeheckel.com/posts/moebius-style-post-processing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/open-sourcing-the-winpixeventruntime-under-mit/&#34; target=&#34;_blank&#34; id=&#34;Open sourcing the WinPixEventRuntime under MIT&#34;&gt;Open sourcing the WinPixEventRuntime under MIT&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post announces that the Windows PIX runtime has been released as OpenSource&lt;/li&gt;
&lt;li&gt;this includes logic to decode PIX events as well as the runtime logic that writes ETW entries&lt;/li&gt;
&lt;li&gt;additionally, the team is looking for feedback for a proposed task API for PIX&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-333/pix-tool.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240401054717/https://devblogs.microsoft.com/pix/open-sourcing-the-winpixeventruntime-under-mit/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rene.ruhr/gfx/adoption/&#34; target=&#34;_blank&#34; id=&#34;Sampling the disk from a square: The adoption method&#34;&gt;Sampling the disk from a square: The adoption method&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article introduces an alternative low discrepancy sampling strategy for circles&lt;/li&gt;
&lt;li&gt;provides a quick introduction to rejection sampling&lt;/li&gt;
&lt;li&gt;shows how adaption could be used to sample only within a quad within the disk and still fill the whole circle with samples&lt;/li&gt;
&lt;li&gt;compares the characteristics of the technique and presents the applications to different shapes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-333/random_sampling_disk.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240401055017/https://rene.ruhr/gfx/adoption/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/efficient-cuda-debugging-using-compute-sanitizer-with-nvtx-and-creating-custom-tools/&#34; target=&#34;_blank&#34; id=&#34;Efficient CUDA Debugging: Using NVIDIA Compute Sanitizer with NVIDIA Tools Extension and Creating Custom Tools&#34;&gt;Efficient CUDA Debugging: Using NVIDIA Compute Sanitizer with NVIDIA Tools Extension and Creating Custom Tools&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes how to use the CUDA Compute Sanitizer to implement a resize-aware memory pool&lt;/li&gt;
&lt;li&gt;additionally discusses the APIs available to allow memory debugging more insightful&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-333/efficient-cuda-debugging-3-featured.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240401055112/https://developer.nvidia.com/blog/efficient-cuda-debugging-using-compute-sanitizer-with-nvtx-and-creating-custom-tools/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=qPNh7WrfFvc&#34; target=&#34;_blank&#34; id=&#34;[video] GDC 2024 - Shader Instrumentation with GPU Reshape&#34;&gt;[video] GDC 2024 - Shader Instrumentation with GPU Reshape&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the GDC presentation discusses how the GPU Reshape tool enables GPU timeline validation&lt;/li&gt;
&lt;li&gt;explains how the validation logic can be written in an API-agnostic manner&lt;/li&gt;
&lt;li&gt;provides a look at future developments where the same infrastructure could be used for profiling or data debugging&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-333/reshape_layer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://connorahaskins.substack.com/p/ray-marching-menger-sponge-breakdown&#34; target=&#34;_blank&#34; id=&#34;Ray Marching: Menger Sponge Breakdown&#34;&gt;Ray Marching: Menger Sponge Breakdown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an introduction to ray marching&lt;/li&gt;
&lt;li&gt;explains the underlying concept and how it compares to ray-tracing&lt;/li&gt;
&lt;li&gt;extends the concepts to introduce the various operations (scaling, translations, boolean operations) required to express geometry&lt;/li&gt;
&lt;li&gt;combines the knowledge to build a fractal object called the Menger Sponge&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-333/menger_sponge.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240329234149/https://connorahaskins.substack.com/p/ray-marching-menger-sponge-breakdown&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Jhon Adams for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 332  -  March 24th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-332/</link>
      <pubDate>Sun, 24 Mar 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-332/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/gdc-presentations/2024/GDC2024_Mesh_Shaders_in_AMD_RDNA_3_Architecture.pdf&#34; target=&#34;_blank&#34; id=&#34;Mesh shaders in AMD RDNA 3 architecture&#34;&gt;Mesh shaders in AMD RDNA 3 architecture&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation discusses mesh shaders and the techniques they enable&lt;/li&gt;
&lt;li&gt;discusses how to compress index data and how to allow quad source data&lt;/li&gt;
&lt;li&gt;presents the importance of vertex reuse and meshlet generation for performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-332/mesh_shader_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240325062920/https://gpuopen.com/gdc-presentations/2024/GDC2024_Mesh_Shaders_in_AMD_RDNA_3_Architecture.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/gdc-presentations/2024/GDC2024_Radeon_GPU_Detective.pdf&#34; target=&#34;_blank&#34; id=&#34;[pdf] Post-mortem GPU crash analysis with AMD radeon GPU detective (RGD)&#34;&gt;[pdf] Post-mortem GPU crash analysis with AMD radeon GPU detective (RGD)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation presents why debugging GPU issues is difficult&lt;/li&gt;
&lt;li&gt;explains how the AMD Radeon GPU detective presents information to help developers track issues down&lt;/li&gt;
&lt;li&gt;presents how to use the tool, read the information, and understand the cause of the issue with the information provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-332/execution_marker_tree.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240325063122/https://gpuopen.com/gdc-presentations/2024/GDC2024_Radeon_GPU_Detective.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/upgrade-your-graphics-explore-new-ray-tracing-features-for-nvidia-nsight-tools/&#34; target=&#34;_blank&#34; id=&#34;Upgrade Your Graphics: Explore New Ray Tracing Features for NVIDIA Nsight Tools&#34;&gt;Upgrade Your Graphics: Explore New Ray Tracing Features for NVIDIA Nsight Tools&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses updates in the Nvidia developer tools&lt;/li&gt;
&lt;li&gt;covers new debugging capabilities, improved performance collection, and profiling tools&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-332/Nsight-Perf-SDK-Timeline-View.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240325061727/https://developer.nvidia.com/blog/upgrade-your-graphics-explore-new-ray-tracing-features-for-nvidia-nsight-tools/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/mesh_shaders/mesh_shaders-procedural_grass_rendering/&#34; target=&#34;_blank&#34; id=&#34;Procedural grass rendering&#34;&gt;Procedural grass rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes how to implement a procedural grass system using mesh shaders&lt;/li&gt;
&lt;li&gt;explains how the grass mesh is described using bezier curves and combined into a grass patch&lt;/li&gt;
&lt;li&gt;presents how to write the index/vertex buffers for efficient rasterization&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-332/procedural_grass.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240322154501/https://gpuopen.com/learn/mesh_shaders/mesh_shaders-procedural_grass_rendering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/gi-1-1-glossy-reflection-rendering/&#34; target=&#34;_blank&#34; id=&#34;GI-1.1 adds support for glossy reflection rendering&#34;&gt;GI-1.1 adds support for glossy reflection rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a brief overview of how glossy reflection got added to the GI 1.1 release&lt;/li&gt;
&lt;li&gt;looks at how the denoiser is required to reduce the inherent noise images&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-332/gi_1_1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240322154501/https://gpuopen.com/learn/gi-1-1-glossy-reflection-rendering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/events/amd-at-gdc-2024/&#34; target=&#34;_blank&#34; id=&#34;GDC 2024: We reveal incredible Work Graphs performance, AMD FSR 3.1, GI with Brixelizer, and so much more&#34;&gt;GDC 2024: We reveal incredible Work Graphs performance, AMD FSR 3.1, GI with Brixelizer, and so much more&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the announcements AMD made during GDC&lt;/li&gt;
&lt;li&gt;additionally provides links to the slides and videos of the presentations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-332/fidelityfx_brix.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240325062354/https://gpuopen.com/events/amd-at-gdc-2024/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://andrewkchan.dev/posts/diff-render.html&#34; target=&#34;_blank&#34; id=&#34;Adventures with Differentiable Mesh Rendering&#34;&gt;Adventures with Differentiable Mesh Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to approach differentiable rendering for mesh-based rasterization&lt;/li&gt;
&lt;li&gt;presents the limitations of a simple method and how to achieve it with PyTorch&lt;/li&gt;
&lt;li&gt;expands the idea to expand the idea with soft probability to solve some of the limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-332/soft-rasterizer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240325062456/https://andrewkchan.dev/posts/diff-render.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.stefanpijnacker.nl/article/graphics-programming-where-to-start/&#34; target=&#34;_blank&#34; id=&#34;Graphics Programming – Where To Start?&#34;&gt;Graphics Programming – Where To Start?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a suggested collection of resources for beginners in graphics programming&lt;/li&gt;
&lt;li&gt;covers mathematics, working with APIs, and writing shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-332/model_diffuse.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240324050233/https://www.stefanpijnacker.nl/article/graphics-programming-where-to-start/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=XAjePEy-Sf4&#34; target=&#34;_blank&#34; id=&#34;[video] It is illogical (device) // Vulkan For Beginners #6&#34;&gt;[video] It is illogical (device) // Vulkan For Beginners #6&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a brief overview of the difference between physical and logical Vulkan device&lt;/li&gt;
&lt;li&gt;presents the C++ code necessary to implement the device creation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-332/vulkan_device.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Stephen Hill for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 331  -  March 17th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-331/</link>
      <pubDate>Sun, 17 Mar 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-331/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=40JzyaOYJeY&#34; target=&#34;_blank&#34; id=&#34;[video] Too Many Developers Ignore These Optimisations&#34;&gt;[video] Too Many Developers Ignore These Optimisations&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a walkthrough of the steps when optimizing a voxel renderer&lt;/li&gt;
&lt;li&gt;each step is explained and visualized to make it very easy to understand&lt;/li&gt;
&lt;li&gt;covers a large number of optimizations and, for each, discusses the effect on performance and memory usage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-331/chunk_buffer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/unlock-seamless-material-interchange-for-virtual-worlds-with-openusd-materialx-and-openpbr/&#34; target=&#34;_blank&#34; id=&#34;Unlock Seamless Material Interchange for Virtual Worlds with OpenUSD, MaterialX, and OpenPBR&#34;&gt;Unlock Seamless Material Interchange for Virtual Worlds with OpenUSD, MaterialX, and OpenPBR&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the different models available to describe the appearance of a mesh using OpenUSD&lt;/li&gt;
&lt;li&gt;Explain the advantages and the disadvantages of the available methods&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-331/shaded-scene-Omniverse-OpenPBR.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/agility-sdk-1-613-0/&#34; target=&#34;_blank&#34; id=&#34;Agility SDK 1.613.0 Available Now, Including Support for GDC 2024 Showcase Features&#34;&gt;Agility SDK 1.613.0 Available Now, Including Support for GDC 2024 Showcase Features&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of all new features available in the D3D12 Agility SDK update&lt;/li&gt;
&lt;li&gt;covers work graphs, new shader model, accessible memory for CPU/GPU, as well as unifications on shader creation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-331/d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240313155712/https://devblogs.microsoft.com/directx/agility-sdk-1-613-0/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/d3d12-work-graphs/&#34; target=&#34;_blank&#34; id=&#34;D3D12 Work Graphs&#34;&gt;D3D12 Work Graphs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an overview from Microsft into what work graphs are&lt;/li&gt;
&lt;li&gt;what possibility it enables, a brief summary of the spec&lt;/li&gt;
&lt;li&gt;additionally points out the changes since the preview version last year&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-331/ExampleGraph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240314180526/https://devblogs.microsoft.com/directx/d3d12-work-graphs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/work-graphs-in-direct3d-12-a-case-study-of-deferred-shading/&#34; target=&#34;_blank&#34; id=&#34;Work Graphs in Direct3D 12: A Case Study of Deferred Shading&#34;&gt;Work Graphs in Direct3D 12: A Case Study of Deferred Shading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of how a G-Buffer classification system for BRDF selection can be authored using work graphs&lt;/li&gt;
&lt;li&gt;provides performance numbers for the work graph and an Uber shader approach&lt;/li&gt;
&lt;li&gt;discusses lessons learned, pitfalls, and performance considerations&lt;/li&gt;
&lt;li&gt;It additionally discusses the open challenges and future developments&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-331/deffered-shading-renderer-example-application.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240314133700/https://developer.nvidia.com/blog/work-graphs-in-direct3d-12-a-case-study-of-deferred-shading/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/gdc-2024-announce/&#34; target=&#34;_blank&#34; id=&#34;GDC 2024: Work graphs, mesh shaders, FidelityFX™, dev tools, CPU optimization, and more.&#34;&gt;GDC 2024: Work graphs, mesh shaders, FidelityFX™, dev tools, CPU optimization, and more.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD provides a list of talks they will be presenting at GDC (starting today)&lt;/li&gt;
&lt;li&gt;each talk is given a small summary and where it&amp;rsquo;s taking place&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-331/GDC24-AMD-1-MeshShaders.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240318071707/https://gpuopen.com/gdc-2024-announce/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/mesh_shaders/mesh_shaders-font_and_vector_art_rendering_with_mesh_shaders/&#34; target=&#34;_blank&#34; id=&#34;Font- and vector-art rendering with mesh shaders&#34;&gt;Font- and vector-art rendering with mesh shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a detailed walkthrough of how to implement Loop’s and Blinn’s font rendering approach from Siggraph 2005&lt;/li&gt;
&lt;li&gt;provides an overview of the approach with many visualizations&lt;/li&gt;
&lt;li&gt;shows how to implement the algorithm using D3D12 mesh shaders&lt;/li&gt;
&lt;li&gt;source code is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-331/mesh_shaders-font.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240318071711/https://gpuopen.com/learn/mesh_shaders/mesh_shaders-font_and_vector_art_rendering_with_mesh_shaders/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rene.ruhr/gfx/quaternions/&#34; target=&#34;_blank&#34; id=&#34;Random walk method for quaternions&#34;&gt;Random walk method for quaternions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses a method for generating uniformly distributed quaternions&lt;/li&gt;
&lt;li&gt;explains the theory of quaternion and the proposed method to generate random rotations&lt;/li&gt;
&lt;li&gt;provides an implementation without using trigonometric in C++ SIMD as well as GLSL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-331/level_1-8-e1708608129778-edited-3.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240318072004/https://rene.ruhr/gfx/quaternions/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/news-insights/white-papers/cross-stage-shader-optimization/&#34; target=&#34;_blank&#34; id=&#34;Cross-Stage Shader Optimization&#34;&gt;Cross-Stage Shader Optimization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the whitepaper presents which tools and optimizations passes in spirv-cross and glslang are available to optimize shaders, taking advantage of knowledge from multiple shader stages&lt;/li&gt;
&lt;li&gt;shows an example of how vertex outputs can be eliminated if the connected pixel shader doesn&amp;rsquo;t read the attribute&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-331/LunarG-color.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240318072006/https://www.lunarg.com/news-insights/white-papers/cross-stage-shader-optimization/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jglrxavpok.github.io/2024/03/12/recreating-nanite-faster-lod-generation.html&#34; target=&#34;_blank&#34; id=&#34;Recreating Nanite: LOD generation - faster, better, simpler&#34;&gt;Recreating Nanite: LOD generation - faster, better, simpler&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;second part in an article series about creating a LODing system that allows per-cluster LOD selection&lt;/li&gt;
&lt;li&gt;focuses on performance and quality fixes for the proposed solution from part 1&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-331/bunny_lod_selection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240318072135/https://jglrxavpok.github.io/2024/03/12/recreating-nanite-faster-lod-generation.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=VkIJbpdTujE&#34; target=&#34;_blank&#34; id=&#34;[video] 3D Gaussian Splatting! - Computerphile&#34;&gt;[video] 3D Gaussian Splatting! - Computerphile&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an explanation of Gaussian Splatting and how it connects to point clouds and nerfs&lt;/li&gt;
&lt;li&gt;presents the base idea and optimizations that have been applied to speed up the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-331/gaussian_splatting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-2403/&#34; target=&#34;_blank&#34; id=&#34;PIX 2403.08 – New D3D12 features &amp;#43; misc PIX improvements&#34;&gt;PIX 2403.08 – New D3D12 features &amp;#43; misc PIX improvements&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an overview of new features and improvements in PIX&lt;/li&gt;
&lt;li&gt;additionally presents at which state of support the new D3D12 features, such as shader graph, shader model 6.8, etc.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-331/WorkGraphsInPix.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240313120154/https://devblogs.microsoft.com/pix/pix-2403/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/rrika9&#34; target=&#34;_blank&#34;&gt;Erika&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 330  -  March 10th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-330/</link>
      <pubDate>Sun, 10 Mar 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-330/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://maxliani.wordpress.com/2024/03/09/about-fast-2d-cdf-construction/&#34; target=&#34;_blank&#34; id=&#34;About fast 2D CDF construction&#34;&gt;About fast 2D CDF construction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a method for efficiently calculating the Cumulative Distribution Function or CDF, for image-based lighting&lt;/li&gt;
&lt;li&gt;explains the underlying prefix sum algorithms&lt;/li&gt;
&lt;li&gt;shows how to improve the initial implementation for improved GPU performance&lt;/li&gt;
&lt;li&gt;the implementation is provided using CUDA&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-330/2dcdf-2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240312044108/https://maxliani.wordpress.com/2024/03/09/about-fast-2d-cdf-construction/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jakubtomsu.github.io/posts/solar_storm_renderer&#34; target=&#34;_blank&#34; id=&#34;Solar Storm Rendering&#34;&gt;Solar Storm Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a brief overview of the rendering engine architecture of the indie game Solar Storm&lt;/li&gt;
&lt;li&gt;presents how the systems are designed around immediate mode principles&lt;/li&gt;
&lt;li&gt;shows how the world is built up, shaders are created, and objects submitted for rendering&lt;/li&gt;
&lt;li&gt;additionally presents a quick look at post-processing and performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-330/solar_storm_screenspace.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240309181808/https://jakubtomsu.github.io/posts/solar_storm_renderer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.thegeeko.me/blog/foliage-rendering&#34; target=&#34;_blank&#34; id=&#34;Vulkan Foliage rendering using GPU Instancing &#34;&gt;Vulkan Foliage rendering using GPU Instancing &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a walkthrough of the author&amp;rsquo;s implementation of grass rendering using compute shaders + indirect draw&lt;/li&gt;
&lt;li&gt;shows how the instances are generated, animated, and culled, as well as how LODs have been added&lt;/li&gt;
&lt;li&gt;code samples are presented using Vulkan&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-330/grass_instancing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240310205710/https://www.thegeeko.me/blog/foliage-rendering&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zznewclear13.github.io/posts/screen-space-reflection-en/&#34; target=&#34;_blank&#34; id=&#34;Screen Space Reflection&#34;&gt;Screen Space Reflection&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to implement screen space reflections using a single shader pass&lt;/li&gt;
&lt;li&gt;starts from a basic technique description and presents how to resolve common issues&lt;/li&gt;
&lt;li&gt;each step and improvements are visually represented&lt;/li&gt;
&lt;li&gt;the source code for a Unity shader is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-330/ScreenSpaceReflection_64.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240310061709/https://zznewclear13.github.io/posts/screen-space-reflection-en/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://iquilezles.org/articles/smin/&#34; target=&#34;_blank&#34; id=&#34;The Smooth-Minimum operator or Smooth-Union&#34;&gt;The Smooth-Minimum operator or Smooth-Union&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an in-depth look at the Smooth-Minimum operator and its characteristics&lt;/li&gt;
&lt;li&gt;shows that many varieties exist, and they all have different strengths and weaknesses&lt;/li&gt;
&lt;li&gt;presents examples of all and discusses when to use the different variations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-330/gfx01.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240312043932/https://iquilezles.org/articles/smin/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://chipsandcheese.com/2024/03/05/inside-snapdragon-8-gen-1s-igpu-adreno-gets-big/&#34; target=&#34;_blank&#34; id=&#34;Inside Snapdragon 8&amp;#43; Gen 1’s iGPU: Adreno Gets Big&#34;&gt;Inside Snapdragon 8&amp;#43; Gen 1’s iGPU: Adreno Gets Big&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an in-depth look at the hardware details of the Snapdragon 8+ Gen 1 GPUs&lt;/li&gt;
&lt;li&gt;shows the hardware design, compute throughput, performance, cache performance, and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-330/adreno_binning.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240308232556/https://chipsandcheese.com/2024/03/05/inside-snapdragon-8-gen-1s-igpu-adreno-gets-big/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://youtu.be/EWtjvNoXTiY&#34; target=&#34;_blank&#34; id=&#34;[video] Let&amp;#39;s Get Physical (Device) // Vulkan For Beginners #5&#34;&gt;[video] Let&amp;#39;s Get Physical (Device) // Vulkan For Beginners #5&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains the concepts related to GPU hardware detection&lt;/li&gt;
&lt;li&gt;shows how to enumerate connected GPUs, what capabilities they support, and how to pick the hardware that matches the application requirements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-330/vulkan_physical_device.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/postgoodism&#34; target=&#34;_blank&#34;&gt;Cort Stratton&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 329  -  March 3rd, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-329/</link>
      <pubDate>Sun, 03 Mar 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-329/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/ray-tracing-validation-at-the-driver-level/&#34; target=&#34;_blank&#34; id=&#34;Ray-Tracing Validation at the Driver Level&#34;&gt;Ray-Tracing Validation at the Driver Level&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a new driver-level validation for Ray-Tracing implemented by Nvidia&lt;/li&gt;
&lt;li&gt;discusses what kind of issues can be detected by the system and how they are reported to the developer&lt;/li&gt;
&lt;li&gt;presents how to enable the system and expected performance overhead&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-329/rt_validation.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240303162729/https://developer.nvidia.com/blog/ray-tracing-validation-at-the-driver-level/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=dVWkPADNdJ4&#34; target=&#34;_blank&#34; id=&#34;[video] How Persona Combines 2D and 3D Art&#34;&gt;[video] How Persona Combines 2D and 3D Art&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a complete walkthrough of the forward rendering model employed by  Persona 3 Reload&lt;/li&gt;
&lt;li&gt;discusses how different effects are combined to create the stylized rendering effects&lt;/li&gt;
&lt;li&gt;provides an overview of shading, shadowing, and ray-tracing integrations&lt;/li&gt;
&lt;li&gt;presents how art-driven effects are integrated to improve the visual appearance&lt;/li&gt;
&lt;li&gt;additionally, it presents how the UI system is integrated&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-329/persona3.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.frost.kiwi/WebGL-LUTS-made-simple/&#34; target=&#34;_blank&#34; id=&#34;How video games use LUTs and how you can too &#34;&gt;How video games use LUTs and how you can too &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the concept of Look Up Textures (LUT)&lt;/li&gt;
&lt;li&gt;shows different use cases with interactive examples&lt;/li&gt;
&lt;li&gt;discusses 1D and 3D Lookup textures&lt;/li&gt;
&lt;li&gt;covering examples from Left 4 Dead of how LUTs are used and the possibilities they enable&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-329/lut_colors.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240302012612/https://blog.frost.kiwi/WebGL-LUTS-made-simple/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://enkimute.github.io/LookMaNoMatrices/&#34; target=&#34;_blank&#34; id=&#34;Look, Ma, No Matrices!&#34;&gt;Look, Ma, No Matrices!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the feasibility of replacing 4X4 Matrix multiplications with Geometric Algebra concepts in a forward renderer&lt;/li&gt;
&lt;li&gt;presents the implementation of the required concepts and how to replace classical methods&lt;/li&gt;
&lt;li&gt;discusses conversion limitations when using normal maps&lt;/li&gt;
&lt;li&gt;additionally, it discusses the amount of instruction required for different operations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-329/ga_in_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240302062623/https://enkimute.github.io/LookMaNoMatrices/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/directx-innovation-on-display-at-gdc-2024/&#34; target=&#34;_blank&#34; id=&#34;DirectX Innovation on Display at GDC 2024&#34;&gt;DirectX Innovation on Display at GDC 2024&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Microsoft presents what will be discussed at GDC 2024&lt;/li&gt;
&lt;li&gt;Introducing DirectSR (Super Resolution), a new API for the uniform integration of different super-resolution solutions with the same API&lt;/li&gt;
&lt;li&gt;will be presenting an update on Work graphs and how they will affect GPU programming in the future&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-329/d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240302165355/https://devblogs.microsoft.com/directx/directx-innovation-on-display-at-gdc-2024/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://julhe.github.io/posts/how_not_to_optimize_shaders/&#34; target=&#34;_blank&#34; id=&#34;How (Not) To Optimize Shaders&#34;&gt;How (Not) To Optimize Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the importance of profiling when optimizing&lt;/li&gt;
&lt;li&gt;shows a comparison between precomputed sample positions (with a buffer load) and on-the-fly computations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-329/screenspace_effect.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240304013403/https://julhe.github.io/posts/how_not_to_optimize_shaders/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=e7BZYDjIxNg&#34; target=&#34;_blank&#34; id=&#34;Creating a Surface Handle // Vulkan For Beginners #4&#34;&gt;Creating a Surface Handle // Vulkan For Beginners #4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the short video tutorial explains how to create and destroy a surface handle from a GLTF window&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-329/vulkan_wsi.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://atyuwen.github.io/&#34; target=&#34;_blank&#34;&gt;atyuwen&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 328  -  February 25th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-328/</link>
      <pubDate>Sun, 25 Feb 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-328/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/miciwan/PaintMixing&#34; target=&#34;_blank&#34; id=&#34;On Light, Colors, Mixing Paints, and Numerical Optimization.&#34;&gt;On Light, Colors, Mixing Paints, and Numerical Optimization.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an in-depth discussion of how light behaves, how it interacts with the human visual system, and finally, how paints are made up&lt;/li&gt;
&lt;li&gt;given the theoretical underlying presents a model to derive a model to represent the mixing of colors&lt;/li&gt;
&lt;li&gt;discusses how to implement the solver&lt;/li&gt;
&lt;li&gt;The Python source code is released as open-source&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-328/color_mixing.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240226045244/https://github.com/miciwan/PaintMixing?tab=readme-ov-file&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/playlist?list=PLMLurvdlOpWOh_nXIbXbBewWuERe-8xVW&#34; target=&#34;_blank&#34; id=&#34;Vulkanised 2024 Playlist released&#34;&gt;Vulkanised 2024 Playlist released&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video recordings of the talks from the Vulkanised 2024 conference have been released&lt;/li&gt;
&lt;li&gt;covering efficient rendering for mobile, Vulkan synchronization, shader language innovation, practical porting lessons, and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-328/vulkanised-2024-khronos-event-banner.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shadeup.dev/docs/learn/crash-course&#34; target=&#34;_blank&#34; id=&#34;Shadeup Crash Course&#34;&gt;Shadeup Crash Course&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article introduces the Shadeup language that aims to minimize boilerplate code required when authoring WebGPU workloads&lt;/li&gt;
&lt;li&gt;provides a quick introduction to the various features of the system and how to interact between CPU and GPU code&lt;/li&gt;
&lt;li&gt;covers basic rasterization as well as compute shader usage&lt;/li&gt;
&lt;li&gt;code examples are interactively editable for experimentation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-328/webgpu_shadeup.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240226050356/https://shadeup.dev/docs/learn/crash-course&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=g7Jlyk4Xp4o&#34; target=&#34;_blank&#34; id=&#34;[video] Creating a Debug Callback Function // Vulkan For Beginners #3&#34;&gt;[video] Creating a Debug Callback Function // Vulkan For Beginners #3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains the necessary steps to ensure that all Vulkan validation messages will be intercepted&lt;/li&gt;
&lt;li&gt;shows the C++ code implementation required and how to use the debugger to collect additional information when an error occurs&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-328/vulkan_debug_callback.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://youtu.be/orn-8060oYY&#34; target=&#34;_blank&#34; id=&#34;[video] Underwater Caustics Part 2 - Advanced Materials - Episode 42&#34;&gt;[video] Underwater Caustics Part 2 - Advanced Materials - Episode 42&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the second part of a video tutorial about the implementation of Caustics using Unreal and Unity&lt;/li&gt;
&lt;li&gt;The first part explained how to implement an underwater caustic effect&lt;/li&gt;
&lt;li&gt;this part shows visual issues (noise, edges) from the previous part and shows how to solve them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-328/underwater_caustics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphite.rs/blog/graphite-internships-announcing-participation-in-gsoc-2024/&#34; target=&#34;_blank&#34; id=&#34;Graphite internships: announcing participation in GSoC 2024&#34;&gt;Graphite internships: announcing participation in GSoC 2024&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Rust-based 2D editor Graphite is looking for Students to join the Google Summer of Code project&lt;/li&gt;
&lt;li&gt;one of the suggested project ideas is to rewrite the Shader-driven graph UI for improved performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-328/graphite-internships-gsoc-2024.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/keithoconor&#34; target=&#34;_blank&#34;&gt;Keith O&amp;rsquo;Conor&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 327  -  February 18th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-327/</link>
      <pubDate>Sun, 18 Feb 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-327/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://unity-research.github.io/holo-gen/&#34; target=&#34;_blank&#34; id=&#34;Collaborative Control for Geometry-Conditioned PBR Image Generation &#34;&gt;Collaborative Control for Geometry-Conditioned PBR Image Generation &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The paper introduces a machine learning model that generates a set of PBR Textures (albedo, Roughness, Metallic)&lt;/li&gt;
&lt;li&gt;trained on a locked RGB model to take advantage of existing models&lt;/li&gt;
&lt;li&gt;discusses how the model was designed, tradeoffs, and common failure cases&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-327/pbr-ml-model.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240215044430/https://unity-research.github.io/holo-gen/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://godotengine.org/article/rendering-acyclic-graph/&#34; target=&#34;_blank&#34; id=&#34;GPU synchronization in Godot 4.3 is getting a major upgrade&#34;&gt;GPU synchronization in Godot 4.3 is getting a major upgrade&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the new RenderGraph implementation in Godot 4.3&lt;/li&gt;
&lt;li&gt;discusses the limitations of the old system and the advantages of the new system&lt;/li&gt;
&lt;li&gt;shows the implementation of dependency tracking, dealing with sub-resources&lt;/li&gt;
&lt;li&gt;additionally discusses CPU and GPU performance impact&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-327/command-graph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240217124009/https://godotengine.org/article/rendering-acyclic-graph/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/blur-philosophy&#34; target=&#34;_blank&#34; id=&#34;GM Shaders: Blur Philosophy&#34;&gt;GM Shaders: Blur Philosophy&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post article discusses the implementation of a box blur shader&lt;/li&gt;
&lt;li&gt;presents explanation of Gaussian, Kernels, Separable blurs&lt;/li&gt;
&lt;li&gt;closes with a discussion of things to do and avoid when implementing a blur shader for good results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-327/box-blur.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240219021536/https://mini.gmshaders.com/p/blur-philosophy&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://enginearchitecture.realtimerendering.com/2024.htm&#34; target=&#34;_blank&#34; id=&#34;REAC 2024 Conference - Call for Submissions!&#34;&gt;REAC 2024 Conference - Call for Submissions!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Rendering Engine Architecture Conference is looking for speakers for the 2024 edition&lt;/li&gt;
&lt;li&gt;post describes what kind of talks are being looked for and the formats of the talks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-327/reac_logo_dark.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240219021846/https://enginearchitecture.realtimerendering.com/2024.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpu-primitives-course.github.io/&#34; target=&#34;_blank&#34; id=&#34;GPU Programming Primitives for Computer Graphics (course)&#34;&gt;GPU Programming Primitives for Computer Graphics (course)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the course presents an introduction to GPU compute shader algorithms&lt;/li&gt;
&lt;li&gt;discusses the primitives available&lt;/li&gt;
&lt;li&gt;how to implement parallel reduction, prefix scan, and radix sort&lt;/li&gt;
&lt;li&gt;additionally presents a look at optimization techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-327/sa-course-slides.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240219022044/https://gpu-primitives-course.github.io/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=WG8w9Yg5B3g&#34; target=&#34;_blank&#34; id=&#34;[video] Tech Focus: TAA - Blessing Or Curse? Temporal Anti-Aliasing Deep Dive&#34;&gt;[video] Tech Focus: TAA - Blessing Or Curse? Temporal Anti-Aliasing Deep Dive&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a history of ant-aliasing techniques used in games&lt;/li&gt;
&lt;li&gt;discusses capabilities and limitations of the different AA techniques&lt;/li&gt;
&lt;li&gt;presents in-depth the advantages and disadvantages of temporal antialiasing techniques&lt;/li&gt;
&lt;li&gt;all examples are presented with videos from games that use the presented techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-327/taa.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2024/02/11/gradient-descent-with-adam-in-plain-c/&#34; target=&#34;_blank&#34; id=&#34;Gradient Descent With Adam in Plain C&amp;#43;&amp;#43;&#34;&gt;Gradient Descent With Adam in Plain C&amp;#43;&amp;#43;&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the extension method to gradient descents called Adam&lt;/li&gt;
&lt;li&gt;provided implementation is shown in C++&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-327/gradient-descent.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240213141212/https://blog.demofox.org/2024/02/11/gradient-descent-with-adam-in-plain-c/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/aortizelguero&#34; target=&#34;_blank&#34;&gt;Angel Ortiz&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 326  -  February 11th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-326/</link>
      <pubDate>Sun, 11 Feb 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-326/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://vulkan.org/events/vulkanised-2024#agenda&#34; target=&#34;_blank&#34; id=&#34;Vulkanised 2024&#34;&gt;Vulkanised 2024&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The slides for the talks of the 2024 Edition of the Vulkanised conference have been released&lt;/li&gt;
&lt;li&gt;3-day conference covering Vulkan SDK changes, synchronization, common learning mistakes, presentations of integration into larger systems, shading language developments, as well as future looking developments&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-326/Vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240210133519/https://vulkan.org/events/vulkanised-2024#agenda&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=vZcoW989I3I&#34; target=&#34;_blank&#34; id=&#34;[video] Creating an Instance // Vulkan for Beginners #2&#34;&gt;[video] Creating an Instance // Vulkan for Beginners #2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video in a series of Vulkan tutorials explains how to create a Vulkan Instance&lt;/li&gt;
&lt;li&gt;explains the API concepts required to understand&lt;/li&gt;
&lt;li&gt;code samples are provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-326/vulkan_instance.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=VMpXSEomAAk&#34; target=&#34;_blank&#34; id=&#34;[video] Water Foam - Advanced Materials - Episode 40&#34;&gt;[video] Water Foam - Advanced Materials - Episode 40&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to add surface foam around the edges of objects that intersect the water surface&lt;/li&gt;
&lt;li&gt;shows how to implement the foam effect and how to limit the effect to the area around the intersection&lt;/li&gt;
&lt;li&gt;implementation is shown using both Unreal and Unity using a visual shading system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-326/water_foam.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.threedy.io/career&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Unreal Developer (m/w/d)&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Darmstadt&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;We are Threedy, a dynamic startup that emerged as a spin-off from the Fraunhofer Institute for Computer Graphics Research IGD in Darmstadt in 2020.&lt;/p&gt;

&lt;p&gt;Threedy develops and distributes instant3Dhub - the first Visual Computing as a Service technology. It enables the productive use of Mixed Reality and digital work scenarios in any industrial applications in a simple and straightforward manner.&lt;/p&gt;

&lt;p&gt;As an Unreal Developer, you will be involved in the development of our distributed rendering system and work on integrating our technology with the Unreal Engine.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Threedy_instant3Dhub-Logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;thready_week_326&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devlog.hexops.com/2024/building-the-directx-shader-compiler-better-than-microsoft/&#34; target=&#34;_blank&#34; id=&#34;Building the DirectX shader compiler better than Microsoft?&#34;&gt;Building the DirectX shader compiler better than Microsoft?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the authors&amp;rsquo; work on allowing the DXC compiler to be built into a static library for Linux, MacOS, and Windows&lt;/li&gt;
&lt;li&gt;additionally presents how to remove it&amp;rsquo;s possible to replace the dependency on DXIL.dll for shader signing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-326/hlsl-change-start.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240211010046/https://devlog.hexops.com/2024/building-the-directx-shader-compiler-better-than-microsoft/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://vulkan.org/user/pages/09.events/vulkanised-2024/vulkanised-2024-thereas-foley-nvidia.pdf&#34; target=&#34;_blank&#34; id=&#34;Toward a next-gen vulkan shading language: our journey with slang&#34;&gt;Toward a next-gen vulkan shading language: our journey with slang&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation shows an overview of the Slang shading language&lt;/li&gt;
&lt;li&gt;presents how it fits into the ecosystem, what features are supported, and what additional capabilities it brings to shader authors&lt;/li&gt;
&lt;li&gt;shows how the integrated automatic differentiation can be used for different use cases&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-326/slang_codegen_methods.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240212031545/https://vulkan.org/user/pages/09.events/vulkanised-2024/vulkanised-2024-thereas-foley-nvidia.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=-wsCeXgkf6k&#34; target=&#34;_blank&#34; id=&#34;[video] Explaining my game engine in 2023 - Part3: Tile-based light culling, compute shaders, RenderDoc&#34;&gt;[video] Explaining my game engine in 2023 - Part3: Tile-based light culling, compute shaders, RenderDoc&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains Forward+ shading techniques&lt;/li&gt;
&lt;li&gt;shows how to express frustum culling, how compute shader allows the workload to be expressed&lt;/li&gt;
&lt;li&gt;additionally presents how to use RenderDoc to visualize the involved data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-326/forward_plus.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 325  -  February 4th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-325/</link>
      <pubDate>Sun, 04 Feb 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-325/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lfranke.github.io/trips/&#34; target=&#34;_blank&#34; id=&#34;TRIPS: Trilinear Point Splatting for Real-Time Radiance Field Rendering&#34;&gt;TRIPS: Trilinear Point Splatting for Real-Time Radiance Field Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a novel approach to the Point Splatting rendering technique&lt;/li&gt;
&lt;li&gt;the presented approach uses multi-layered feature maps that are processed with a neural network to generate the final output&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-325/trips_pipeline.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240117195023/https://lfranke.github.io/trips/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.froyok.fr/blog/2024-01-breakdown-syndicate/&#34; target=&#34;_blank&#34; id=&#34;Breakdown: Syndicate (2012)&#34;&gt;Breakdown: Syndicate (2012)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents a frame investigating into a frame of the game syndicate from 2012&lt;/li&gt;
&lt;li&gt;shows the different rendering passes and provides an overview of the techniques used in each pass&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-325/syndicate.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240205014657/https://www.froyok.fr/blog/2024-01-breakdown-syndicate/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=5KkVftV-PTk&#34; target=&#34;_blank&#34; id=&#34;[video] I made a Compression Algorithm for Heightmap Terrain&#34;&gt;[video] I made a Compression Algorithm for Heightmap Terrain&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains a compression technique developed for height field compression&lt;/li&gt;
&lt;li&gt;covering quantization, quadtree, delta encoding, as well as linear regression&lt;/li&gt;
&lt;li&gt;source code as a Godot implementation is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-325/heightmap_terrain_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://thomasmansencal.substack.com/p/the-apparent-simplicity-of-rgb-rendering&#34; target=&#34;_blank&#34; id=&#34;The Apparent Simplicity of RGB Rendering&#34;&gt;The Apparent Simplicity of RGB Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes the observer correlation and coupling that is introduced into computer graphics through the use of RGB rendering&lt;/li&gt;
&lt;li&gt;explains physical definitions of terms and how the rendering definitions introduce these inherent limitations compared to spectral definitions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-325/different_color_spaces.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240201053307/https://thomasmansencal.substack.com/p/the-apparent-simplicity-of-rgb-rendering&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.threedy.io/career&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Unreal Developer (m/w/d)&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Darmstadt&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;We are Threedy, a dynamic startup that emerged as a spin-off from the Fraunhofer Institute for Computer Graphics Research IGD in Darmstadt in 2020.&lt;/p&gt;

&lt;p&gt;Threedy develops and distributes instant3Dhub - the first Visual Computing as a Service technology. It enables the productive use of Mixed Reality and digital work scenarios in any industrial applications in a simple and straightforward manner.&lt;/p&gt;

&lt;p&gt;As an Unreal Developer, you will be involved in the development of our distributed rendering system and work on integrating our technology with the Unreal Engine.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Threedy_instant3Dhub-Logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;thready_week_325&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://chipsandcheese.com/2024/01/28/examining-amds-rdna-4-changes-in-llvm/&#34; target=&#34;_blank&#34; id=&#34;Examining AMD’s RDNA 4 Changes in LLVM&#34;&gt;Examining AMD’s RDNA 4 Changes in LLVM&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blogpost discusses the changes AMD made to LLVM&lt;/li&gt;
&lt;li&gt;these changes might indicate hardware changes coming for the upcoming RDNA4 generation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-325/rdna3_inst_prefetch.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240130004630/https://chipsandcheese.com/2024/01/28/examining-amds-rdna-4-changes-in-llvm/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=EsEP9iJKBhU&#34; target=&#34;_blank&#34; id=&#34;[video] Vulkan For Beginners Tutorial #1&#34;&gt;[video] Vulkan For Beginners Tutorial #1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video introduces a new Vulkan tutorial&lt;/li&gt;
&lt;li&gt;the video focuses on the introduction of the audience, software/hardware requirements&lt;/li&gt;
&lt;li&gt;shows how to set up Vulkan and create a window&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-325/2024_vulkan_class.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/introducing-hip-rt-v2-2/&#34; target=&#34;_blank&#34; id=&#34;Introducing HIP RT v2.2&#34;&gt;Introducing HIP RT v2.2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents updates in HIP (Heterogeneous-compute Interface for Portability) Raytracing implementation&lt;/li&gt;
&lt;li&gt;presents how multi-level instancing allows reduction of memory usage&lt;/li&gt;
&lt;li&gt;additionally discusses BVH construction speed improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-325/introducing_hip_rt_v2.2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240205015935/https://gpuopen.com/learn/introducing-hip-rt-v2-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=hf27qsQPRLQ&#34; target=&#34;_blank&#34; id=&#34;[video] When Optimisations Work, But for the Wrong Reasons&#34;&gt;[video] When Optimisations Work, But for the Wrong Reasons&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an in-depth explanation of why LOD (Level of Detail) for 3D models helps to improve rendering performance&lt;/li&gt;
&lt;li&gt;shows how the hardware pipeline is organized, what data GPUs are optimized, and how different workloads cause different bottlenecks&lt;/li&gt;
&lt;li&gt;explains all stages of the pipeline involved and provides additional reading sources&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-325/subpixel_quad_performance.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://acefanatic02.github.io/posts/intro_bcn_part1&#34; target=&#34;_blank&#34; id=&#34;An Introduction To BCn Texture Compression, Part 1: BC4&#34;&gt;An Introduction To BCn Texture Compression, Part 1: BC4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the start into a series of explaining BC (DDS, Block Compression) formats&lt;/li&gt;
&lt;li&gt;this part shows how to build a working BC4 compressor&lt;/li&gt;
&lt;li&gt;explains each step and discusses the limitations of the presented techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-325/bc4_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240129070711/https://acefanatic02.github.io/posts/intro_bcn_part1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://metalkit.org/&#34; target=&#34;_blank&#34;&gt;Marius Horga&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 324  -  January 28th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-324/</link>
      <pubDate>Sun, 28 Jan 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-324/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/streamlining-subpasses&#34; target=&#34;_blank&#34; id=&#34;Streamlining Subpasses&#34;&gt;Streamlining Subpasses&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the new Vulkan extension allows developers to express local dependencies between sub-passes so that drivers can stay on-chip memory for tiled hardware&lt;/li&gt;
&lt;li&gt;blog post explains the extensions, how to post existing applications to use the new extension&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-324/render_passes.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240125183756/https://www.khronos.org/blog/streamlining-subpasses&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/khronos-releases-maximal-reconvergence-and-quad-control-extensions-for-vulkan-and-spir-v&#34; target=&#34;_blank&#34; id=&#34;Khronos Releases Maximal Reconvergence and Quad Control Extensions for Vulkan and SPIR-V&#34;&gt;Khronos Releases Maximal Reconvergence and Quad Control Extensions for Vulkan and SPIR-V&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Khronos released two new SPIR-V extensions&lt;/li&gt;
&lt;li&gt;the first extension guarantees reconvergence behavior to require the behavior many programmers&amp;rsquo; intuition assumed to work&lt;/li&gt;
&lt;li&gt;additionally, a new extension allows correct divergence handling within a quad&lt;/li&gt;
&lt;li&gt;the blog post explains the previous issues and how the extension solves them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-324/convergence.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240125183746/https://www.khronos.org/blog/khronos-releases-maximal-reconvergence-and-quad-control-extensions-for-vulkan-and-spir-v&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://c0de517e.com/011_portals.htm&#34; target=&#34;_blank&#34; id=&#34;Portals are misunderstood&#34;&gt;Portals are misunderstood&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes the history of Portals and BSP trees&lt;/li&gt;
&lt;li&gt;expands the ideas to more modern concepts and suggests the applicability of GPU based solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-324/cells_portals.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240130015300/https://c0de517e.com/011_portals.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://observablehq.com/d/a51954c61a72e1ef&#34; target=&#34;_blank&#34; id=&#34;Don&amp;#39;t Use Moving Averages&#34;&gt;Don&amp;#39;t Use Moving Averages&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents issues with moving averages and suggests using binomial averages instead&lt;/li&gt;
&lt;li&gt;shows data examples to highlight the issues and explain in frequency domain why they happen&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-324/better_average.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240130015311/https://observablehq.com/d/a51954c61a72e1ef&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://toji.dev/webgpu-profiling/pix.html&#34; target=&#34;_blank&#34; id=&#34;Profiling WebGPU with PIX&#34;&gt;Profiling WebGPU with PIX&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how PIX can be used to debug WebGPU applications&lt;/li&gt;
&lt;li&gt;shows what is required to attach PIX, get debug-marker output, as well as frequent issues&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-324/web-gpu-pix.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240130015801/https://toji.dev/webgpu-profiling/pix.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@kacper.szwajka842/efficient-gpu-rendering-for-dynamic-instances-in-game-development-9cef0b1eeeb6&#34; target=&#34;_blank&#34; id=&#34;Efficient GPU Rendering for Dynamic Instances in Game Development&#34;&gt;Efficient GPU Rendering for Dynamic Instances in Game Development&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author discusses a method to use indirect drawing to draw a dynamic number of instances of each type on the GPU&lt;/li&gt;
&lt;li&gt;The article provides an overview of the implementation (with code examples)&lt;/li&gt;
&lt;li&gt;additionally provides a couple of optimizations and future development steps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-324/tree_instancing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/save/https://medium.com/@kacper.szwajka842/efficient-gpu-rendering-for-dynamic-instances-in-game-development-9cef0b1eeeb6&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.maximeheckel.com/posts/caustics-in-webgl/&#34; target=&#34;_blank&#34; id=&#34;Shining a light on Caustics with Shaders and React Three Fiber&#34;&gt;Shining a light on Caustics with Shaders and React Three Fiber&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a detailed walkthrough of the implementation of a caustics effect using WebGL&lt;/li&gt;
&lt;li&gt;shows the different elements the effect is made up of and how to simulate the different phenomena&lt;/li&gt;
&lt;li&gt;intermediate samples are presented as interactive WebGL examples&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-324/center_caustics_plane.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240123204105/https://blog.maximeheckel.com/posts/caustics-in-webgl/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/gmodarelli&#34; target=&#34;_blank&#34;&gt;Giuseppe Modarelli&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 323  -  January 21st, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-323/</link>
      <pubDate>Sun, 21 Jan 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-323/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/mesh_shaders/mesh_shaders-optimization_and_best_practices/&#34; target=&#34;_blank&#34; id=&#34;Mesh shaders: optimization and best practices&#34;&gt;Mesh shaders: optimization and best practices&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of mesh shaders and amplification shaders&lt;/li&gt;
&lt;li&gt;shows the considerations and constraints on RDNA2/3 hardware&lt;/li&gt;
&lt;li&gt;showcases the tools available to profile the different stages and identify bottlenecks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-323/mesh_shader_amplification.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240122081622/https://gpuopen.com/learn/mesh_shaders/mesh_shaders-optimization_and_best_practices/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://themaister.net/blog/2024/01/17/modernizing-granites-mesh-rendering/&#34; target=&#34;_blank&#34; id=&#34;Modernizing Granite’s mesh rendering&#34;&gt;Modernizing Granite’s mesh rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a detailed look at implementing a mesh shader based rendering pipeline&lt;/li&gt;
&lt;li&gt;each step is accompanied by performance numbers on Nvidia and AMD&lt;/li&gt;
&lt;li&gt;shader code samples are provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-323/nv-vertex-id.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240118090039/https://themaister.net/blog/2024/01/17/modernizing-granites-mesh-rendering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2024/01/18/reprojection-in-a-ray-tracer/&#34; target=&#34;_blank&#34; id=&#34;Reprojection in a Ray Tracer&#34;&gt;Reprojection in a Ray Tracer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents an alternative method to calculate the previous frame screen space position given a world space position&lt;/li&gt;
&lt;li&gt;this technique doesn&amp;rsquo;t rely on projection matrices&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-323/reprojection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240122163251/https://jacco.ompf2.com/2024/01/18/reprojection-in-a-ray-tracer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/introducing-gpu-reshape-shader-instrumentation-toolset/&#34; target=&#34;_blank&#34; id=&#34;Introducing GPU Reshape - shader instrumentation for everyone&#34;&gt;Introducing GPU Reshape - shader instrumentation for everyone&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post introduces a new GPU-based debugging tool to make finding shader issues easier&lt;/li&gt;
&lt;li&gt;allows the detection of out-of-bounds access, resource-bound validation, NAN detection, concurrency validation, and more&lt;/li&gt;
&lt;li&gt;works with Vulkan and D3D12 on both AMD and Nvidia GPUs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-323/gpu_reshape.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240120045223/https://gpuopen.com/learn/introducing-gpu-reshape-shader-instrumentation-toolset/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=sTAqWRsEiy0&#34; target=&#34;_blank&#34; id=&#34;[video] Machine Learning for Game Developers&#34;&gt;[video] Machine Learning for Game Developers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an overview and introduction to machine learning from a game development perspective&lt;/li&gt;
&lt;li&gt;explaining the standard terms, intuition, building an example network, and finally running the example network using D3D12&lt;/li&gt;
&lt;li&gt;the example code is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-323/ML_introduction_EA.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://zone.dog/braindump/rhoxels/&#34; target=&#34;_blank&#34; id=&#34;Creating Rhoxel Meshes From Integer Coordinates&#34;&gt;Creating Rhoxel Meshes From Integer Coordinates&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a method to construct rhombic dodecahedral honeycomb elements from an integer grid&lt;/li&gt;
&lt;li&gt;shows an example of an SDF represented using the method&lt;/li&gt;
&lt;li&gt;presents how to generate the mesh surfaces&lt;/li&gt;
&lt;li&gt;additionally presents some ideas on what the method might be used for&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-323/rhoxel_ur_soxels.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240122163748/http://zone.dog/braindump/rhoxels/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://maraneshi.github.io/HLSL-ConstantBufferLayoutVisualizer&#34; target=&#34;_blank&#34; id=&#34;HLSL Constant Buffer Packing Rules&#34;&gt;HLSL Constant Buffer Packing Rules&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the packing rules for Constant buffers when used with D3D11/D3D12&lt;/li&gt;
&lt;li&gt;provides examples of different structures&lt;/li&gt;
&lt;li&gt;shows visually how the different members are packed into memory&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-323/constant_buffer_packing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240121222727/https://maraneshi.github.io/HLSL-ConstantBufferLayoutVisualizer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://linebender.org/wiki/gpu/sorting/&#34; target=&#34;_blank&#34; id=&#34;GPU Sorting - Overview&#34;&gt;GPU Sorting - Overview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of GPU sorting algorithms&lt;/li&gt;
&lt;li&gt;provides high-level comparisons between the techniques&lt;/li&gt;
&lt;li&gt;links to papers and implementations of the techniques are provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-323/cub_overview.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240122165910/https://linebender.org/wiki/gpu/sorting/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://atyuwen.github.io/&#34; target=&#34;_blank&#34;&gt;atyuwen&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 322  -  January 14th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-322/</link>
      <pubDate>Sun, 14 Jan 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-322/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://therealmjp.github.io/posts/hlsl-printf&#34; target=&#34;_blank&#34; id=&#34;Shader Printf in HLSL and DX12&#34;&gt;Shader Printf in HLSL and DX12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses how to implement a printf statement that can be used from a shader&lt;/li&gt;
&lt;li&gt;presents a workaround that allows HLSL 2021 to convert strings into a char array for writing into a buffer&lt;/li&gt;
&lt;li&gt;code examples are presented with HLSL and D3D12&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-322/shader-printf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240114003332/https://therealmjp.github.io/posts/hlsl-printf/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/noise3&#34; target=&#34;_blank&#34; id=&#34;GM Shaders: Noise 3&#34;&gt;GM Shaders: Noise 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a walkthrough on the steps required to generate simplex noise&lt;/li&gt;
&lt;li&gt;shows a comparison between texture and function-based noise generation&lt;/li&gt;
&lt;li&gt;additionally presents steps required to ensure that noise is tileable&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-322/simplex-noise.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240116005108/https://mini.gmshaders.com/p/noise3&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arugl.medium.com/hash-noise-in-gpu-shaders-210188ac3a3e&#34; target=&#34;_blank&#34; id=&#34;Hash Noise stability in GPU Shaders&#34;&gt;Hash Noise stability in GPU Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the portability of different methods to calculate noises/hashes across GPUs&lt;/li&gt;
&lt;li&gt;comparing methods to calculate, float, int, and functions as well as sampling differences&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-322/hash-stability.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240115182816/https://arugl.medium.com/hash-noise-in-gpu-shaders-210188ac3a3e&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.threedy.io/career&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Unreal Developer (m/w/d)&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Darmstadt&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;We are Threedy, a dynamic startup that emerged as a spin-off from the Fraunhofer Institute for Computer Graphics Research IGD in Darmstadt in 2020.&lt;/p&gt;

&lt;p&gt;Threedy develops and distributes instant3Dhub - the first Visual Computing as a Service technology. It enables the productive use of Mixed Reality and digital work scenarios in any industrial applications in a simple and straightforward manner.&lt;/p&gt;

&lt;p&gt;As an Unreal Developer, you will be involved in the development of our distributed rendering system and work on integrating our technology with the Unreal Engine.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Threedy_instant3Dhub-Logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;thready_week_322&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=_aeVGwKzVqo&#34; target=&#34;_blank&#34; id=&#34;[video] How does Quad Tessellation work in OpenGL?&#34;&gt;[video] How does Quad Tessellation work in OpenGL?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an overview of different tessellation modes&lt;/li&gt;
&lt;li&gt;visually explains where the tessellation is applied and how different modes subdivide differently&lt;/li&gt;
&lt;li&gt;code examples are provided with OpenGL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-322/quad-tesselation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=dXlzMScf584&#34; target=&#34;_blank&#34; id=&#34;[video] Vertex Animated Water - Advanced Materials - Episode 36&#34;&gt;[video] Vertex Animated Water - Advanced Materials - Episode 36&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows how to create a water surface through the use of vertex displacement&lt;/li&gt;
&lt;li&gt;the effect is implemented using a visual shader editor using Unity and Unreal&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-322/water-displacement.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://frozenfractal.com/blog/2024/1/8/around-the-world-11-everything-is-harder-on-a-sphere/&#34; target=&#34;_blank&#34; id=&#34;Around The World, Part 11: Everything is harder on a sphere&#34;&gt;Around The World, Part 11: Everything is harder on a sphere&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the complexities of using operations on the surface of a sphere&lt;/li&gt;
&lt;li&gt;presents issues of different encodings and extra difficulties with operations such as rotations, precision, distortions, etc.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-322/cubemap.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240108141634/https://frozenfractal.com/blog/2024/1/8/around-the-world-11-everything-is-harder-on-a-sphere/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/Omme&#34; target=&#34;_blank&#34;&gt;Dominik Lazarek&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 321  -  January 7th, 2024</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-321/</link>
      <pubDate>Sun, 07 Jan 2024 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-321/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://theorangeduck.com/page/quaternion-weighted-average&#34; target=&#34;_blank&#34; id=&#34;Quaternion Weighted Average&#34;&gt;Quaternion Weighted Average&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to accurately calculate the average of a set of quaternions&lt;/li&gt;
&lt;li&gt;shows issues with a common method, why these errors happen, and how to improve it&lt;/li&gt;
&lt;li&gt;visually shows the improved method&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-321/quaternion_rotation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240107235825/https://theorangeduck.com/page/quaternion-weighted-average&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.siggraph.org/wp-content/uploads/2023/07/ACM-SIGGRAPH-2023-Courses.html&#34; target=&#34;_blank&#34; id=&#34;Siggraph 2023 Courses - Videos released&#34;&gt;Siggraph 2023 Courses - Videos released&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;ACM has released the video recording for the SIGGRAPH 2023 courses&lt;/li&gt;
&lt;li&gt;a large number of topics such as USD, WebGPU, Vulkan raytracing, and many more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-321/acm_library.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240106051421/https://www.siggraph.org/wp-content/uploads/2023/07/ACM-SIGGRAPH-2023-Courses.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dl.acm.org/doi/10.1145/3587423.3595511&#34; target=&#34;_blank&#34; id=&#34;A Gentle Introduction to ReSTIR Path Reuse in Real-Time&#34;&gt;A Gentle Introduction to ReSTIR Path Reuse in Real-Time&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;ACM released the video recording of the Siggraph course on the introduction to ReSTIR&lt;/li&gt;
&lt;li&gt;the full ~3h30 video is available for streaming &amp;amp; download&lt;/li&gt;
&lt;li&gt;covering from the basics to practical integration into Cyberpunk&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-321/restir_teaser.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240108000419/https://dl.acm.org/doi/10.1145/3587423.3595511&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://phaser.io/community/jobs#senior-webgl-graphics-engineer&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior WebGL Graphics Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Remote&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Phaser Studio is looking for a focused, collaborative, professional graphics engineer to help craft the 2D rendering engine for the current and next generation of the Phaser game framework.&lt;/p&gt;

&lt;p&gt;You&amp;rsquo;ll be a bright, energetic, and talented individual who shares our love of video games and our passion for empowering game developers to make the most of the web as a gaming platform.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/phaser.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;phaser_week_321&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ZTW7bDdHC6g&#34; target=&#34;_blank&#34; id=&#34;[video] Inside Alan Wake 2: How Remedy Delivered A Visual Masterpiece&#34;&gt;[video] Inside Alan Wake 2: How Remedy Delivered A Visual Masterpiece&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Digitial Foundry interview with a Technical Director and Lead Graphics Programmer from the Alan Wake 2 team&lt;/li&gt;
&lt;li&gt;discusses engine changes, mesh shader usage, ray tracing design, memory optimizations, etc.&lt;/li&gt;
&lt;li&gt;the full interview is ~50  minutes long&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-321/alan_wake_2_interview.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=sYLbdO3VB8c&#34; target=&#34;_blank&#34; id=&#34;[video] Vertex Displacement - Advanced Materials - Episode 35&#34;&gt;[video] Vertex Displacement - Advanced Materials - Episode 35&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents several use cases that vertex offset enables&lt;/li&gt;
&lt;li&gt;shows how to implement the techniques in Unity and Unreal Engine&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-321/vertex_offset.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=V2_Xf24FpBU&#34; target=&#34;_blank&#34; id=&#34;[video] This Is Ray Tracing Supercharged!&#34;&gt;[video] This Is Ray Tracing Supercharged!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of recent advances in light transport and compute graphics algorithms&lt;/li&gt;
&lt;li&gt;shows noise reduction techniques, screen space-based GI techniques as well as displacement mapping with continuous LODs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-321/displacement.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.threedy.io/career&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Unreal Developer (m/w/d)&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Darmstadt&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Wir sind Threedy, ein dynamisches Startup, das als Ausgründung vom Fraunhofer-Institut für Graphische Datenverarbeitung IGD in Darmstadt im Jahr 2020 entstanden.&lt;/p&gt;

&lt;p&gt;Threedy entwickelt und vertreibt instant3Dhub - die erste Visual-Computing-as-a-Service-Technologie. Sie ermöglicht den produktiven Einsatz von Mixed Reality und digitalen Arbeitsszenarien in beliebigen Industrieanwendungen auf einfache und unkomplizierte Weise.&lt;/p&gt;

&lt;p&gt;Als Unreal Developer wirst du an der Entwicklung unseres verteilten Rendering-Systems teilhaben und an der Integration unserer Technologie mit der Unreal Engine arbeiten.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Threedy_instant3Dhub-Logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;thready_week_321&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://diffusionlight.github.io/&#34; target=&#34;_blank&#34; id=&#34;DiffusionLight: Light Probes for Free by Painting a Chrome Ball&#34;&gt;DiffusionLight: Light Probes for Free by Painting a Chrome Ball&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a method to estimate HDR EnvironmentMap (Chrome Ball) from a single input image&lt;/li&gt;
&lt;li&gt;shows how the LDR diffusion model was trained, what insights enable better estimation as well as how to generate HDR sphere&lt;/li&gt;
&lt;li&gt;source code and example implementation are available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-321/chrome_ball.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240105135844/https://diffusionlight.github.io/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/adalbertobruno/&#34; target=&#34;_blank&#34;&gt;Adalberto Bruno&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 320  -  December 31st, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-320/</link>
      <pubDate>Sun, 31 Dec 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-320/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2023/12/29/low-level-thinking-in-high-level-shading-languages-2023/&#34; target=&#34;_blank&#34; id=&#34;Low-level thinking in high-level shading languages 2023&#34;&gt;Low-level thinking in high-level shading languages 2023&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how different shader constructs are converted into instruction on RDNA2&lt;/li&gt;
&lt;li&gt;shows the impact on code generation that small changes can have&lt;/li&gt;
&lt;li&gt;what can be optimized by today&amp;rsquo;s compilers and what cannot be optimized&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-320/shader-level-optim.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231230155745/https://interplayoflight.wordpress.com/2023/12/29/low-level-thinking-in-high-level-shading-languages-2023/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lisyarus.github.io/blog/math/2023/12/26/3d-shape-matching-with-quaternions.html&#34; target=&#34;_blank&#34; id=&#34;3D shape matching with quaternions&#34;&gt;3D shape matching with quaternions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses a technique that calculates the transformation required between a known base and target position&lt;/li&gt;
&lt;li&gt;applies this technique to a 3D cloth simulation to calculate the shading tangent and normals&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-320/cloth_shading_after.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240102230141/https://lisyarus.github.io/blog/math/2023/12/26/3d-shape-matching-with-quaternions.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.traverseresearch.nl/creating-a-directed-acyclic-graph-from-a-mesh-1329e57286e5&#34; target=&#34;_blank&#34; id=&#34;Creating a Directed Acyclic Graph from a Mesh&#34;&gt;Creating a Directed Acyclic Graph from a Mesh&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses how to generate LODs using a meshlet-based Directed Acyclic Graph approach&lt;/li&gt;
&lt;li&gt;talks about the data structure, the approach, and implementation details of the model&lt;/li&gt;
&lt;li&gt;mentions considerations for choosing meshlet sizes as well as LOD selection using the graph&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-320/mesh_dag.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240102230500/https://blog.traverseresearch.nl/creating-a-directed-acyclic-graph-from-a-mesh-1329e57286e5?gi=2e70c1cf35b2&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=C8YtdC8mxTU&#34; target=&#34;_blank&#34; id=&#34;[video] How do Video Game Graphics Work?&#34;&gt;[video] How do Video Game Graphics Work?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a great visual breakdown of the rendering pipeline&lt;/li&gt;
&lt;li&gt;covers how scenes are represented, how the source triangles are transformed, rasterized, and shaded to finally appear on screen&lt;/li&gt;
&lt;li&gt;additionally provides a small overview of more recent techniques such as ray-tracing and DLSS&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-320/video_games_visualize.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.traverseresearch.nl/beyond-sah-building-optimal-bvhs-fdef1878d6ed&#34; target=&#34;_blank&#34; id=&#34;Beyond SAH — Building Optimal BVHs&#34;&gt;Beyond SAH — Building Optimal BVHs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of different heuristics to choose from when building a BVH for raytracing&lt;/li&gt;
&lt;li&gt;compares the ray tracing performance of the heuristics in a test scene&lt;/li&gt;
&lt;li&gt;additionally provides ideas for future research in the area&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-320/bvh_gen.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240102230823/https://blog.traverseresearch.nl/beyond-sah-building-optimal-bvhs-fdef1878d6ed?gi=b5a1632a6793&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.traverseresearch.nl/dynamic-diffuse-global-illumination-b56dc0525a0a&#34; target=&#34;_blank&#34; id=&#34;Dynamic diffuse global illumination&#34;&gt;Dynamic diffuse global illumination&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a walkthrough of the practical tweaks and tricks used to implement a ReStir-based global illumination system into a research framework&lt;/li&gt;
&lt;li&gt;discusses the caching strategies, light leaking improvements, and performance optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-320/restir_gi.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240102231147/https://blog.traverseresearch.nl/dynamic-diffuse-global-illumination-b56dc0525a0a?gi=da6971d6eb9b&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.traverseresearch.nl/denoising-raytraced-images-using-oidn-f6566d605453&#34; target=&#34;_blank&#34; id=&#34;Denoising raytraced images using OIDN&#34;&gt;Denoising raytraced images using OIDN&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides insights into how to convert OpenImageDenoise into HLSL compute shaders&lt;/li&gt;
&lt;li&gt;shows a high-level overview of the technique&lt;/li&gt;
&lt;li&gt;presents a couple of steps to reduce the performance cost&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-320/breda_denoise.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20240102231208/https://blog.traverseresearch.nl/denoising-raytraced-images-using-oidn-f6566d605453?gi=038d7875d423&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/gmodarelli&#34; target=&#34;_blank&#34;&gt;Giuseppe Modarelli&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 319  -  December 24th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-319/</link>
      <pubDate>Sun, 24 Dec 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-319/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/mesh-shaders-on-rdna-graphics-cards/&#34; target=&#34;_blank&#34; id=&#34;Mesh Shaders on RDNA™ Graphics Cards&#34;&gt;Mesh Shaders on RDNA™ Graphics Cards&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post is the beginning of a series covering mesh shaders and how they map to the RDNA hardware&lt;/li&gt;
&lt;li&gt;explains the classical pipeline and how the mesh shading pipeline differs&lt;/li&gt;
&lt;li&gt;presents which AMD hardware stages are used to implement the stages&lt;/li&gt;
&lt;li&gt;additional presents how amplification shaders can be used to represent dynamic workloads&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-319/rdna_mesh_shaders.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231219162624/https://gpuopen.com/learn/mesh-shaders-on-rdna-graphics-cards/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/occupancy-explained/&#34; target=&#34;_blank&#34; id=&#34;Occupancy explained&#34;&gt;Occupancy explained&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an in-depth look at understanding shader occupancy on RDNA hardware&lt;/li&gt;
&lt;li&gt;shows what occupancy is, what factors could limit it, and how to observe the actual occupancy&lt;/li&gt;
&lt;li&gt;presents how to improve occupancy&lt;/li&gt;
&lt;li&gt;additionally, it presents pointers to detect cases when more occupancy might not be beneficial&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-319/occupancy_latency_hiding.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231222010844/https://gpuopen.com/learn/occupancy-explained/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://calvinatorrtech.art.blog/2023/12/20/optimizing-shaders-in-unreal-engine/&#34; target=&#34;_blank&#34; id=&#34;Optimizing Shaders in Unreal Engine&#34;&gt;Optimizing Shaders in Unreal Engine&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents techniques to help identify the performance cost of shaders created from unreal shader graphs&lt;/li&gt;
&lt;li&gt;shows how to see the generated instructions&lt;/li&gt;
&lt;li&gt;additionally, it presents a couple of examples to optimize the generated shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-319/unreal-shader-optimization.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231220001513/https://calvinatorrtech.art.blog/2023/12/20/optimizing-shaders-in-unreal-engine/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/AlexSabourinDev/cranberry_blog/blob/master/WaveActiveLerp.md&#34; target=&#34;_blank&#34; id=&#34;Interpolation Using Wave Intrinsics&#34;&gt;Interpolation Using Wave Intrinsics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a shader function that uses wave intrinsic to calculate interpolation of the result of lane-dependent calculations across lanes&lt;/li&gt;
&lt;li&gt;shows step-by-step how the shader is structured&lt;/li&gt;
&lt;li&gt;additionally presents how to take advantage of SPIR-V inline to further improve the generated code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-319/wave_lerp.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231229222136/https://github.com/AlexSabourinDev/cranberry_blog/blob/master/WaveActiveLerp.md&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.traverseresearch.nl/an-update-to-our-render-graph-17ca4154fd23&#34; target=&#34;_blank&#34; id=&#34;An update to our Render Graph&#34;&gt;An update to our Render Graph&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the implementation of a render graph implementation&lt;/li&gt;
&lt;li&gt;presents how the implementation uses versioned resources to structure the order of render passes&lt;/li&gt;
&lt;li&gt;shows how the execution order of the render graph is established&lt;/li&gt;
&lt;li&gt;additionally, it discusses how unused render passes are removed&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-319/shader_graph_layout.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231229222355/https://blog.traverseresearch.nl/an-update-to-our-render-graph-17ca4154fd23?gi=b8328fdef25a&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://poniesandlight.co.uk/reflect/island_video_decoder/&#34; target=&#34;_blank&#34; id=&#34;Vulkan Video Decode: First Frames&#34;&gt;Vulkan Video Decode: First Frames&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog discusses the implementation of Vulkan video decoding to get the first frame of a video&lt;/li&gt;
&lt;li&gt;shows the steps necessary, from loading a file to unpacking the mp4 to actually decoding a first frame&lt;/li&gt;
&lt;li&gt;discusses pitfalls encountered along the way&lt;/li&gt;
&lt;li&gt;additionally, it presents a collection of other resources used to get to the stage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-319/vulkan_video_test.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231221091359/https://poniesandlight.co.uk/reflect/island_video_decoder/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jeremyong.com/graphics/2023/12/16/surface-gradient-bump-mapping&#34; target=&#34;_blank&#34; id=&#34;Surface Gradient Bump Mapping Framework Overview&#34;&gt;Surface Gradient Bump Mapping Framework Overview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a retelling of the Surface Gradient Bump Mapping Framework paper from the author&amp;rsquo;s perspective&lt;/li&gt;
&lt;li&gt;shows what normal maps are, how they encode information, and what the difference between object and tangent space is&lt;/li&gt;
&lt;li&gt;discusses issues with blending normals from different sources and how the alternative representation can achieve better-blending results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-319/surface_gradient_paper_preview.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231225120803/https://www.jeremyong.com/graphics/2023/12/16/surface-gradient-bump-mapping/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.traverseresearch.nl/ray-tracing-animated-crowds-bc0e775c74ad&#34; target=&#34;_blank&#34; id=&#34;Ray tracing animated crowds&#34;&gt;Ray tracing animated crowds&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses how GPU-based animation for large crowds is implemented&lt;/li&gt;
&lt;li&gt;presents how the animations are structured, driven on the GPU, and acceleration structures for ray-tracing are generated&lt;/li&gt;
&lt;li&gt;additionally presents how skeleton instancing can be used to reduce animation costs while still allowing object variations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-319/animated_raytracing_crowds.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231229222937/https://blog.traverseresearch.nl/ray-tracing-animated-crowds-bc0e775c74ad?gi=6cc9f2e404bd&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=XtxfJHVKFas&#34; target=&#34;_blank&#34; id=&#34;[video] Digital Foundry&amp;#39;s Best Game Graphics of 2023 - PC, PS5, Xbox, Switch - Another Amazing Year&#34;&gt;[video] Digital Foundry&amp;#39;s Best Game Graphics of 2023 - PC, PS5, Xbox, Switch - Another Amazing Year&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;year-end video that discusses the standout graphical games of the year&lt;/li&gt;
&lt;li&gt;presents demonstrations of the effects of the game-nominated&lt;/li&gt;
&lt;li&gt;shows the top 3 picks for best-looking games of the year and presents the reasoning for the choices&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-319/df_best_of_graphics_2023.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://lesleylai.info&#34; target=&#34;_blank&#34;&gt;Lesley Lai&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 318  -  December 17th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-318/</link>
      <pubDate>Sun, 17 Dec 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-318/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2023/12/17/a-gentler-introduction-to-restir/&#34; target=&#34;_blank&#34; id=&#34;A gentler introduction to ReSTIR&#34;&gt;A gentler introduction to ReSTIR&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post aims to introduce and explain the ReSTIR technique with a focus on implementation and intuition instead of the underlying theory&lt;/li&gt;
&lt;li&gt;shows how to start with a first implementation and expand it to implement shadows&lt;/li&gt;
&lt;li&gt;additionally shows how to take advantage of temporal and spatial data to reduce noise&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-318/restir_intro.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231219000702/https://interplayoflight.wordpress.com/2023/12/17/a-gentler-introduction-to-restir/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.velanstudios.com/post/knockout-city-frame-breakdown&#34; target=&#34;_blank&#34; id=&#34;Knockout City Frame Breakdown&#34;&gt;Knockout City Frame Breakdown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a breakdown of the primary render passes of the Knockout City frame&lt;/li&gt;
&lt;li&gt;provides a high-level overview of the rendering techniques used, what existing techniques they are based on, and how they modified the techniques to fit the requirements of the game&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-318/knockout_city_frame.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231219000550/https://www.velanstudios.com/post/knockout-city-frame-breakdown&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-swap-chains/&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: Swap Chains&#34;&gt;Advanced API Performance: Swap Chains&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post collects advice on how to achieve the most stable presentation results when using DXGI&lt;/li&gt;
&lt;li&gt;presents what flags to set, how to size the queues, and how to make sure the results stay consistent after window/resolution resizes&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-318/Advanced-API-series.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231216020038/https://developer.nvidia.com/blog/advanced-api-performance-swap-chains/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/fsr3-source-available/&#34; target=&#34;_blank&#34; id=&#34;AMD FSR3&#34;&gt;AMD FSR3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents an overview of the FSR3 SDK improvements&lt;/li&gt;
&lt;li&gt;shows the debug display modes to help during implementation&lt;/li&gt;
&lt;li&gt;additionally shows how it&amp;rsquo;s possible to run workloads on one queue to make initial implementation easier&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-318/fsr3_interface.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231217153203/https://gpuopen.com/fsr3-source-available/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1773_how_to_programmatically_check_graphics_driver_version&#34; target=&#34;_blank&#34; id=&#34;How to programmatically check graphics driver version&#34;&gt;How to programmatically check graphics driver version&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses several ways to query the driver version and how to interpret the results&lt;/li&gt;
&lt;li&gt;presents how to query the information with AMD, and Nvidia-specific API&lt;/li&gt;
&lt;li&gt;and the API standard way exposed by D3D12 and Vulkan&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-318/AMD_driver_software.PNG&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231219001127/https://asawicki.info/news_1773_how_to_programmatically_check_graphics_driver_version&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.eurogamer.net/digitalfoundry-2023-avatar-frontiers-of-pandora-and-snowdrop-the-big-developer-tech-interview&#34; target=&#34;_blank&#34; id=&#34;Avatar: Frontiers of Pandora - the big developer tech interview &#34;&gt;Avatar: Frontiers of Pandora - the big developer tech interview &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the interview between DigitialFoundry and some of the developers of the developers from Massive provides insights into the implementation of the game&lt;/li&gt;
&lt;li&gt;discussing raytracing, GI, GPU rendering pipeline, and many more topics&lt;/li&gt;
&lt;li&gt;also provides into the CPU side structure as well as PSO management&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-318/avatar_jungle_game.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231217165310/https://www.eurogamer.net/digitalfoundry-2023-avatar-frontiers-of-pandora-and-snowdrop-the-big-developer-tech-interview&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://simplygon.com/posts/0554477c-d467-40ac-8f41-525978f8773a&#34; target=&#34;_blank&#34; id=&#34;Introduction to micro-meshes for mesh compression&#34;&gt;Introduction to micro-meshes for mesh compression&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to use Simplygon to generate micro-meshes (base structure + displacement information)&lt;/li&gt;
&lt;li&gt;shows examples of what kind of results can be expected from different settings and how it affects memory usage and quality&lt;/li&gt;
&lt;li&gt;presents how the way a model has been created can affect the base resolution vs. tesselation amount to achieve high-quality results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-318/wall007.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231219001254/https://simplygon.com/posts/0554477c-d467-40ac-8f41-525978f8773a&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://andrewkchan.dev/posts/fire.html&#34; target=&#34;_blank&#34; id=&#34;Simulating Fluids, Fire, and Smoke in Real-Time&#34;&gt;Simulating Fluids, Fire, and Smoke in Real-Time&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog provides an introduction to fluid dynamics and rendering&lt;/li&gt;
&lt;li&gt;the implementation is explained with the growing sophistication of the simulation&lt;/li&gt;
&lt;li&gt;an interactive WebGL demo of each stage is provided&lt;/li&gt;
&lt;li&gt;closes with how to apply temperature to color space conversion to enable a first completed fire simulation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-318/fire_simulation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231218160735/https://andrewkchan.dev/posts/fire.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=WWEcqsXD-hE&#34; target=&#34;_blank&#34; id=&#34;[video] Using Textures In The Vertex Shader - Advanced Materials - Episode 34&#34;&gt;[video] Using Textures In The Vertex Shader - Advanced Materials - Episode 34&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to sample textures from a vertex shader&lt;/li&gt;
&lt;li&gt;explaining the quality difference and how the mesh vertex distribution and the texture content can significantly affect the quality of the result&lt;/li&gt;
&lt;li&gt;additionally presents the different strategies that are available for the selection of varying texture MIP levels&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-318/vertex_shader_samples.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/JasperBekkers/&#34; target=&#34;_blank&#34;&gt;Jasper Bekkers&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 317  -  December 10th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-317/</link>
      <pubDate>Sun, 10 Dec 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-317/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://c0de517e.com/007_impostors.htm&#34; target=&#34;_blank&#34; id=&#34;Exploring the design space of remote scene approximation&#34;&gt;Exploring the design space of remote scene approximation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog presents a walkthrough of the author&amp;rsquo;s R&amp;amp;D process when approaching the issue of generation of a scene approximation&lt;/li&gt;
&lt;li&gt;shows how to analyze the constraints, develop a high-level intuition for the problem, and use this to explore the problem space&lt;/li&gt;
&lt;li&gt;discusses the different solutions&amp;rsquo; pros &amp;amp; cons and shows how to start prototyping and iterating through the process&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-317/scene-approximation-wip.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231209073812/https://c0de517e.com/007_impostors.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arnaud-carre.github.io/2023-12-10-gpgpu&#34; target=&#34;_blank&#34; id=&#34;Use the GPU, Luke!&#34;&gt;Use the GPU, Luke!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an overview of GPU programming concepts for non-graphics programmers&lt;/li&gt;
&lt;li&gt;discusses GPU architecture, how to author shaders, how to read/write data, and basics of synchronization&lt;/li&gt;
&lt;li&gt;For example, d3d11 code for an image converter is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-317/cycleop_sham.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231211063327/https://arnaud-carre.github.io/2023-12-10-gpgpu/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0012/02/01&#34; target=&#34;_blank&#34; id=&#34;Performance Comparison of Meshlet Generation Strategies&#34;&gt;Performance Comparison of Meshlet Generation Strategies&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the research paper presents the performance impact of different vertex clustering (meshlets) on the efficiency of mesh shaders&lt;/li&gt;
&lt;li&gt;discusses hardware design/limitations that affect considerations when deciding on cluster sizes&lt;/li&gt;
&lt;li&gt;discusses different algorithms, providing an overview of the technique, implementation considerations, as well as performance differences&lt;/li&gt;
&lt;li&gt;source code for the meshlet generation is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-317/meshlet_generation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231211064039/https://jcgt.org/published/0012/02/01/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=CyrGLMmVUAI&#34; target=&#34;_blank&#34; id=&#34;[video] GPU Crash Debugging in Unreal Engine: Tools, Techniques, and Best Practices | Unreal Fest 2023&#34;&gt;[video] GPU Crash Debugging in Unreal Engine: Tools, Techniques, and Best Practices | Unreal Fest 2023&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation shows the complexity of debugging issues that cause crashes that originate from GPU issues&lt;/li&gt;
&lt;li&gt;provides an overview of available techniques and tools and how to combine them to track down issues&lt;/li&gt;
&lt;li&gt;explains the steps required to track down example crashes from The Witcher&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-317/UnrealEngineBreadcrumbs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://whenistheweekend.com/theSphere.html&#34; target=&#34;_blank&#34; id=&#34;Shader on The Sphere&#34;&gt;Shader on The Sphere&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a small website that allows the authoring of GLSL shaders and running them on a virtual &amp;ldquo;The Sphere&amp;rdquo; located in Las Vegas&lt;/li&gt;
&lt;li&gt;contains a couple of examples as starting points&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-317/theSphereShader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231203161101/https://whenistheweekend.com/theSphere.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://toji.dev/webgpu-best-practices/webgl-performance-comparison.html&#34; target=&#34;_blank&#34; id=&#34;WebGPU/WebGL performance comparison best practices&#34;&gt;WebGPU/WebGL performance comparison best practices&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides best practices to follow when comparing WebGL and WebGPU workloads&lt;/li&gt;
&lt;li&gt;It presents how to verify the underlying API, output configuration, blend modes, and other aspects that can affect performance&lt;/li&gt;
&lt;li&gt;additionally presents how to report issues after confirming the aspects are identical&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-317/WebGpu_vs_WebGL.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231211064218/https://toji.dev/webgpu-best-practices/webgl-performance-comparison.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=CHYxjpYep_M&#34; target=&#34;_blank&#34; id=&#34;[video] How Games Have Worked for 30 Years to Do Less Work&#34;&gt;[video] How Games Have Worked for 30 Years to Do Less Work&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an explanation of techniques used by rendering systems to reduce the number of objects that need to be drawn to the screen&lt;/li&gt;
&lt;li&gt;shows how frustum culling is only the first step, expand upon the idea by introducing occlusion culling&lt;/li&gt;
&lt;li&gt;explains how to use the depth buffer to improve culling further and take advantage of temporal information to further enhance culling results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-317/gpu_object_culling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.allpurposem.at/directx&#34; target=&#34;_blank&#34; id=&#34;DirectX? On my Linux??&#34;&gt;DirectX? On my Linux??&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;brief example blog post that presents how it&amp;rsquo;s possible to use DXVK to build a native Linux elf that uses the D3D11 API&lt;/li&gt;
&lt;li&gt;shows how to integrate the necessary steps into Cmake with a SDL based application&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-317/rasterizer-reference.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231209185949/https://blog.allpurposem.at/directx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=EdjNt8c2FUE&#34; target=&#34;_blank&#34; id=&#34;[video] Vertex Shader Optimization - Advanced Materials - Episode 33&#34;&gt;[video] Vertex Shader Optimization - Advanced Materials - Episode 33&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows how to move computations from a pixel shader into a vertex shader&lt;/li&gt;
&lt;li&gt;presents two examples and uses them to show the change in visual results when moving from pixel to vertex shading frequency&lt;/li&gt;
&lt;li&gt;code examples are shown in unity and unreal visual scripting&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-317/vertex_pixel_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/rgp-2-0-customizable-wavefront-occupancy-view-dark-mode&#34; target=&#34;_blank&#34; id=&#34;Introducing Radeon™ GPU Profiler 2.0!&#34;&gt;Introducing Radeon™ GPU Profiler 2.0!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post shows the release of the new version of the AMD GPU profiler&lt;/li&gt;
&lt;li&gt;presents the updated UI and how divergence raytracing pipelines can be visualized better&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-317/wavefront_occupancy.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231211063912/https://gpuopen.com/learn/rgp-2-0-customizable-wavefront-occupancy-view-dark-mode/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/our-brand-new-directstorage-sample-is-available-now&#34; target=&#34;_blank&#34; id=&#34;Our brand-new DirectStorage sample is available now&#34;&gt;Our brand-new DirectStorage sample is available now&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD released a sample for DirectStorage that was presented during GDC 2023&lt;/li&gt;
&lt;li&gt;the code shows how to use the API and how to compress assets to be able to take advantage of the API patterns&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-317/DirectStorageSample.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231211063203/https://gpuopen.com/our-brand-new-directstorage-sample-is-available-now/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://erichaines.com/&#34; target=&#34;_blank&#34;&gt;Eric Haines&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 316  -  December 3rd, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-316/</link>
      <pubDate>Sun, 03 Dec 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-316/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/introducing-amd-renderstudio/&#34; target=&#34;_blank&#34; id=&#34;Announcing AMD RenderStudio - supporting collaborative 3D creation and rendering in the OpenUSD and MaterialX ecosystem&#34;&gt;Announcing AMD RenderStudio - supporting collaborative 3D creation and rendering in the OpenUSD and MaterialX ecosystem&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post announces USD integration into the AMD RenderStudio&lt;/li&gt;
&lt;li&gt;presents how the system allows real-time collaboration between different authoring tools (Maya, Blender, Houdini, RenderStudio)&lt;/li&gt;
&lt;li&gt;additionally also supports MaterialX into the renderers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-316/amd_renderstudio.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231204020736/https://gpuopen.com/learn/introducing-amd-renderstudio/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ea.com/seed/news/coverage-bitmasks&#34; target=&#34;_blank&#34; id=&#34;Coverage Bitmasks for Efficient Rendering Algorithms&#34;&gt;Coverage Bitmasks for Efficient Rendering Algorithms&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation provides an overview of bitmasks and their uses in rendering&lt;/li&gt;
&lt;li&gt;It covers many applications for the technique (rasterization, font rendering, culling, global illumination, raytracing, etc.)&lt;/li&gt;
&lt;li&gt;explores the properties and how they are a fantastic fit for GPU programmability and machine learning&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-316/bitmask_for_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://media.contentapi.ea.com/content/dam/ea/seed/presentations/seed-coverage-bitmasks-mittring.pdf&#34; style=&#34;color:white;&#34;&gt;slides &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20231204021101/https://media.contentapi.ea.com/content/dam/ea/seed/presentations/seed-coverage-bitmasks-mittring.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231202122501/https://www.ea.com/seed/news/coverage-bitmasks&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=mCi_0ML0lG8&#34; target=&#34;_blank&#34; id=&#34;[video] Lengths, angles, projection, correlation | Linear algebra episode 2&#34;&gt;[video] Lengths, angles, projection, correlation | Linear algebra episode 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an excellent and detailed overview of the dot product&lt;/li&gt;
&lt;li&gt;shows how the product is defined in algebraic notation as well as geometric interpretation&lt;/li&gt;
&lt;li&gt;explains relationships and properties with visual explanations&lt;/li&gt;
&lt;li&gt;additionally provides practical examples of how to use the different properties and operations introduced in the video&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-316/DotProduct.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/oklab&#34; target=&#34;_blank&#34; id=&#34;GM Shaders Mini: OkLab&#34;&gt;GM Shaders Mini: OkLab&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the issues when creating a color gradient from sRGB and linear color spaces&lt;/li&gt;
&lt;li&gt;introduces how the OkLab color space is designed to be perceptually linear and allows smoother gradients&lt;/li&gt;
&lt;li&gt;provides code for the color space conversion&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-316/color_blending.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231204020944/https://mini.gmshaders.com/p/oklab&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://apply.workable.com/ndreams/j/7EEC62140E/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Principal Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Remote, United Kingdom&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Studio Elevation are re-establishing the boundaries of VR. We’re looking for a talented Principal Graphics Programmer to help us explore, create, and deliver world-leading innovation in software and VR hardware. Become a key member of Elevation, pioneering AAA, remote first process and crafting a new generation of VR development to bring core VR games to fruition.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_nDreams_2021.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;nDreams_week_316&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=P6DnNoS46Fs&#34; target=&#34;_blank&#34; id=&#34;[video] How to Render a Wireframe On a Solid Mesh&#34;&gt;[video] How to Render a Wireframe On a Solid Mesh&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how to use a geometry shader to render a wireframe overlay on a mesh using a single pass&lt;/li&gt;
&lt;li&gt;provides the overview of the presented algorithm before showing the OpenGL implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-316/wireframe.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=O-2viBhLTqI&#34; target=&#34;_blank&#34; id=&#34;[video] What Is A Graphics Programmer?&#34;&gt;[video] What Is A Graphics Programmer?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides the story of the author becoming a professional graphics programmer&lt;/li&gt;
&lt;li&gt;discusses the author&amp;rsquo;s view on the path into the industry for graphics programmers, technical artists, as well as general shader artists&lt;/li&gt;
&lt;li&gt;shows the importance of self-learning, portfolio creation, and the lack of intermediate resources&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-316/types_of_graphics_programmers.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=CHrnErTJvHU&#34; target=&#34;_blank&#34; id=&#34;[video] Introduction To Vertex Shaders - Advanced Materials - Episode 32&#34;&gt;[video] Introduction To Vertex Shaders - Advanced Materials - Episode 32&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;start of a new shader tutorial series covering vertex shaders&lt;/li&gt;
&lt;li&gt;starts off with an overview of vertex shaders and how to use them from Unity and Unreal&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-316/vertex_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=5zlfJW2VGLM&#34; target=&#34;_blank&#34; id=&#34;[video] When Your Game Is Bad But Your Optimisation Is Genius&#34;&gt;[video] When Your Game Is Bad But Your Optimisation Is Genius&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents techniques used to optimize terrain rendering&lt;/li&gt;
&lt;li&gt;shows how to compress vertex information to reduce the memory and bandwidth requirements&lt;/li&gt;
&lt;li&gt;additionally shows the importance of LODs for rendering performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-316/compressed_vertex_data.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/maxandonuts&#34; target=&#34;_blank&#34;&gt;Max R.R. Collada&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 315  -  November 26th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-315/</link>
      <pubDate>Sun, 26 Nov 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-315/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.magnopus.com/blog/how-we-render-extremely-large-point-clouds&#34; target=&#34;_blank&#34; id=&#34;How We Render Extremely Large Point Clouds&#34;&gt;How We Render Extremely Large Point Clouds&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses a system to compute shader rasterize large point cloud datasets at interactive rates&lt;/li&gt;
&lt;li&gt;the detailed blog presents how they solved problems along the whole pipeline&lt;/li&gt;
&lt;li&gt;covering point reordering, point rejection and hole filling, level of detail selection and calculation, as well as memory usage optimizations&lt;/li&gt;
&lt;li&gt;additionally presents how the data is expressed and used from the Unity implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-315/point_cloud_the_future.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231127021052/https://www.magnopus.com/blog/how-we-render-extremely-large-point-clouds&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/how_do_you_become_a_graphics_programmer&#34; target=&#34;_blank&#34; id=&#34;How do I become a graphics programmer? - A small guide from the AMD Game Engineering team&#34;&gt;How do I become a graphics programmer? - A small guide from the AMD Game Engineering team&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article gives some advice on how to get started with graphics programming&lt;/li&gt;
&lt;li&gt;discusses the complexity of different graphics APIs&lt;/li&gt;
&lt;li&gt;additionally provides a list of tutorials/blogs and courses that provide a good starting point&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-315/GpuOpen.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231125065144/https://gpuopen.com/learn/how_do_you_become_a_graphics_programmer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jendrikillner.com/post/reading-list/&#34; target=&#34;_blank&#34; id=&#34;(Graphics) Programming Resource List&#34;&gt;(Graphics) Programming Resource List&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a start of a collection of books and resources for (graphics) engine programmers that I recommend&lt;/li&gt;
&lt;li&gt;covering mathematics, engine architecture, graphics programming, collision detection, software design, as well as knowledge organization&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-315/book-covers.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231204022845/https://www.jendrikillner.com/post/reading-list/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/phi&#34; target=&#34;_blank&#34; id=&#34;GM Shaders Mini: Phi&#34;&gt;GM Shaders Mini: Phi&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents Phi and the Golden Angle&lt;/li&gt;
&lt;li&gt;shows how to use these numbers for a point distribution in a rectangle as well as a disk&lt;/li&gt;
&lt;li&gt;provides a shader toy example to present the effect when using blur kernels&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-315/scattering-points.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231127015949/https://mini.gmshaders.com/p/phi&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://apply.workable.com/ndreams/j/7EEC62140E/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Principal Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Remote, United Kingdom&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Studio Elevation are re-establishing the boundaries of VR. We’re looking for a talented Principal Graphics Programmer to help us explore, create, and deliver world-leading innovation in software and VR hardware. Become a key member of Elevation, pioneering AAA, remote first process and crafting a new generation of VR development to bring core VR games to fruition.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_nDreams_2021.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;nDreams_week_315&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2023/11/25/interpolating-color-image-histograms-using-sliced-optimal-transport/&#34; target=&#34;_blank&#34; id=&#34;Interpolating Color Image Histograms Using Sliced Optimal Transport&#34;&gt;Interpolating Color Image Histograms Using Sliced Optimal Transport&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a visual explanation of what an optimal transport problem is&lt;/li&gt;
&lt;li&gt;presents how the problem can be solved a lot simpler in 1D&lt;/li&gt;
&lt;li&gt;extends on this insight to present how a multi-dimensional problem can be sliced and approximated in multiple 1D steps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-315/ot2d.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231127020827/https://blog.demofox.org/2023/11/25/interpolating-color-image-histograms-using-sliced-optimal-transport/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://toji.dev/webgpu-best-practices/render-bundles.html&#34; target=&#34;_blank&#34; id=&#34;WebGPU Render Bundle best practices&#34;&gt;WebGPU Render Bundle best practices&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes the concept of render-bundles and how they can be used to reduce CPU overhead&lt;/li&gt;
&lt;li&gt;presents what changes are backed into the bundle and how updating referenced resources enables flexibility beyond static scenes&lt;/li&gt;
&lt;li&gt;code examples and internals are discussed in WebGPU terms but apply to other APIs as well&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-315/web-gpu-submit.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231127020744/https://toji.dev/webgpu-best-practices/render-bundles.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/andrewwillmott/sh-lib&#34; target=&#34;_blank&#34; id=&#34;A library for creating and manipulating spherical and zonal harmonics.&#34;&gt;A library for creating and manipulating spherical and zonal harmonics.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The author updated his library for spherical harmonics and zonal harmonics&lt;/li&gt;
&lt;li&gt;added GLSL shader variation and shader toy&lt;/li&gt;
&lt;li&gt;additionally, the update fixed several bugs and made improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-315/ShaderSH.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231127020102/https://github.com/andrewwillmott/sh-lib&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gfx-rs.github.io/2023/11/24/arcanization.html&#34; target=&#34;_blank&#34; id=&#34;Improved Multithreading in wgpu - Arcanization Lands on Trunk&#34;&gt;Improved Multithreading in wgpu - Arcanization Lands on Trunk&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a look into the internals of the gfx-rs wgpu implementation&lt;/li&gt;
&lt;li&gt;demonstrates the limitations of the implementation in terms of multithreaded uses&lt;/li&gt;
&lt;li&gt;shows what changes were made to reduce lock-contention and how the implementation might change in the future further&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-315/webgpu-arcanization-after.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231125000506/https://gfx-rs.github.io/2023/11/24/arcanization.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shadertoyunofficial.wordpress.com/2023/11/26/performance-tricks/&#34; target=&#34;_blank&#34; id=&#34;Performance tricks&#34;&gt;Performance tricks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;short blog post lists a couple of tricks to use when writing shaders for higher performance&lt;/li&gt;
&lt;li&gt;additionally provides a small trick on how to reuse data between iterations when using shaderToy&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-315/shadertoy.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231127021413/https://shadertoyunofficial.wordpress.com/2023/11/26/performance-tricks/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/unlocking-gpu-intrinsics-in-hlsl/&#34; target=&#34;_blank&#34; id=&#34;Unlocking GPU Intrinsics in HLSL&#34;&gt;Unlocking GPU Intrinsics in HLSL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post shows how to use Nvidia-specific intrinsics with D3D11 and D3D12&lt;/li&gt;
&lt;li&gt;how to use them from shaders and how to verify that the hardware supports it&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-315/ShaderIntrinsics.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231127015539/https://developer.nvidia.com/blog/unlocking-gpu-intrinsics-in-hlsl/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://play.google.com/store/apps/developer?id=Piggybank+Software&#34; target=&#34;_blank&#34;&gt;Denis Gladkiy&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 314  -  November 19th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-314/</link>
      <pubDate>Sun, 19 Nov 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-314/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wickedengine.net/2023/11/16/dynamic-vertex-formats/&#34; target=&#34;_blank&#34; id=&#34;Dynamic vertex formats&#34;&gt;Dynamic vertex formats&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a couple of methods that can be used to read vertex information from shaders&lt;/li&gt;
&lt;li&gt;shows the more flexible approaches enabled by Vulkan/D3D12&lt;/li&gt;
&lt;li&gt;presents how more modern approaches allow data quantization&lt;/li&gt;
&lt;li&gt;shows the effect of different quantization formats on precision and how to choose which one to use&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-314/skinning_precision.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231117073746/https://wickedengine.net/2023/11/16/dynamic-vertex-formats/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lukaskalbertodt.github.io/2023/11/18/tiled-soft-shadow-volumes.html&#34; target=&#34;_blank&#34; id=&#34;Tiled per-triangle soft shadow volumes&#34;&gt;Tiled per-triangle soft shadow volumes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses an approach for the calculation of sun-soft shadows&lt;/li&gt;
&lt;li&gt;the solution uses a 16x16 software rasterize per fragment to establish occlusion&lt;/li&gt;
&lt;li&gt;presents performance numbers, limitations as well as possible improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-314/branching-tree-soft-shadows.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231119123358/https://lukaskalbertodt.github.io/2023/11/18/tiled-soft-shadow-volumes.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=9HO1dl0zcxg&#34; target=&#34;_blank&#34; id=&#34;[video] Optimize Your Meshes!&#34;&gt;[video] Optimize Your Meshes!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents how to use Mesh Optimizer to optimize meshes for faster rasterization&lt;/li&gt;
&lt;li&gt;shows five different types of optimizations (duplicated vertices, vertex cache, overdraw, vertex buffer optimization, as well as draw simplification)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-314/simplified_mesh.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://i3dsymposium.org/2024/cfp.html&#34; target=&#34;_blank&#34; id=&#34;Interactive 3D Graphics and Games - Call for Participation&#34;&gt;Interactive 3D Graphics and Games - Call for Participation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The I3D conference for 2024 is looking for papers&lt;/li&gt;
&lt;li&gt;the page lists important dates and the submission process&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-314/i3d_banner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231120010348/https://i3dsymposium.org/2024/cfp.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/matrix&#34; target=&#34;_blank&#34; id=&#34;GM Shaders Mini: The Matrix&#34;&gt;GM Shaders Mini: The Matrix&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial provides a brief overview of matrix operations&lt;/li&gt;
&lt;li&gt;covers matrix types, how to fill it with data, and how to express different operations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-314/matrix_multi.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.li/aE8IO&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.dove.com/us/en/stories/campaigns/code-my-crown.html&#34; target=&#34;_blank&#34; id=&#34;Changing the game for Black hair &#34;&gt;Changing the game for Black hair &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the guide provides a collection of reference materials for different black hairstyles and advice for improving the look&lt;/li&gt;
&lt;li&gt;GitHub provides reference images, textures, and 3D meshes for the presented hairstyles&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-314/black_hair.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://github.com/dove-us/code-my-crown&#34; style=&#34;color:white;&#34;&gt;github &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20231120010440/https://github.com/dove-us/code-my-crown&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231118192119/https://www.dove.com/us/en/stories/campaigns/code-my-crown.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=FEbpBZu_bFE&#34; target=&#34;_blank&#34; id=&#34;[video] code.talks 2023 - Making pretty things with code: Getting started as Technical Artist&#34;&gt;[video] code.talks 2023 - Making pretty things with code: Getting started as Technical Artist&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk presents an insight into the job of a technical artist&lt;/li&gt;
&lt;li&gt;covers what TAs tend to work on, what they need to know, and how to learn&lt;/li&gt;
&lt;li&gt;additionally covers how to get started on the journey of becoming a technical artist&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-314/tech_art_gettig_started.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/unreal-engine-performance-guide/&#34; target=&#34;_blank&#34; id=&#34;AMD - UE - Performance guide&#34;&gt;AMD - UE - Performance guide&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD released a performance guide that helps developers with profiling work when using UE&lt;/li&gt;
&lt;li&gt;covers command line options for predictable results, how to create test cases, and enable profiling tool support&lt;/li&gt;
&lt;li&gt;provides some pointers for getting started with profiling for systems such as Nanite, Lumen, and upscaling&lt;/li&gt;
&lt;li&gt;additionally provides practical examples to showcase the effect of the optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-314/unreal_perf_guide.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231120010538/https://gpuopen.com/learn/unreal-engine-performance-guide/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://lesleylai.info&#34; target=&#34;_blank&#34;&gt;Lesley Lai&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 313  -  November 12th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-313/</link>
      <pubDate>Sun, 12 Nov 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-313/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pbr-book.org/4ed/contents&#34; target=&#34;_blank&#34; id=&#34;Physically Based Rendering: Fourth Edition&#34;&gt;Physically Based Rendering: Fourth Edition&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the 4th edition of the Physically Based Rendering has been released to read on the web for free&lt;/li&gt;
&lt;li&gt;the book teaches both the mathematical theory and the practical implementation of a photorealistic rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-313/pbr-4th-edition.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231106211823/https://pbr-book.org/4ed/contents&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-intrinsics/&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: Intrinsics&#34;&gt;Advanced API Performance: Intrinsics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a brief blog post that describes what advantages Wave intrinsics can have&lt;/li&gt;
&lt;li&gt;advises on group sizes and how they can affect code generation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-313/Advanced-API-series.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231113042020/https://developer.nvidia.com/blog/advanced-api-performance-intrinsics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1772_secrets_of_direct3d_12_do_rtv_and_dsv_descriptors_make_any_sense&#34; target=&#34;_blank&#34; id=&#34;Secrets of Direct3D 12: Do RTV and DSV descriptors make any sense?&#34;&gt;Secrets of Direct3D 12: Do RTV and DSV descriptors make any sense?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the way D3D12 deals with resource descriptors&lt;/li&gt;
&lt;li&gt;presents how shaders use the RDNA2 instructions use the descriptor when sampling&lt;/li&gt;
&lt;li&gt;from there, shows how Render/Depth targets are different and only used from the CPU side&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-313/d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231113042153/https://asawicki.info/news_1772_secrets_of_direct3d_12_do_rtv_and_dsv_descriptors_make_any_sense&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.computerenhance.com/p/intuiting-latency-and-throughput&#34; target=&#34;_blank&#34; id=&#34;Intuiting Latency and Throughput&#34;&gt;Intuiting Latency and Throughput&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video of the Performance-Aware Programming series that presents in real-world terms latency, throughput, and dependency chains&lt;/li&gt;
&lt;li&gt;aims to develop the intuition of these concepts by explaining the process of doing laundry and showing that the same fundamental ideas apply to accelerate chores&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-313/optimization-latency.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231110201704/https://www.computerenhance.com/p/intuiting-latency-and-throughput&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.apple.com/videos/play/tech-talks/111375&#34; target=&#34;_blank&#34; id=&#34;Explore GPU advancements in M3 and A17 Pro&#34;&gt;Explore GPU advancements in M3 and A17 Pro&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents an overview of the hardware changes in new Apple hardware generations&lt;/li&gt;
&lt;li&gt;discusses how new hardware features enable better hardware utilization through dynamic shader register usage&lt;/li&gt;
&lt;li&gt;additionally covers the updates to the hardware raytracing capabilities&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-313/dynamic_shader_registers.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231112092030/https://developer.apple.com/videos/play/tech-talks/111375/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.apple.com/videos/play/tech-talks/111374&#34; target=&#34;_blank&#34; id=&#34;Discover new Metal profiling tools for M3 and A17 Pro&#34;&gt;Discover new Metal profiling tools for M3 and A17 Pro&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video discusses updates to the profiling capabilities of hardware/software updates&lt;/li&gt;
&lt;li&gt;presents new views that visualize screen space costs and allow better visualization of hardware counters&lt;/li&gt;
&lt;li&gt;explains how the new capabilities allow performance issues to be identified with examples&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-313/occupancy.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231109213413/https://developer.apple.com/videos/play/tech-talks/111374&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.paavo.me/cities-skylines-2-performance&#34; target=&#34;_blank&#34; id=&#34;Why Cities: Skylines 2 performs poorly&#34;&gt;Why Cities: Skylines 2 performs poorly&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a breakdown of the GPU scene rendering of Cities: Skylines 2&lt;/li&gt;
&lt;li&gt;presents how the scene is drawn and points out performance optimization issues&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-313/cs2_main_pass.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231112071249/https://blog.paavo.me/cities-skylines-2-performance/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.rustadventure.dev/extending-materials-in-bevy-0-12-with-materialextension&#34; target=&#34;_blank&#34; id=&#34;Extending Materials in Bevy 0.12 with MaterialExtension&#34;&gt;Extending Materials in Bevy 0.12 with MaterialExtension&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents how to extend the generic bevy rendering material to support custom effects&lt;/li&gt;
&lt;li&gt;shows the process in two examples&lt;/li&gt;
&lt;li&gt;covers the shader changes, how to bind custom data, and how to use the newly defined material&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-313/bevvy_dissolve_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231113042421/https://www.rustadventure.dev/extending-materials-in-bevy-0-12-with-materialextension&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=bp7REZBV4P4&#34; target=&#34;_blank&#34; id=&#34;[video] How do Major Video Games Render Grass?&#34;&gt;[video] How do Major Video Games Render Grass?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an overview of how Ghost of Tsushima rendered grass&lt;/li&gt;
&lt;li&gt;presents the process of implementing the rendering step by step inspired by the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-313/grass_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://advances.realtimerendering.com/s2023/SIGGRAPH2023-Advances-The-Rendering-of-The-Callisto-Protocol-JimenezPetersen.pptx&#34; target=&#34;_blank&#34; id=&#34;[pptx] The Rendering of The Callisto Protocol&#34;&gt;[pptx] The Rendering of The Callisto Protocol&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the slides for the advances of rendering presentation have been released&lt;/li&gt;
&lt;li&gt;proposes a novel approach for BRDF authoring against photograph references&lt;/li&gt;
&lt;li&gt;covering how to develop the main character shading model and validate the results&lt;/li&gt;
&lt;li&gt;additionally covers raytracing reflections, transmissions, and related optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-313/CallistoProtocol.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231113042343/https://advances.realtimerendering.com/s2023/SIGGRAPH2023-Advances-The-Rendering-of-The-Callisto-Protocol-JimenezPetersen.pptx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/gmodarelli&#34; target=&#34;_blank&#34;&gt;Giuseppe Modarelli&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 312  -  November 5th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-312/</link>
      <pubDate>Sun, 05 Nov 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-312/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/nvpro-samples/vk_displacement_micromaps&#34; target=&#34;_blank&#34; id=&#34; NVIDIA Micro-Mesh Vulkan Sample&#34;&gt; NVIDIA Micro-Mesh Vulkan Sample&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Nvidia released a sample that explains how to render Micro-Mesh using both the Vulkan extension and classical compute shaders&lt;/li&gt;
&lt;li&gt;presents how to read the necessary data all the way to render it&lt;/li&gt;
&lt;li&gt;shows how to rasterize and ray trace the data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-312/micromesh.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231105224857/https://github.com/nvpro-samples/vk_displacement_micromaps&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.aswf.io/blog/openpbr-v0-2-now-publicly-available&#34; target=&#34;_blank&#34; id=&#34;OpenPBR v0.2 Now Publicly Available&#34;&gt;OpenPBR v0.2 Now Publicly Available&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes the first public release of the Open Physically-Based Rendering model&lt;/li&gt;
&lt;li&gt;the model is built upon MaterialX by Adobe and Autodesk&lt;/li&gt;
&lt;li&gt;the early release that is looking for feedback from the community before the final release in 2024&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-312/OpenPBR.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231105225607/https://www.aswf.io/blog/openpbr-v0-2-now-publicly-available/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.maximeheckel.com/posts/real-time-cloudscapes-with-volumetric-raymarching/&#34; target=&#34;_blank&#34; id=&#34;Real-time dreamy Cloudscapes with Volumetric Raymarching&#34;&gt;Real-time dreamy Cloudscapes with Volumetric Raymarching&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the story of the development of a cloud shader that uses raymarching to render a cloud space&lt;/li&gt;
&lt;li&gt;starts with raytracing, and the reformation of tracing density as the starting point&lt;/li&gt;
&lt;li&gt;from there, expand the example step by step to implement more advanced capabilities&lt;/li&gt;
&lt;li&gt;all intermediate stages are presented as interactive examples&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-312/cloud-phase-after.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231105004419/https://blog.maximeheckel.com/posts/real-time-cloudscapes-with-volumetric-raymarching/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/GPUPolynomialRoots.html&#34; target=&#34;_blank&#34; id=&#34;Finding Real Polynomial Roots on GPUs&#34;&gt;Finding Real Polynomial Roots on GPUs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the implementation details of an efficient method to compute roots of Polynomial functions with high degrees&lt;/li&gt;
&lt;li&gt;presents an overview of the underlying method (Bracketed Newton bisection) and the implementation issues related to performance and precisions&lt;/li&gt;
&lt;li&gt;shows how to use Nvidia&amp;rsquo;s Nsight to identify the performance issues and how to resolve the register spilling problem to improve performance significantly&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-312/SHGlyph8.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231105230501/https://momentsingraphics.de/GPUPolynomialRoots.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-2310-30&#34; target=&#34;_blank&#34; id=&#34;PIX 2310.30: a faster PIX with many raytracing &amp;#43; other improvements&#34;&gt;PIX 2310.30: a faster PIX with many raytracing &amp;#43; other improvements&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses the changes in the latest significant PIX release&lt;/li&gt;
&lt;li&gt;improved application performance, vastly improved raytracing debugging capabilities, and much more&lt;/li&gt;
&lt;li&gt;also lists breaking changes introduced in the accompanying WinPixEventRuntime&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-312/DxrInvocations.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231105230804/https://devblogs.microsoft.com/pix/pix-2310-30/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=tXfwvohROPA&#34; target=&#34;_blank&#34; id=&#34;[video] Alan Wake 2 PC Path Tracing: The Next Level In Visual Fidelity?&#34;&gt;[video] Alan Wake 2 PC Path Tracing: The Next Level In Visual Fidelity?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows the visual fidelity of the PC version of Alan Wake 2&lt;/li&gt;
&lt;li&gt;presents how the different levels of raytracing affect the visual results&lt;/li&gt;
&lt;li&gt;contains many insights into what limitations can be resolved with raytracing and what can still be improved&lt;/li&gt;
&lt;li&gt;additionally presents a brief look at the DSSL upsampling logic being used&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-312/alanwake2_rt.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=9dr-tRQzij4&#34; target=&#34;_blank&#34; id=&#34;[video] How Are Games Rendering Fur?&#34;&gt;[video] How Are Games Rendering Fur?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video discusses the nature of hair and the aspects that make it a complex topic to reproduce&lt;/li&gt;
&lt;li&gt;presents how hair can be represented as shells and builds up the technique step by step&lt;/li&gt;
&lt;li&gt;additionally presents what issues the technique has and workarounds to reduce the visual impact of the limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-312/shell_texturing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=cFHX5gSMjTs&#34; target=&#34;_blank&#34; id=&#34;[video] OpenGL [Episode 30] [Theory] The View Matrix&#34;&gt;[video] OpenGL [Episode 30] [Theory] The View Matrix&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a beginner-level view of how a camera orientation can be represented and transform vertices from the 3D world onto the screen&lt;/li&gt;
&lt;li&gt;explains the concept in OpenGL terms and shows the necessary library calls to create the matrix&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-312/view_space.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://atyuwen.github.io/&#34; target=&#34;_blank&#34;&gt;atyuwen&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 311  -  October 29nd, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-311/</link>
      <pubDate>Sun, 29 Oct 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-311/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=P8-oGG2d1RY&#34; target=&#34;_blank&#34; id=&#34;[video] Animated Flag Part 2 - Advanced Materials - Episode 27&#34;&gt;[video] Animated Flag Part 2 - Advanced Materials - Episode 27&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 2 of the animated flag series extends the effect from the previous video&lt;/li&gt;
&lt;li&gt;adds support for allowing the flag to be rotated&lt;/li&gt;
&lt;li&gt;additionally shows how to recalculate the normals for improved lighting&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-311/flag_shader_part2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=htYh-Tq7ZBI&#34; target=&#34;_blank&#34; id=&#34;[video] Why can&amp;#39;t you multiply vectors?&#34;&gt;[video] Why can&amp;#39;t you multiply vectors?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk presents an overview of linear algebra&lt;/li&gt;
&lt;li&gt;covering topics from the basics of vectors, complex numbers, operations between vectors, and more&lt;/li&gt;
&lt;li&gt;shows how intuition developed connects to geometric algebra&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-311/linear_vector_math.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ea.com/seed/news/machine-learning-game-devs-part-1&#34; target=&#34;_blank&#34; id=&#34;Machine Learning for Game Devs: Part 1&#34;&gt;Machine Learning for Game Devs: Part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post introduces a new series about machine learning that aims to connect different disciplines&lt;/li&gt;
&lt;li&gt;provides an introduction to machine learning and shows how it can be expressed in shader code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-311/seed-ml-for-gamedev-pt1-multilayer-perceptron.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231028131357/https://www.ea.com/seed/news/machine-learning-game-devs-part-1&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gaukler.github.io/2023/10/21/study-notes-on-the-marschner-hair-shading-model.html&#34; target=&#34;_blank&#34; id=&#34;Study Notes On The Marschner Hair Shading Model&#34;&gt;Study Notes On The Marschner Hair Shading Model&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes the The Marschner Hair Shading Model&lt;/li&gt;
&lt;li&gt;focuses on high-level information and develops an intuition for the model&lt;/li&gt;
&lt;li&gt;additionally provides corrections and extensions for ideas from the original paper&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-311/caustic_hair_scatter.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231030071548/https://gaukler.github.io/2023/10/21/study-notes-on-the-marschner-hair-shading-model.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/tonemaps&#34; target=&#34;_blank&#34; id=&#34;GM Shaders Mini: Tonemaps&#34;&gt;GM Shaders Mini: Tonemaps&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the importance of tone mapping to reduce color clamping&lt;/li&gt;
&lt;li&gt;shows visual examples of different tone mapping implementations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-311/tonemapping.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231030071708/https://mini.gmshaders.com/p/tonemaps&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/efficient-cuda-debugging-memory-initialization-and-thread-synchronization-with-nvidia-compute-sanitizer/&#34; target=&#34;_blank&#34; id=&#34;Efficient CUDA Debugging: Memory Initialization and Thread Synchronization with NVIDIA Compute Sanitizer&#34;&gt;Efficient CUDA Debugging: Memory Initialization and Thread Synchronization with NVIDIA Compute Sanitizer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the types of checks available by the NVIDIA Compute Sanitizer&lt;/li&gt;
&lt;li&gt;shows how to use sanitizers to detect  memory access errors,  uninitialized device global memory access, thread synchronization hazard detection, and more&lt;/li&gt;
&lt;li&gt;each example is provided with source code to the issue and how the sanitizer helps to detect it&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-311/debugging-cuda.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231030071808/https://developer.nvidia.com/blog/efficient-cuda-debugging-memory-initialization-and-thread-synchronization-with-nvidia-compute-sanitizer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-descriptors/&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: Descriptors&#34;&gt;Advanced API Performance: Descriptors&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a collection of recommendations for descriptor usage on Nividia using D3D12 and Vulkan&lt;/li&gt;
&lt;li&gt;discusses what are best practices, what should be avoided, as well as pitfalls to avoid&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-311/Advanced-API-series.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231030071806/https://developer.nvidia.com/blog/advanced-api-performance-descriptors/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=008B6FHGpfI&#34; target=&#34;_blank&#34; id=&#34;[video] RE:2023 Shader Translator: Implementation and Use&#34;&gt;[video] RE:2023 Shader Translator: Implementation and Use&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents how shaders are translated between HLSL and the target shading languages&lt;/li&gt;
&lt;li&gt;explains the limitations of existing solutions and why a custom solution was developed&lt;/li&gt;
&lt;li&gt;shows how DXC is used as a frontend and the steps necessary to convert to GLSL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-311/shader_translator.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=7XWdiktsVyo&#34; target=&#34;_blank&#34; id=&#34;[video] RE:2023 Is Rendering Still Evolving?&#34;&gt;[video] RE:2023 Is Rendering Still Evolving?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents an overview of the  RE ENGINE graphics stack&lt;/li&gt;
&lt;li&gt;shows how shaders/material are authored, how raytracing has been deeply integrated and optimized&lt;/li&gt;
&lt;li&gt;additionally presents how bindless allowed reduced CPU overhead and shows limitations, risks, and GPU performance impact of the approach&lt;/li&gt;
&lt;li&gt;briefly covers mesh shaders and visibility buffers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-311/reducer_cpu_overhead.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://metalbyexample.com&#34; target=&#34;_blank&#34;&gt;Warren Moore&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 310  -  October 22nd, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-310/</link>
      <pubDate>Sun, 22 Oct 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-310/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bgolus.medium.com/the-best-darn-grid-shader-yet-727f9278b9d8&#34; target=&#34;_blank&#34; id=&#34;The Best Darn Grid Shader (Yet)&#34;&gt;The Best Darn Grid Shader (Yet)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the in-depth article presents how to render a high-quality grid from a shader&lt;/li&gt;
&lt;li&gt;presents what issues occur when rendering lines commonly&lt;/li&gt;
&lt;li&gt;shows how to render anti-aliased lines that are free of these common artifacts&lt;/li&gt;
&lt;li&gt;code is provided for unreal and unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-310/grid_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231022000707/https://bgolus.medium.com/the-best-darn-grid-shader-yet-727f9278b9d8&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.tomlooman.com/psocaching-unreal-engine&#34; target=&#34;_blank&#34; id=&#34;Setting up PSO Precaching &amp;amp; Bundled PSOs for Unreal Engine&#34;&gt;Setting up PSO Precaching &amp;amp; Bundled PSOs for Unreal Engine&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the methods available in UE5 to deal with Pipeline loading&lt;/li&gt;
&lt;li&gt;presents timings to show the effect of lacking PSO pre-loading&lt;/li&gt;
&lt;li&gt;discusses the new methods available and how to use them&lt;/li&gt;
&lt;li&gt;additionally presents what is still missing for a 100% fluent player experience&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-310/psocaching_hitches.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231019113854/https://www.tomlooman.com/psocaching-unreal-engine/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ZV2YrrKzs9c&#34; target=&#34;_blank&#34; id=&#34;[video] Animated Flag - Advanced Materials - Episode 26&#34;&gt;[video] Animated Flag - Advanced Materials - Episode 26&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows how to animate a flag using vertex shaders&lt;/li&gt;
&lt;li&gt;step-by-step presents how to develop the effect using Unity and Unreal Engine&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-310/animatedFlag.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/download/publications/Bounded_VNDF_Sampling_for_Smith-GGX_Reflections.pdf&#34; target=&#34;_blank&#34; id=&#34;[pdf] Bounded VNDF Sampling for Smith–GGX Reflections&#34;&gt;[pdf] Bounded VNDF Sampling for Smith–GGX Reflections&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a method to reduce the amount of rejected rays for tracing rays following a visible normal distribution function (VNDF)&lt;/li&gt;
&lt;li&gt;the unbiased method improves variance for highly rough and low-anisotropy surfaces&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-310/vndf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231024193543/https://gpuopen.com/download/publications/Bounded_VNDF_Sampling_for_Smith-GGX_Reflections.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lousodrome.net/blog/light/2023/10/21/the-white-furnace-test/&#34; target=&#34;_blank&#34; id=&#34;The white furnace test&#34;&gt;The white furnace test&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the white furnace test&lt;/li&gt;
&lt;li&gt;discusses what the purpose of the test is and provides a real-life example of the behavior&lt;/li&gt;
&lt;li&gt;additionally provides a ShaderToy example of the test and also demonstrates how incorrect sampling can be caught using the test&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-310/furnacetest.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231024091201/https://lousodrome.net/blog/light/2023/10/21/the-white-furnace-test/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cyanilux.com/tutorials/spellbook-breakdown/&#34; target=&#34;_blank&#34; id=&#34;Book (w/ Turnable Pages) Breakdown&#34;&gt;Book (w/ Turnable Pages) Breakdown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents how to set up a book with turnable pages&lt;/li&gt;
&lt;li&gt;shows how to create the art assets and shaders to enable the effect&lt;/li&gt;
&lt;li&gt;implementation is shown using unity visual shader graph&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-310/foldable_book.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231024193706/https://www.cyanilux.com/tutorials/spellbook-breakdown/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1771_doing_dynamic_resolution_scaling_watch_out_for_texture_memory_size&#34; target=&#34;_blank&#34; id=&#34;Doing dynamic resolution scaling? Watch out for texture memory size!&#34;&gt;Doing dynamic resolution scaling? Watch out for texture memory size!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses dynamic resolution scaling and its effect on memory usage&lt;/li&gt;
&lt;li&gt;presents findings of texture sizes/formats on Nvidia, AMD, and Intel GPUs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-310/intel_arc_memory_usage.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231024193905/https://asawicki.info/news_1771_doing_dynamic_resolution_scaling_watch_out_for_texture_memory_size&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zero-radiance.github.io/post/line-lights/&#34; target=&#34;_blank&#34; id=&#34;New Implementation of LTC Line Lights&#34;&gt;New Implementation of LTC Line Lights&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents three issues with linearly transformed cosine (LTC) Line Lights&lt;/li&gt;
&lt;li&gt;presents an improved routine that reduces the required usage of arc tangent calculations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-310/ltc_lines.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231024193828/https://zero-radiance.github.io/post/line-lights/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/differentiable-slang-a-shading-language-for-renderers-that-learn/&#34; target=&#34;_blank&#34; id=&#34;Designing Slang’s automatic differentiation&#34;&gt;Designing Slang’s automatic differentiation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post introduces the new automatic differentiation feature for the slang shading language&lt;/li&gt;
&lt;li&gt;provides an overview of how it&amp;rsquo;s integrated into the language&lt;/li&gt;
&lt;li&gt;presents a comparison between tensor and shading languages&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-310/propagated-derivatives-zero-day-scene.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231024083142/https://developer.nvidia.com/blog/differentiable-slang-a-shading-language-for-renderers-that-learn/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://floooh.github.io/2023/10/16/sokol-webgpu.html&#34; target=&#34;_blank&#34; id=&#34;The new sokol-gfx WebGPU backend&#34;&gt;The new sokol-gfx WebGPU backend&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses the implementation of WebGPU into the sokol-gfx library&lt;/li&gt;
&lt;li&gt;shows what issues had to be solved and how the author resolved them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-310/sokol_webgpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231020005555/https://floooh.github.io/2023/10/16/sokol-webgpu.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=4MvX5VeQWKA&#34; target=&#34;_blank&#34; id=&#34;[video] Introduction To Tessellation in OpenGL&#34;&gt;[video] Introduction To Tessellation in OpenGL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the tesselation pipeline&lt;/li&gt;
&lt;li&gt;explains how it fits into the rendering pipeline and what possibilities it enabled&lt;/li&gt;
&lt;li&gt;presents how to render cubic bezier splies using tesselation&lt;/li&gt;
&lt;li&gt;implementation is shown using OpenGL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-310/OpenGL_tesselation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://metalbyexample.com&#34; target=&#34;_blank&#34;&gt;Warren Moore&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 309  -  October 15th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-309/</link>
      <pubDate>Sun, 15 Oct 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-309/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphics.cs.utah.edu/research/projects/ray-tracing-hw-adaptive-lod&#34; target=&#34;_blank&#34; id=&#34;Locally-Adaptive LOD for Hardware-Accelerated Ray Tracing&#34;&gt;Locally-Adaptive LOD for Hardware-Accelerated Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a level of detail technique for triangular meshes for use with ray tracing workloads&lt;/li&gt;
&lt;li&gt;proposes a data structure for hierarchically representing triangle meshes, allowing localized decisions for the desired mesh resolution per ray&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-309/bunny_tri_adaptive_lod.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231016181137/https://graphics.cs.utah.edu/research/projects/ray-tracing-hw-adaptive-lod/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/work_graphs_learning_sample&#34; target=&#34;_blank&#34; id=&#34;Work graphs API – compute rasterizer learning sample&#34;&gt;Work graphs API – compute rasterizer learning sample&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post shows how to implement a scan-line rasterizer using D3D12 work graphs&lt;/li&gt;
&lt;li&gt;presents how to implement the rasterization using D3D12 work graphs, showing the C++ and HLSL implementation&lt;/li&gt;
&lt;li&gt;shows how to split work between GPU threads and how it affects performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-309/work_graphs_rasterizer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231015075819/https://gpuopen.com/learn/work_graphs_learning_sample/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@saeid.gholizade/voxy-tool-development-so-far-ec41611ca9e&#34; target=&#34;_blank&#34; id=&#34;Voxy tool development so far...&#34;&gt;Voxy tool development so far...&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the author&amp;rsquo;s development of a real-time voxel rendering and authoring system in Unreal Engine&lt;/li&gt;
&lt;li&gt;covers the data structure usage, compute shader implementation as well as issues transition between UE4 and UE5&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-309/voxy_castle.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231016181518/https://medium.com/@saeid.gholizade/voxy-tool-development-so-far-ec41611ca9e&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-debugging&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: Debugging&#34;&gt;Advanced API Performance: Debugging&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses advice to help debug issues with GPU workloads&lt;/li&gt;
&lt;li&gt;covers how to track GPU progress, get debugging information from shaders, available tools, etc&lt;/li&gt;
&lt;li&gt;additionally provides a list of steps to follow when tracking down issues&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-309/Advanced-API-series.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231016181823/https://developer.nvidia.com/blog/advanced-api-performance-debugging&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.alanzucconi.com/2023/07/06/creating-4d-objects&#34; target=&#34;_blank&#34; id=&#34;Unity 4D #4: Creating 4D Objects&#34;&gt;Unity 4D #4: Creating 4D Objects&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article covers how to generate a 4D hypersphere&lt;/li&gt;
&lt;li&gt;discusses multiple generation techniques&lt;/li&gt;
&lt;li&gt;presents how to sample 4D noise uniformly&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-309/4d_sphere.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231012095440/https://www.alanzucconi.com/2023/07/06/creating-4d-objects/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://martinfullerblog.wordpress.com/2023/10/11/dynamic-resolution-scaling-drs-implementation-best-practice/&#34; target=&#34;_blank&#34; id=&#34;Dynamic Resolution Scaling (DRS) Implementation Best Practice&#34;&gt;Dynamic Resolution Scaling (DRS) Implementation Best Practice&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses ten implementation details to consider when working on a Dynamic Resolution Scaling (DRS) solution&lt;/li&gt;
&lt;li&gt;covering memory handling, resolution choices, effects on frame timing, debugging advice, as well  as UI rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-309/render_target_aliasing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231015123749/https://martinfullerblog.wordpress.com/2023/10/11/dynamic-resolution-scaling-drs-implementation-best-practice/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/vulkan-documentation-just-got-easier&#34; target=&#34;_blank&#34; id=&#34;Vulkan Documentation Just Got Easier!&#34;&gt;Vulkan Documentation Just Got Easier!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post introduces the updated Vulkan documentation website&lt;/li&gt;
&lt;li&gt;it combines the spec, proposals, samples, shader language information, etc., into one place&lt;/li&gt;
&lt;li&gt;the blog post provides the reasoning and an overview of where to find the information&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-309/2023-blog-vulkan-docs-header_1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231014155321/https://www.khronos.org/blog/vulkan-documentation-just-got-easier&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=i4EXZdpVdT0&#34; target=&#34;_blank&#34; id=&#34;[video] Worn-Out LCD Screen Shader - Advanced Materials - Episode 25&#34;&gt;[video] Worn-Out LCD Screen Shader - Advanced Materials - Episode 25&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents how to implement a material effect that simulates an old LCD screen effect&lt;/li&gt;
&lt;li&gt;the effect combines scan lines, vignette fading, flickering, half-tone shading, and flipbook animations&lt;/li&gt;
&lt;li&gt;implementation is shown in Unreal and Unity Visual Scripting&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-309/old_lcd_material.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/rosaliedewinther/master_thesis_traverse_research&#34; target=&#34;_blank&#34; id=&#34;Master Thesis - Volumetric data structures for real-time ray tracing&#34;&gt;Master Thesis - Volumetric data structures for real-time ray tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The master thesis provides an overview of the different trade-offs of volume data structures&lt;/li&gt;
&lt;li&gt;introduces a method for storing density data in block-compressed textures combined with deduplicating homogeneous nodes&lt;/li&gt;
&lt;li&gt;shows how this enables efficient flipbook animations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-309/vdb_data_structure.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231016182909/https://github.com/rosaliedewinther/master_thesis_traverse_research&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://pharr.org/matt&#34; target=&#34;_blank&#34;&gt;Matt Pharr&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 308  -  October 8th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-308/</link>
      <pubDate>Sun, 08 Oct 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-308/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=EBY55VXcKxI&#34; target=&#34;_blank&#34; id=&#34;[video] AMD FSR3 Hands-On: Promising Image Quality, But There Are Problems - DF First Look&#34;&gt;[video] AMD FSR3 Hands-On: Promising Image Quality, But There Are Problems - DF First Look&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an overview of the FSR3 frame generation&lt;/li&gt;
&lt;li&gt;presents the state of FSR related to frame pacing with Vsync and variable refresh rates&lt;/li&gt;
&lt;li&gt;additionally presents the effect on latency and compares against DLSS&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-308/fsr_frame_gen.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cg.tuwien.ac.at/research/publications/2023/SCHUETZ-2023-SIMLOD/SCHUETZ-2023-SIMLOD-paper.pdf&#34; target=&#34;_blank&#34; id=&#34;SimLOD: Simultaneous LOD Generation and Rendering&#34;&gt;SimLOD: Simultaneous LOD Generation and Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a method to incrementally construct a LOD structure for point clouds directly on the GPU and render points as they are still being loaded&lt;/li&gt;
&lt;li&gt;shows how the tree is built, the interaction between CPU and GPU, as well as a look at the performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-308/point_clouds.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231009052415/https://www.cg.tuwien.ac.at/research/publications/2023/SCHUETZ-2023-SIMLOD/SCHUETZ-2023-SIMLOD-paper.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/VMV2023.html&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing Spherical Harmonics Glyphs&#34;&gt;Ray Tracing Spherical Harmonics Glyphs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a new method to render Spherical harmonics glyphs efficiently&lt;/li&gt;
&lt;li&gt;SH glyphs are used to visualize High angular resolution diffusion imaging (HARDI)&lt;/li&gt;
&lt;li&gt;presents how to intersect the rays, calculate bounding boxes, as well as how to apply shadows&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-308/sh_glyphs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231009052438/https://momentsingraphics.de/VMV2023.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.artstation.com/jobs/7OM4&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;C&amp;#43;&amp;#43; Engine Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Auckland, New Zealand&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Grinding Gear Games is seeking a C++ Engine Programmer to work on our in-house engine and tools. Our engine is specific to Path of Exile and attempts to solve the problems uniquely generated by the dynamic gameplay that we support while taking advantage of the opportunities granted by our fixed camera perspective.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_GGG.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;ggg_week_308&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.realtimerendering.com/usd_gltf.html&#34; target=&#34;_blank&#34; id=&#34;USD and glTF Resources Page&#34;&gt;USD and glTF Resources Page&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the website presents a collection of USDs and glTF information&lt;/li&gt;
&lt;li&gt;collection of introduction articles, specification links, as well as supporting tools&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-308/USDLogoLrgWithAlpha.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231009052617/https://www.realtimerendering.com/usd_gltf.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hal.science/hal-04220006&#34; target=&#34;_blank&#34; id=&#34;A Micrograin BSDF Model for the Rendering of Porous Layers&#34;&gt;A Micrograin BSDF Model for the Rendering of Porous Layers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces the concept of micro grains to approximate layered materials&lt;/li&gt;
&lt;li&gt;allows the separation of structural properties from their reflectance properties&lt;/li&gt;
&lt;li&gt;present results, underlying theory, and approximations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-308/micrograins.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231009052654/https://hal.science/hal-04220006&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://acko.net/blog/stable-fiddusion/&#34; target=&#34;_blank&#34; id=&#34;Stable Fiddusion - Frequency-domain blue noise generator&#34;&gt;Stable Fiddusion - Frequency-domain blue noise generator&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the in-depth article discusses noise generation&lt;/li&gt;
&lt;li&gt;presents a generation approach based on generating in the frequency domain&lt;/li&gt;
&lt;li&gt;source code and example app is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-308/noise_gen_app_ui.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231008000758/https://acko.net/blog/stable-fiddusion/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://anki3d.org/gpu-driven-rendering-in-anki-a-high-level-overview&#34; target=&#34;_blank&#34; id=&#34;GPU driven rendering in AnKi: A high level overview&#34;&gt;GPU driven rendering in AnKi: A high level overview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses issues encountered when moving AnKi object visibility onto the GPU&lt;/li&gt;
&lt;li&gt;covers data layout, the command buffer building, as the occlusion techniques used&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-308/anki_gpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231009052812/https://anki3d.org/gpu-driven-rendering-in-anki-a-high-level-overview/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.alanzucconi.com/2023/07/06/rendering-4d-objects/&#34; target=&#34;_blank&#34; id=&#34;Unity 4D #3: Rendering 4D Objects&#34;&gt;Unity 4D #3: Rendering 4D Objects&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This article explains in detail how to render 4D objects in 3D space&lt;/li&gt;
&lt;li&gt;shows orthographic projection, perspective projection and cross-section techniques to visualize 4D objects&lt;/li&gt;
&lt;li&gt;many visualizations and code examples are provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-308/rendering_4d_objects.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231010211836/https://www.alanzucconi.com/2023/07/06/rendering-4d-objects/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://c0de517e.com/006_cubemap_occlusion.htm&#34; target=&#34;_blank&#34; id=&#34;From the archive: Notes on environment lighting occlusion.&#34;&gt;From the archive: Notes on environment lighting occlusion.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses Parallax-corrected cube maps and their related approximations&lt;/li&gt;
&lt;li&gt;discusses issues and limitations of the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-308/occlusion_plot.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231009052927/https://c0de517e.com/006_cubemap_occlusion.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.desmos.com/articles/beta-3d-release/&#34; target=&#34;_blank&#34; id=&#34;Introducing Desmos Studio&amp;#39;s 3D Calculator (Beta)&#34;&gt;Introducing Desmos Studio&amp;#39;s 3D Calculator (Beta)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article introduces that the Desmos calculator now supports 3D visualizations&lt;/li&gt;
&lt;li&gt;contains interactive examples to demonstrate the capabilities&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-308/desmos_3d_plot.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231007003948/https://blog.desmos.com/articles/beta-3d-release/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/vector-spaces&#34; target=&#34;_blank&#34; id=&#34;GM Shaders Mini: Vector Spaces&#34;&gt;GM Shaders Mini: Vector Spaces&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a summary of common spaces found in graphics operations&lt;/li&gt;
&lt;li&gt;covers texture, screen, object, world view as well as Projection Space&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-308/pixel_space.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231009010925/https://mini.gmshaders.com/p/vector-spaces&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/JasperBekkers/&#34; target=&#34;_blank&#34;&gt;Jasper Bekkers&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 307  -  October 1st, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-307/</link>
      <pubDate>Sun, 01 Oct 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-307/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=w_KOSneJCVA&#34; target=&#34;_blank&#34; id=&#34;[video] Sampling of Environment Maps for Image-based Lighting [Shaders Monthly #13]&#34;&gt;[video] Sampling of Environment Maps for Image-based Lighting [Shaders Monthly #13]&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows how to sample texture lighting information stored in environment maps using importance sampling&lt;/li&gt;
&lt;li&gt;shows the underlying math for the different contributing elements&lt;/li&gt;
&lt;li&gt;also presents how to implement the technique using GSN Composer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-307/brdf_importance_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://panthavma.com/articles/shading/toonshading&#34; target=&#34;_blank&#34; id=&#34;Toon Shading Fundamentals - From Cel-Shading to bidirectional toon ramps&#34;&gt;Toon Shading Fundamentals - From Cel-Shading to bidirectional toon ramps&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the basic steps for a toon shading implementation&lt;/li&gt;
&lt;li&gt;provides an overview of the different toon shading techniques&lt;/li&gt;
&lt;li&gt;covers toon ramps, cel-shading, lighting, and extensions such as shading ramps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-307/FaceShading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231002040050/https://panthavma.com/articles/shading/toonshading/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ishaanshah.github.io/risltc/&#34; target=&#34;_blank&#34; id=&#34;Combining Resampled Importance and Projected Solid Angle Samplings for Many Area Light Rendering&#34;&gt;Combining Resampled Importance and Projected Solid Angle Samplings for Many Area Light Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The paper presents a combination of Resampled Importance Sampling (RIS) and Projected Solid Angle Sampling (ProjLTC) for many area lights.&lt;/li&gt;
&lt;li&gt;provides a method of improving the efficiency run-time as RIS with a lower error&lt;/li&gt;
&lt;li&gt;shows the comparison between previous methods&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-307/risltc.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231002040037/https://ishaanshah.github.io/risltc/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/shinjiogaki/shinjiogaki.github.io/blob/master/Nonlinear%20Ray%20Tracing%20for%20Displacement%20and%20Shell%20Mapping.pdf&#34; target=&#34;_blank&#34; id=&#34;Nonlinear Ray Tracing for Displacement and Shell Mapping&#34;&gt;Nonlinear Ray Tracing for Displacement and Shell Mapping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a new approach to perform acceleration structure traversal and
intersection tests against micro triangles texture space&lt;/li&gt;
&lt;li&gt;implementation is using nonlinear rays as degree-2 rational functions&lt;/li&gt;
&lt;li&gt;present performance and memory usage&lt;/li&gt;
&lt;li&gt;additionally discusses the effect of floating point precision&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-307/displacement_shell_mapping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231002040118/https://github.com/shinjiogaki/shinjiogaki.github.io/blob/master/Nonlinear%20Ray%20Tracing%20for%20Displacement%20and%20Shell%20Mapping.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2023/09/27/Making-Gaussian-Splats-more-smaller&#34; target=&#34;_blank&#34; id=&#34;Making Gaussian Splats more smaller&#34;&gt;Making Gaussian Splats more smaller&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog describes how to compress the Gaussian splat SH data by using clusters and color palettes&lt;/li&gt;
&lt;li&gt;shows the effect on memory usage as well as quality&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-307/sh_cluster.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230929105424/https://aras-p.info/blog/2023/09/27/Making-Gaussian-Splats-more-smaller/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://chromium.googlesource.com/chromium/src/&amp;#43;/main/docs/security/research/graphics/webgpu_technical_report.md&#34; target=&#34;_blank&#34; id=&#34;Chrome Graphics as Seen By Attackers&#34;&gt;Chrome Graphics as Seen By Attackers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an in-depth discussion about how WebGPU is implemented within Chrome&lt;/li&gt;
&lt;li&gt;shows how the different implementation layers communicate&lt;/li&gt;
&lt;li&gt;presents a look at bugs found during the research process and possible attack surfaces&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-307/webgpu_chrome.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230929141025/https://chromium.googlesource.com/chromium/src/&amp;#43;/main/docs/security/research/graphics/webgpu_technical_report.md&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.yosoygames.com.ar/wp/2023/09/youre-calculating-framerate-percentiles-wrong/&#34; target=&#34;_blank&#34; id=&#34;You’re calculating framerate percentiles wrong!&#34;&gt;You’re calculating framerate percentiles wrong!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes the importance of considering the total runtime when calculating performance characteristics&lt;/li&gt;
&lt;li&gt;discusses how failing to do so can skew the results towards a more positive conclusion&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-307/percentile_calc.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231002040230/https://www.yosoygames.com.ar/wp/2023/09/youre-calculating-framerate-percentiles-wrong/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/fsr3-in-games-technical-details/&#34; target=&#34;_blank&#34; id=&#34;AMD FSR 3 game integrations out now &amp;#43; more details for developers&#34;&gt;AMD FSR 3 game integrations out now &amp;#43; more details for developers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a brief overview of the FSR algorithm implementation&lt;/li&gt;
&lt;li&gt;discusses how the frame generation interacts with the underlying native APIs as well as the state of the UE5 plugin integration&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-307/fsr3-upscaling-framegeneration.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20231001191905/https://gpuopen.com/fsr3-in-games-technical-details/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://panagiotis.tsiapkolis.com&#34; target=&#34;_blank&#34;&gt;Panagiotis Tsiapkolis&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly  -  Issue 306  -  September 24th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-306/</link>
      <pubDate>Sun, 24 Sep 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-306/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=th1UKU0C3l0&#34; target=&#34;_blank&#34; id=&#34;[video] Game Engine Programming 060.3 - Explaining block compression formats and sRGB color space | C&amp;#43;&amp;#43;&#34;&gt;[video] Game Engine Programming 060.3 - Explaining block compression formats and sRGB color space | C&amp;#43;&amp;#43;&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains BC texture compression&lt;/li&gt;
&lt;li&gt;covers how the compression format works and the differences that exist&lt;/li&gt;
&lt;li&gt;explains guidelines on which format to use for different use cases&lt;/li&gt;
&lt;li&gt;additionally also covers SRGB color space and explains when/how to use it&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-306/bc_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://odedstein.com/projects/reach-for-the-spheres/&#34; target=&#34;_blank&#34; id=&#34;Reach For the Spheres: Tangency-Aware Surface Reconstruction of SDFs&#34;&gt;Reach For the Spheres: Tangency-Aware Surface Reconstruction of SDFs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a new method for the triangle mesh reconstruction from an SDF representation&lt;/li&gt;
&lt;li&gt;The presented method is based on the insight that each SDF sample represents a spherical region&lt;/li&gt;
&lt;li&gt;generates an initial mesh and then shrinks the shell using a gradient flow approach&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-306/sdf_method.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230914202353/https://odedstein.com/projects/reach-for-the-spheres/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jeremyong.com/graphics/2023/09/20/f32-interlocked-min-max-hlsl-part-2&#34; target=&#34;_blank&#34; id=&#34;Interlocked min/max on HLSL single precision floats (Part II)&#34;&gt;Interlocked min/max on HLSL single precision floats (Part II)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents improvements to using floating point atomic operations if all inputs have the same sign&lt;/li&gt;
&lt;li&gt;additionally discusses how half and double floating point numbers might be operated on with uint atomics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-306/floatbit.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230925032117/https://www.jeremyong.com/graphics/2023/09/20/f32-interlocked-min-max-hlsl-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.42yeah.is/rendering/noise/2023/09/23/voronoi.html&#34; target=&#34;_blank&#34; id=&#34;Worley and His Noise (Worley Noise/Voronoi Noise)&#34;&gt;Worley and His Noise (Worley Noise/Voronoi Noise)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to implement Worley/Voronoi noise&lt;/li&gt;
&lt;li&gt;starts with Voronoi shapes and expands to noise&lt;/li&gt;
&lt;li&gt;additionally presents how to animate the noise&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-306/samsungy.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230923152953/https://blog.42yeah.is/rendering/noise/2023/09/23/voronoi.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.chrome.com/blog/from-webgl-to-webgpu&#34; target=&#34;_blank&#34; id=&#34;From WebGL to WebGPU&#34;&gt;From WebGL to WebGPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a set of differences between WebGL and WebGPU&lt;/li&gt;
&lt;li&gt;covers clip space, synchronization, mip-generation, canvas handling, and more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-306/webgl_webgpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230919120417/https://developer.chrome.com/blog/from-webgl-to-webgpu/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/rra_1_3&#34; target=&#34;_blank&#34; id=&#34;Radeon™ Raytracing Analyzer 1.3 is now available&#34;&gt;Radeon™ Raytracing Analyzer 1.3 is now available&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the latest version of the raytracing analyzer adds support for visualizing the rays in the scene&lt;/li&gt;
&lt;li&gt;allows each ray to be visualized, heatmap information, and ray types&lt;/li&gt;
&lt;li&gt;presents how to analyze performance given the provided information&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-306/raytracing_tool.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230925032203/https://gpuopen.com/learn/rra_1_3/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/rmv_1_7/&#34; target=&#34;_blank&#34; id=&#34;Radeon™ Memory Visualizer 1.7 is out now&#34;&gt;Radeon™ Memory Visualizer 1.7 is out now&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the latest edition of the Memory Visualizer adds improved support for resource aliasing&lt;/li&gt;
&lt;li&gt;additionally adds support for post-crash analysis&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-306/memory_aliasing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230922050637/https://gpuopen.com/learn/rmv_1_7/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/rgp_1_16/&#34; target=&#34;_blank&#34; id=&#34;Radeon™ GPU Profiler 1.16 is here!&#34;&gt;Radeon™ GPU Profiler 1.16 is here!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents changes in the latest AMD GPU profiler update&lt;/li&gt;
&lt;li&gt;improved work graph, instruction search, output merger state visualization as well as shader hashes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-306/rgp_isa_search.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230925032337/https://gpuopen.com/learn/rgp_1_16/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://huggingface.co/blog/gaussian-splatting&#34; target=&#34;_blank&#34; id=&#34;Introduction to 3D Gaussian Splatting&#34;&gt;Introduction to 3D Gaussian Splatting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an introduction to the Gaussian Splatting rasterization technique&lt;/li&gt;
&lt;li&gt;discusses the technique, data collection, training as well as downsides of the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-306/points.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230919142443/https://huggingface.co/blog/gaussian-splatting&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 305 - September 17th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-305/</link>
      <pubDate>Sun, 17 Sep 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-305/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.maximeheckel.com/posts/painting-with-math-a-gentle-study-of-raymarching&#34; target=&#34;_blank&#34; id=&#34;Painting with Math: A Gentle Study of Raymarching&#34;&gt;Painting with Math: A Gentle Study of Raymarching&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a visual introduction to Raymarching&lt;/li&gt;
&lt;li&gt;builds up from simple spheres to animated shapes and concludes with more complex terrains&lt;/li&gt;
&lt;li&gt;all examples are provided as javascript and GLSL code examples that are fully live and editable&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-305/raymarching-diffuse_utdrew.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230916133800/https://blog.maximeheckel.com/posts/painting-with-math-a-gentle-study-of-raymarching/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/math1&#34; target=&#34;_blank&#34; id=&#34;GM Shaders Mini: Math&#34;&gt;GM Shaders Mini: Math&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a brief overview of alpha blending and weighted averages&lt;/li&gt;
&lt;li&gt;additionally shows a simple technique to create a perspective effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-305/3d_perspective_emulation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230918033939/https://mini.gmshaders.com/p/math1&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2023/09/13/Making-Gaussian-Splats-smaller&#34; target=&#34;_blank&#34; id=&#34;Making Gaussian Splats smaller&#34;&gt;Making Gaussian Splats smaller&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses how to compress the data for the Gaussian Splats technique for reduced memory usage&lt;/li&gt;
&lt;li&gt;presents how to re-order data for spatial coherence, compressing data relative to a local reference point&lt;/li&gt;
&lt;li&gt;discusses how to compress splat data as textures and the effect of different BC compressions on the visual quality and memory reduction&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-305/GsChunkBoundsMorton.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230915092119/https://aras-p.info/blog/2023/09/13/Making-Gaussian-Splats-smaller/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.altdevarts.com/p/onboarding-floating-point&#34; target=&#34;_blank&#34; id=&#34;Onboarding floating-point&#34;&gt;Onboarding floating-point&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the series of blog posts covers floating points and fixed point representations for numbers&lt;/li&gt;
&lt;li&gt;discusses different representations for numbers, how to estimate precisions and ranges&lt;/li&gt;
&lt;li&gt;shows how floating point numbers are expressed in hardware and how to implement common mathematical operations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-305/signed16_float.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230912195940/https://www.altdevarts.com/p/onboarding-floating-point&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Sf036fO-ZUk&#34; target=&#34;_blank&#34; id=&#34;[video] How I implemented MegaTextures on real Nintendo 64 hardware&#34;&gt;[video] How I implemented MegaTextures on real Nintendo 64 hardware&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents an overview of virtual texturing&lt;/li&gt;
&lt;li&gt;discusses texturing concepts and how to represent textures using tiles&lt;/li&gt;
&lt;li&gt;shows visual presentations of the variations of texture resolution required and how it affects which tiles of textures are required&lt;/li&gt;
&lt;li&gt;implemented for N64&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-305/virtual_texture_layer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://vulkan.org/events/vulkanised-2024/call-for-submissions&#34; target=&#34;_blank&#34; id=&#34;Vulkanised 2024 - Call for Submissions&#34;&gt;Vulkanised 2024 - Call for Submissions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the 2024 Vulkan conference Vulkanised is looking for speakers&lt;/li&gt;
&lt;li&gt;the blog post discusses topics being searched for, what is required for a talk proposal, as well as applicable submission deadlines&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-305/vulkan_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230918034108/https://vulkan.org/events/vulkanised-2024/call-for-submissions&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://gpuzen.blogspot.com&#34; target=&#34;_blank&#34; id=&#34;Call for Authors GPU Zen 3&#34;&gt;Call for Authors GPU Zen 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the latest edition of the GPU Zen books is looking for authors&lt;/li&gt;
&lt;li&gt;the blog post lists some recommended topic, answers to frequently asked question as well as deadlines&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-305/gpu_zen.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230918034152/http://gpuzen.blogspot.com/2023/09/call-for-authors-gpu-zen-3.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://erichaines.com/&#34; target=&#34;_blank&#34;&gt;Eric Haines&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 304 - September 10th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-304/</link>
      <pubDate>Sun, 10 Sep 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-304/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://advances.realtimerendering.com/s2023/2023%20Siggraph%20-%20Substrate.pdf&#34; target=&#34;_blank&#34; id=&#34;[pdf] Authoring Materials That Matters - Substrate in Unreal Engine 5&#34;&gt;[pdf] Authoring Materials That Matters - Substrate in Unreal Engine 5&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The presentation covers the development of a new material model based on Slaps, Operators, and Trees&lt;/li&gt;
&lt;li&gt;explains what these three concepts represent and the issues they aim to resolve&lt;/li&gt;
&lt;li&gt;shows the implementation details, data storage, and integration into the rendering pipeline&lt;/li&gt;
&lt;li&gt;additionally presents how to integrate visualization for tool purposes&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-304/substrate_tree.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230911034228/https://advances.realtimerendering.com/s2023/2023%20Siggraph%20-%20Substrate.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://puye.blog/posts/Raytracing-EN/&#34; target=&#34;_blank&#34; id=&#34;What we talk about when we talk about Ray Tracing?&#34;&gt;What we talk about when we talk about Ray Tracing?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article provides an overview of ray tracing rendering concepts&lt;/li&gt;
&lt;li&gt;shows a summary of different methods such as Ray Marching, Cone tracing, and photon mapping&lt;/li&gt;
&lt;li&gt;discusses how it fits into the rendering pipeline as well as what phenomenons it enables to be simulated&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-304/RaytracingPorsche.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230911033902/https://puye.blog/posts/Raytracing-EN/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2023/09/05/Gaussian-Splatting-is-pretty-cool&#34; target=&#34;_blank&#34; id=&#34;Gaussian Splatting is pretty cool!&#34;&gt;Gaussian Splatting is pretty cool!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post describes a brief overview of the Gaussian Splatting technique&lt;/li&gt;
&lt;li&gt;how it compares to previous techniques&lt;/li&gt;
&lt;li&gt;additionally discusses memory and performance of the demo application&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-304/gs-bike-mine02.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230910111027/https://aras-p.info/blog/2023/09/05/Gaussian-Splatting-is-pretty-cool/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jeremyong.com/graphics/2023/09/05/f32-interlocked-min-max-hlsl&#34; target=&#34;_blank&#34; id=&#34;Interlocked min/max on HLSL single precision floats&#34;&gt;Interlocked min/max on HLSL single precision floats&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article discusses a technique to implement atomic min/max operations on HLSL (that doesn&amp;rsquo;t support it natively)&lt;/li&gt;
&lt;li&gt;presents how to map floats into uints and reverse the mappings&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-304/floatbit.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230908213928/https://www.jeremyong.com/graphics/2023/09/05/f32-interlocked-min-max-hlsl/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/imagination&#34; target=&#34;_blank&#34; id=&#34;GM Shaders Mini: Imagination&#34;&gt;GM Shaders Mini: Imagination&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The blog post shows the importance of thinking in gradients&lt;/li&gt;
&lt;li&gt;Consider acceptable input domains and output ranges to prevent errors and unexpected results&lt;/li&gt;
&lt;li&gt;Utilize periodic functions, trigonometry, dot products, and exponentiation for various shader effects and measurements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-304/shader_mod_dots.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230911034011/https://mini.gmshaders.com/p/imagination&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ea.com/seed/news/constant-time-stateless-shuffling&#34; target=&#34;_blank&#34; id=&#34;Constant Time Stateless Shuffling and Grouping&#34;&gt;Constant Time Stateless Shuffling and Grouping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article introduces how to encrypt/decrypt are methods to allow reversible changes to data&lt;/li&gt;
&lt;li&gt;shows how to generate cheaper models than cryptographical methods to solve specific problems&lt;/li&gt;
&lt;li&gt;expands the concepts to present a method that allows grouping and shuffling in a stateless manner&lt;/li&gt;
&lt;li&gt;provides source code for a couple of examples of the presented techniques&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-304/sort_group.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230907165536/https://www.ea.com/seed/news/constant-time-stateless-shuffling&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=TLK3TDDcJFU&#34; target=&#34;_blank&#34; id=&#34;[video] Wow, NVIDIA’s Rendering, But 10X Faster!&#34;&gt;[video] Wow, NVIDIA’s Rendering, But 10X Faster!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video presents a comparison of 3D Gaussian Splatting for Real-Time Radiance Field Rendering against  Instant NeRF techniques&lt;/li&gt;
&lt;li&gt;discusses a summary of the technique and how it can achieve the results without using any neural networks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-304/nerf_compare.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=yPfagLeUa7k&#34; target=&#34;_blank&#34; id=&#34;[video] I Tried Simulating The Entire Ocean&#34;&gt;[video] I Tried Simulating The Entire Ocean&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video provides a discussion of ocean simulation and shading&lt;/li&gt;
&lt;li&gt;presents an overview of the theory, mathematics, and practical considerations for implementation&lt;/li&gt;
&lt;li&gt;additionally presents a look at the shading models for water surfaces&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-304/ocean_simulate.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shanesimmsart.wordpress.com/2023/09/06/at-a-glance-the-aliasing-problem-in-computer-generated-shaded-images/&#34; target=&#34;_blank&#34; id=&#34;At A Glance: The Aliasing Problem in Computer-Generated Shaded Images&#34;&gt;At A Glance: The Aliasing Problem in Computer-Generated Shaded Images&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article presents a brief discussion of Aliasing in computer graphic&lt;/li&gt;
&lt;li&gt;presents how the sampling patterns cause the artifact&lt;/li&gt;
&lt;li&gt;additionally presents techniques to resolve the artifacts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-304/aliasing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230911034135/https://shanesimmsart.wordpress.com/2023/09/06/at-a-glance-the-aliasing-problem-in-computer-generated-shaded-images/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://advances.realtimerendering.com/s2023/AaltonenHypeHypeAdvances2023.pdf&#34; target=&#34;_blank&#34; id=&#34;[pdf] HypeHype Mobile Rendering Architecture&#34;&gt;[pdf] HypeHype Mobile Rendering Architecture&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The presentation provides a detailed look at how the rendering API for HypeHype was rewritten for a modern mobile architecture&lt;/li&gt;
&lt;li&gt;discusses a large spectrum of topics from API design approach, memory API, data update frequency&lt;/li&gt;
&lt;li&gt;shows in detail how the draw operations are represented for the most efficient rendering performance&lt;/li&gt;
&lt;li&gt;presents performance numbers on PC and various mobile hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-304/draw_compact.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/save/https://advances.realtimerendering.com/s2023/AaltonenHypeHypeAdvances2023.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://advances.realtimerendering.com/s2023/Etienne%28ATVI%29-Large%20Scale%20Terrain%20Rendering%20with%20notes%20%28Advances%202023%29.pdf&#34; target=&#34;_blank&#34; id=&#34;[pdf] Large-Scale Terrain Rendering in Call of Duty&#34;&gt;[pdf] Large-Scale Terrain Rendering in Call of Duty&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The presentation covers the terrain rendering methods used in previous Call of Duty and shows the shortcomings&lt;/li&gt;
&lt;li&gt;discusses how the new method virtual texturing method improves upon the issues&lt;/li&gt;
&lt;li&gt;shows the implementation details as well as new capabilities that have been enabled&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-304/material_vtexture.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230911034154/https://advances.realtimerendering.com/s2023/Etienne%28ATVI%29-Large%20Scale%20Terrain%20Rendering%20with%20notes%20%28Advances%202023%29.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/wp-content/uploads/2023/09/LunarG-GFXR-Android-HowTo-09-07-2023-v2.html&#34; target=&#34;_blank&#34; id=&#34;GFXReconstruct on Android - How-To Guide&#34;&gt;GFXReconstruct on Android - How-To Guide&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article presents the steps necessary to use the GFXReconstruct on Android&lt;/li&gt;
&lt;li&gt;how to capture the information and replay it at a later date&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-304/NewLunarGLogoBlack.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230911033854/https://www.lunarg.com/wp-content/uploads/2023/09/LunarG-GFXR-Android-HowTo-09-07-2023-v2.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://bruop.github.io&#34; target=&#34;_blank&#34;&gt;Bruno Opsenica&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 303 - September 3rd, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-303/</link>
      <pubDate>Sun, 03 Sep 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-303/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=dB5Jxwj0PDw&#34; target=&#34;_blank&#34; id=&#34;[video] CUDA Tutorials I Profiling and Debugging Applications&#34;&gt;[video] CUDA Tutorials I Profiling and Debugging Applications&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video tutorial contains a high-level overview of the profiling tools available for Cuda workloads&lt;/li&gt;
&lt;li&gt;shows an example of how to use the tools to identify a cude performance issue&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-303/cuda_profiling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/rgp-work-graphs/&#34; target=&#34;_blank&#34; id=&#34;New Work Graphs sample and Radeon GPU Profiler support for GPU Work Graphs&#34;&gt;New Work Graphs sample and Radeon GPU Profiler support for GPU Work Graphs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article presents a new D3D12 work graph sample to demonstrate how to classify screen space materials&lt;/li&gt;
&lt;li&gt;presents a high-level overview of the demo application&lt;/li&gt;
&lt;li&gt;additionally presents how the Radeon GPU Profiler can visualize the performance of work graph applications&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-303/rgp_work_graphs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230902090630/https://gpuopen.com/learn/rgp-work-graphs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://80.lv/articles/broadleaf-developing-a-real-time-solution-for-rendering-trees/&#34; target=&#34;_blank&#34; id=&#34;BroadLeaf: Developing a Real-Time Solution for Rendering Trees&#34;&gt;BroadLeaf: Developing a Real-Time Solution for Rendering Trees&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article explains the Tencent tree rendering system&lt;/li&gt;
&lt;li&gt;explains how tree information is compressed, automatic LODs are generated, as well as how GPU-driven rendering techniques are used for efficient rendering&lt;/li&gt;
&lt;li&gt;provides videos to show the LOD transitions as well as comparison against (older versions of) Nanite&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-303/broad_leaf.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230904033711/https://80.lv/articles/broadleaf-developing-a-real-time-solution-for-rendering-trees/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/solving-self-intersection-artifacts-in-directx-raytracing/&#34; target=&#34;_blank&#34; id=&#34;Solving Self-Intersection Artifacts in DirectX Raytracing&#34;&gt;Solving Self-Intersection Artifacts in DirectX Raytracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a robust solution to resolve self-intersection issues with secondary rays&lt;/li&gt;
&lt;li&gt;the proposed solution works by calculating error bounds and offset the starting point to lie outside of these bounds&lt;/li&gt;
&lt;li&gt;presents methods to reduce floating point numerical issues through using the suitable coordinate space and operation ordering&lt;/li&gt;
&lt;li&gt;HLSL and GLSL implementations are provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-303/self-intersection-avoidance-rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230831220612/https://developer.nvidia.com/blog/solving-self-intersection-artifacts-in-directx-raytracing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://theforge.dev/career/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphic Programmer - C&amp;#43;&amp;#43; / Vulkan API/ DirectX/ Realtime-Rendering&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Del Mar, CA (On-site)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Do you want the chance to work with clients like Google, Microsoft, Activision, Qualcomm and other AAA studios?&lt;/p&gt;

&lt;p&gt;This is an opportunity to join a world-leader in advanced real-time graphics who are working at the cutting-edge of the game industry.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bachelor&amp;rsquo;s degree in Computer Science or equivalent&lt;/li&gt;
&lt;li&gt;Experience with DirectX 12, Vulkan, Metal, or other current rendering API&lt;/li&gt;
&lt;li&gt;2+ years professional graphics programming experience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please apply with your resume attached by replying to &lt;a href=&#34;mailto:jiayi.zhuo@theforge.dev&#34; target=&#34;_blank&#34;&gt;jiayi.zhuo@theforge.dev&lt;/a&gt;&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_the_forge_small.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;theforge_week_303&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-shaders/&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: Shaders&#34;&gt;Advanced API Performance: Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides best practices for shader performance&lt;/li&gt;
&lt;li&gt;covers generic shader advice, as well as vertex/pixel/tesselation/compute specific advice&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-303/Advanced-API-series.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230905053137/https://developer.nvidia.com/blog/advanced-api-performance-shaders/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=aS_LWwRBzX0&#34; target=&#34;_blank&#34; id=&#34;[video] Starfield: The Digital Foundry Tech Review&#34;&gt;[video] Starfield: The Digital Foundry Tech Review&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents a deep dive into the technical aspects of Starfield&lt;/li&gt;
&lt;li&gt;covering ship geometry details, materials, lighting, cities, landscapes, character details as well as reflections&lt;/li&gt;
&lt;li&gt;additionally, look at the loading structure, loading times, and brief frame-rate discussion&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-303/starfield.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=nvCEpMUxAHE&#34; target=&#34;_blank&#34; id=&#34;[video] Billboarding With The Geometry Shader // Intermediate OpenGL Series&#34;&gt;[video] Billboarding With The Geometry Shader // Intermediate OpenGL Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to use geometry shaders from OpenGL&lt;/li&gt;
&lt;li&gt;provides an overview of what geometry shaders are and how they can be used to overcome some vertex shader limitations&lt;/li&gt;
&lt;li&gt;implements a simple shader that calculates normals for a displaced plane first&lt;/li&gt;
&lt;li&gt;expands the implementation for billboarding, explaining the math and the implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-303/billboarding_gl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/postgoodism&#34; target=&#34;_blank&#34;&gt;Cort Stratton&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 302 - August 27th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-302/</link>
      <pubDate>Sun, 27 Aug 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-302/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.richardekwonye.com/bezier-curves&#34; target=&#34;_blank&#34; id=&#34;Bezier curves&#34;&gt;Bezier curves&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article provides an interactive explanation and exploration of Bezier curves&lt;/li&gt;
&lt;li&gt;presents how the curves are represented and controlled&lt;/li&gt;
&lt;li&gt;allows the user to change settings and interpolation settings to explore the effects on the curve&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-302/bezier_curves.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230828133108/https://blog.richardekwonye.com/bezier-curves&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=PdxArDHRI-c&#34; target=&#34;_blank&#34; id=&#34;[video] MaterialX 2023 Virtual Town Hall&#34;&gt;[video] MaterialX 2023 Virtual Town Hall&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Video recording of MaterialX-related developments in the virtual town hall meeting&lt;/li&gt;
&lt;li&gt;covering OpenPBR, MaterialX shader editor, MaterialX in USD, and many more topics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-302/material_x_days.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jeremyong.com/graphics/2023/08/26/dispatch-ids-and-you&#34; target=&#34;_blank&#34; id=&#34;Dispatch IDs and you&#34;&gt;Dispatch IDs and you&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Blog post explains the different compute shader semantics&lt;/li&gt;
&lt;li&gt;shows the difference between SV_DispatchThreadID, SV_GroupThreadID, SV_GroupID and SV_GroupIndex&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-302/threadgroupids.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230829051322/https://www.jeremyong.com/graphics/2023/08/26/dispatch-ids-and-you/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://darksylinc.github.io/vsync_simulator&#34; target=&#34;_blank&#34; id=&#34;vsync simulator&#34;&gt;vsync simulator&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The simulator provides the ability to experiment with different factors that affect the vsync effect&lt;/li&gt;
&lt;li&gt;presents the effect of vblank intervals, CPU and GPU time differences, and how it affects frame stability and latency&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-302/vsync_simulator.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230829051437/https://darksylinc.github.io/vsync_simulator/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://theforge.dev/career/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphic Programmer - C&amp;#43;&amp;#43; / Vulkan API/ DirectX/ Realtime-Rendering&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Del Mar, CA (On-site)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Do you want the chance to work with clients like Google, Microsoft, Activision, Qualcomm and other AAA studios??&lt;/p&gt;

&lt;p&gt;This is an opportunity to join a world-leader in advanced real-time graphics who are working at the cutting-edge of the game industry.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bachelor&amp;rsquo;s degree in Computer Science or equivalent&lt;/li&gt;
&lt;li&gt;Experience with DirectX 12, Vulkan, Metal, or other current rendering API&lt;/li&gt;
&lt;li&gt;2+ years professional graphics programming experience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please apply with your resume attached by replying to &lt;a href=&#34;mailto:jiayi.zhuo@theforge.dev&#34; target=&#34;_blank&#34;&gt;jiayi.zhuo@theforge.dev&lt;/a&gt;&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_the_forge_small.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;theforge_week_302&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.bendstudio.com/blog/inside-bend-screen-space-shadows&#34; target=&#34;_blank&#34; id=&#34;Inside bend: screen space shadows&#34;&gt;Inside bend: screen space shadows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The presentation and source code for the screen space shadows used in Days Gone have been released&lt;/li&gt;
&lt;li&gt;shows the effect, covering the implementation, and also discusses optimizations&lt;/li&gt;
&lt;li&gt;The code is released under the Apache License&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-302/bend_screen_space_shadows.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230823132200/https://www.bendstudio.com/blog/inside-bend-screen-space-shadows/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zheng95z.github.io/publications/roma23&#34; target=&#34;_blank&#34; id=&#34;Ray-aligned Occupancy Map Array for Fast Approximate Ray Tracing&#34;&gt;Ray-aligned Occupancy Map Array for Fast Approximate Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The paper introduces a Ray-aligned Occupancy Map Array as an alternative to BVH-based ray tracing&lt;/li&gt;
&lt;li&gt;shows how to generate the data structure from a single rasterization pass and compute-based processing&lt;/li&gt;
&lt;li&gt;comparing against Distance Field and Hardware Ray Tracing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-302/bom_tracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230729075652/https://zheng95z.github.io/publications/roma23&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://drive.google.com/file/d/1L6v1_7HY2X-LV3Ofb6oyTIxgEaP4LOI6/view&#34; target=&#34;_blank&#34; id=&#34;Radiance Cascades: A Novel Approach to Calculating Global Illumination[WIP]&#34;&gt;Radiance Cascades: A Novel Approach to Calculating Global Illumination[WIP]&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The paper presents a global illumination technique based on radiance cascades&lt;/li&gt;
&lt;li&gt;Radiance Casdaces allow the storing and calculating of radiance fields by decomposing them into multiple ranges (from near-field
to far-field) with asymptotic scaling&lt;/li&gt;
&lt;li&gt;The paper discusses the data structure, implementation, and how the presented technique is used in Path of Exile 2&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-302/radiance_cascades_gi.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230828071905/https://drive.google.com/file/d/1L6v1_7HY2X-LV3Ofb6oyTIxgEaP4LOI6/view&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/postgoodism&#34; target=&#34;_blank&#34;&gt;Cort Stratton&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 301 - August 20th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-301/</link>
      <pubDate>Sun, 20 Aug 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-301/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://s3.amazonaws.com/gran-turismo.com/pdi_publications/SIGGRAPH2023_RenderingTechBehindGT7.pdf&#34; target=&#34;_blank&#34; id=&#34;Rendering Technologies behind Gran Turismo 7: VR, Ray Tracing and Sky Simulation&#34;&gt;Rendering Technologies behind Gran Turismo 7: VR, Ray Tracing and Sky Simulation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the slides cover the difficulties of VR and what is required for a good user experience&lt;/li&gt;
&lt;li&gt;presents what hardware features the PS5 GPU supports to improve the results&lt;/li&gt;
&lt;li&gt;shows how raytracing was integrated into the rendering pipeline and an overview of the overall rendering pipeline&lt;/li&gt;
&lt;li&gt;covers how the sky rendering was implemented, introducing the mie approximations used&lt;/li&gt;
&lt;li&gt;additionally presents how multiple weather skys are implemented using multiple sets of lookup textures that are blended&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-301/gt7.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://s3.amazonaws.com/gran-turismo.com/pdi_publications/SIGGRAPH2023_RenderingTechBehindGT7.pptx&#34; style=&#34;color:white;&#34;&gt;pptx &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34;&gt;
            &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                &lt;a href=&#34;https://youtu.be/btWy-BAERoY?t=58&#34; style=&#34;color:white;&#34;&gt;video &lt;/a&gt; 
            &lt;/button&gt;
            
        &lt;/div&gt;
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230821181525/https://s3.amazonaws.com/gran-turismo.com/pdi_publications/SIGGRAPH2023_RenderingTechBehindGT7.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cookeoptics.com/wp-content/uploads/2023/07/Cooke-Camera-Lens-Definitions-for-VFX-210723.pdf&#34; target=&#34;_blank&#34; id=&#34;Camera and lens definitions for VFX&#34;&gt;Camera and lens definitions for VFX&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the concept of focal length, presenting how different definitions of focal length are used for other aspects&lt;/li&gt;
&lt;li&gt;explains the underlying optics concepts to clarify the meaning&lt;/li&gt;
&lt;li&gt;discusses Nominal focal length, Pinhole focal length as well as Effective focal length&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-301/lens_model.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230821181630/https://cookeoptics.com/wp-content/uploads/2023/07/Cooke-Camera-Lens-Definitions-for-VFX-210723.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=rJPKTCdk-WI&#34; target=&#34;_blank&#34; id=&#34;[video] Mathematical Magic Mirrorball #SoME3&#34;&gt;[video] Mathematical Magic Mirrorball #SoME3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how mirror balls enable the representation of 360-degree views&lt;/li&gt;
&lt;li&gt;focuses on the derivation of the mathematics of the approach and how to deal with projection bling spots&lt;/li&gt;
&lt;li&gt;additionally presents several demos and use cases of mirror sphere projections&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-301/sphere_projection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mtldoc.com/metal/2023/08/18/optimizing-metal-stitching&#34; target=&#34;_blank&#34; id=&#34;Optimizing Metal: Stitch several Metal functions into a single shader using MTLFunctionStitchingGraph&#34;&gt;Optimizing Metal: Stitch several Metal functions into a single shader using MTLFunctionStitchingGraph&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to use MTLFunctionStitchingGraph to allow the creation of a final shader from multiple pre-compiled pieces at runtime&lt;/li&gt;
&lt;li&gt;shows how to express that functions will be stitched at shader compile time, how to load and stitch the shaders from the API&lt;/li&gt;
&lt;li&gt;combines everything to show how to use the stitched graph to apply image processing operations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-301/metal_projection_cover.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230821181642/https://mtldoc.com/metal/2023/08/18/optimizing-metal-stitching&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://theforge.dev/career/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphic Programmer - C&amp;#43;&amp;#43; / Vulkan API/ DirectX/ Realtime-Rendering&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Del Mar, CA (On-site)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Do you want the chance to work with clients like Google, Microsoft, Activision, Qualcomm and other AAA studios??&lt;/p&gt;

&lt;p&gt;This is an opportunity to join a world-leader in advanced real-time graphics who are working at the cutting-edge of the game industry.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bachelor&amp;rsquo;s degree in Computer Science or equivalent&lt;/li&gt;
&lt;li&gt;Experience with DirectX 12, Vulkan, Metal, or other current rendering API&lt;/li&gt;
&lt;li&gt;2+ years professional graphics programming experience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please apply with your resume attached by replying to &lt;a href=&#34;mailto:jiayi.zhuo@theforge.dev&#34; target=&#34;_blank&#34;&gt;jiayi.zhuo@theforge.dev&lt;/a&gt;&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_the_forge_small.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;theforge_week_301&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://themaister.net/blog/2023/08/20/hardcore-vulkan-debugging-digging-deep-on-linux-amdgpu/&#34; target=&#34;_blank&#34; id=&#34;Hardcore Vulkan debugging – Digging deep on Linux &amp;#43; AMDGPU&#34;&gt;Hardcore Vulkan debugging – Digging deep on Linux &amp;#43; AMDGPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post gives insights into debugging crashes originating on the GPU&lt;/li&gt;
&lt;li&gt;presents what API level tools are available to track down the range of possible draw calls&lt;/li&gt;
&lt;li&gt;further expands from there to show how barriers can help to reduce the search space&lt;/li&gt;
&lt;li&gt;additionally shows how on AMD + Linux native hardware information is available to improve the debugging experience&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-301/page_fault.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230821180402/https://themaister.net/blog/2023/08/20/hardcore-vulkan-debugging-digging-deep-on-linux-amdgpu/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/rgd_1_0_tutorial/&#34; target=&#34;_blank&#34; id=&#34;Getting Started with Radeon™ GPU Detective 1.0&#34;&gt;Getting Started with Radeon™ GPU Detective 1.0&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD released a new tool to help with debugging GPU crashes&lt;/li&gt;
&lt;li&gt;the article provides a brief overview of the tool, what information is available, and how it&amp;rsquo;s to be interpreted&lt;/li&gt;
&lt;li&gt;additionally discusses the limitations and usage tips&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-301/gpu_detective.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230820053022/https://gpuopen.com/learn/rgd_1_0_tutorial/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/wkjarosz/rendering-bib&#34; target=&#34;_blank&#34; id=&#34;rendering-bib&#34;&gt;rendering-bib&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;extensive bibliography of more than 3000 rendering papers&lt;/li&gt;
&lt;li&gt;collected by Wojciech Jarosz from papers, conferences, and own research findings&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-301/rendering_bib.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230821181824/https://github.com/wkjarosz/rendering-bib&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=btWy-BAERoY&#34; target=&#34;_blank&#34; id=&#34;[SCC] Next Gen Development for Games | Sony Official&#34;&gt;[SCC] Next Gen Development for Games | Sony Official&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a combination of three conference presentations recordings from the sony creator event&lt;/li&gt;
&lt;li&gt;the videos cover VR, Ray tracing, and sky simulation in Gran Turismo 7&lt;/li&gt;
&lt;li&gt;Screen space shadows by Bend Studio, as well as ML Research by Haven Studios&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-301/creators_conference.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/hlsl-2021-migration-guide&#34; target=&#34;_blank&#34; id=&#34;HLSL 2021 Migration Guide&#34;&gt;HLSL 2021 Migration Guide&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the latest version of DXC switches the default HLSL version to 2021&lt;/li&gt;
&lt;li&gt;this article presents what number of cases  where default behavior changed&lt;/li&gt;
&lt;li&gt;shows what changed and how the code needs to be adjusted. Presenting quick solutions and more ideal solutions to deal with the changed behaviors&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-301/hlsl_2021.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230821181908/https://devblogs.microsoft.com/directx/hlsl-2021-migration-guide/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/sawickiap/ShaderCrashingAssert&#34; target=&#34;_blank&#34; id=&#34;ShaderCrashingAssert &#34;&gt;ShaderCrashingAssert &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;release of a small header helper to implement a basic assert for GPU shader code&lt;/li&gt;
&lt;li&gt;will trigger a GPU memory exception on purpose to halt the execution&lt;/li&gt;
&lt;li&gt;helper is meant to be used together with Radeon GPU Detective&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-301/d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230821182053/https://github.com/sawickiap/ShaderCrashingAssert&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/gmodarelli&#34; target=&#34;_blank&#34;&gt;Giuseppe Modarelli&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 300 - August 13th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-300/</link>
      <pubDate>Sun, 13 Aug 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-300/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://intro-to-restir.cwyman.org/&#34; target=&#34;_blank&#34; id=&#34;A Gentle Introduction to ReSTIR: Path Reuse in Real-time&#34;&gt;A Gentle Introduction to ReSTIR: Path Reuse in Real-time&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the course notes and slides for the ReStir course from Siggraph are available&lt;/li&gt;
&lt;li&gt;covering from introduction level content to more advanced use cases to the practical implementation in Cyberpunk 2077&lt;/li&gt;
&lt;li&gt;video recordings are available for those who registered for Siggraph 2023&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-300/restir_teaser.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230814083039/https://intro-to-restir.cwyman.org/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.selfshadow.com/2023/08/12/siggraph-2023-links/&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2023 Links&#34;&gt;SIGGRAPH 2023 Links&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a growing collection of content from Siggraph 2023&lt;/li&gt;
&lt;li&gt;presentations, talks, slides, posters, and more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-300/s23_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230813182319/https://blog.selfshadow.com/2023/08/12/siggraph-2023-links/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://tomhultonharrop.com/mathematics/graphics/2023/08/06/reverse-z.html&#34; target=&#34;_blank&#34; id=&#34;Reverse Z (and why it&amp;#39;s so awesome)&#34;&gt;Reverse Z (and why it&amp;#39;s so awesome)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how projection matrixes are expressed in different APIs&lt;/li&gt;
&lt;li&gt;shows how to adjust the classic projection to reverse the direction of the z projection&lt;/li&gt;
&lt;li&gt;followed by an explanation of how this matter helps when combined with floating point numbers to improve depth precision significantly&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-300/inverse_depth-graph-2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230806220700/https://tomhultonharrop.com/mathematics/graphics/2023/08/06/reverse-z.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jeremyong.com/graphics/interviewing/2023/08/05/graphics-programmer-interviewing/&#34; target=&#34;_blank&#34; id=&#34;Interviewing Graphics Programmers&#34;&gt;Interviewing Graphics Programmers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a way to categorize graphics programmers into four broad groups&lt;/li&gt;
&lt;li&gt;for each group, discuss what tasks they typically work on and what questions might be asked in an interview&lt;/li&gt;
&lt;li&gt;additionally provides general advice for graphics programmer interviews&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-300/graphics_programmers.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230811195423/https://www.jeremyong.com/graphics/interviewing/2023/08/05/graphics-programmer-interviewing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://theforge.dev/career/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphic Programmer - C&amp;#43;&amp;#43; / Vulkan API/ DirectX/ Realtime-Rendering&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Del Mar, CA (On-site)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Do you want the chance to work with clients like Google, Microsoft, Activision, Qualcomm and other AAA studios??&lt;/p&gt;

&lt;p&gt;This is an opportunity to join a world-leader in advanced real-time graphics who are working at the cutting-edge of the game industry.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bachelor&amp;rsquo;s degree in Computer Science or equivalent&lt;/li&gt;
&lt;li&gt;Experience with DirectX 12, Vulkan, Metal, or other current rendering API&lt;/li&gt;
&lt;li&gt;2+ years professional graphics programming experience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please apply with your resume attached by replying to &lt;a href=&#34;mailto:jiayi.zhuo@theforge.dev&#34; target=&#34;_blank&#34;&gt;jiayi.zhuo@theforge.dev&lt;/a&gt;&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_the_forge_small.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;theforge_week_300&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/speed-up-gpu-crash-debugging-with-nvidia-nsight-aftermath/&#34; target=&#34;_blank&#34; id=&#34;Speed Up GPU Crash Debugging with NVIDIA Nsight Aftermath&#34;&gt;Speed Up GPU Crash Debugging with NVIDIA Nsight Aftermath&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Nsight Aftermath now supports application-specific markers to be inserted and accessed from the crash dumps&lt;/li&gt;
&lt;li&gt;the blog post provides an example of how the tool shows the information&lt;/li&gt;
&lt;li&gt;explains how to enable application marker support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-300/Aftermath-Developer-Tools.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230810154819/https://developer.nvidia.com/blog/speed-up-gpu-crash-debugging-with-nvidia-nsight-aftermath/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/gm-shaders-mini-crt&#34; target=&#34;_blank&#34; id=&#34;GM Shaders Mini: CRT&#34;&gt;GM Shaders Mini: CRT&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to create a post-processing effect that simulates the look of CRT TVs&lt;/li&gt;
&lt;li&gt;the individual steps are explained&lt;/li&gt;
&lt;li&gt;shadertoy implementation is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-300/crt_bloom.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230808014812/https://mini.gmshaders.com/p/gm-shaders-mini-crt&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@TheIneQuation/bringing-shaders-to-contest-programming-2b5ac72dc75&#34; target=&#34;_blank&#34; id=&#34;Bringing shaders to contest programming&#34;&gt;Bringing shaders to contest programming&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how the author organized an online shader programming contest&lt;/li&gt;
&lt;li&gt;presents how the problems were designed, challenges faced&lt;/li&gt;
&lt;li&gt;additionally presents how the judgment system was implemented&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-300/box_displays.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230806041513/https://medium.com/@TheIneQuation/bringing-shaders-to-contest-programming-2b5ac72dc75&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=KSF59JAjxD8&#34; target=&#34;_blank&#34; id=&#34;[video] SIGGRAPH 2023 | Latest in Graphics Development and GPU Profiling with NVIDIA Nsight Tools&#34;&gt;[video] SIGGRAPH 2023 | Latest in Graphics Development and GPU Profiling with NVIDIA Nsight Tools&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents a short overview of the new developer features in Nvidia tools&lt;/li&gt;
&lt;li&gt;the graphics performance profiler now supports sampling profiling&lt;/li&gt;
&lt;li&gt;additionally covers aftermath debugging and improved Cuda memory profiling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-300/nvidia_profiling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=I0jI_d1jORc&#34; target=&#34;_blank&#34; id=&#34;[video] Skydome // Terrain Rendering episode #12&#34;&gt;[video] Skydome // Terrain Rendering episode #12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents the theory behind Skydomes and how they compare to sky boxes&lt;/li&gt;
&lt;li&gt;explains spherical coordinates and how to use them to generate a sphere mesh&lt;/li&gt;
&lt;li&gt;combines the information to implement skydome rendering using OpenGL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-300/skydome_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/optimize-3d-assets-with-khronos-new-gltf-compressor-tool&#34; target=&#34;_blank&#34; id=&#34;Optimize 3D Assets with Khronos’ New glTF-Compressor Tool&#34;&gt;Optimize 3D Assets with Khronos’ New glTF-Compressor Tool&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Khronos released a new tool to improve the experience when working with KTX compression&lt;/li&gt;
&lt;li&gt;the tool allows the changing of settings, exporting of files, and side-by-side live comparisons&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-300/2023-blog-gltf-compressor-ktx-helmet.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230811003316/https://www.khronos.org/blog/optimize-3d-assets-with-khronos-new-gltf-compressor-tool&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/keithoconor&#34; target=&#34;_blank&#34;&gt;Keith O&amp;rsquo;Conor&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 299 - August 6th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-299/</link>
      <pubDate>Sun, 06 Aug 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-299/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=B-ODrtmtpzM&#34; target=&#34;_blank&#34; id=&#34;[video] The rendering techniques of Path of Exile (Alexander Sannikov)&#34;&gt;[video] The rendering techniques of Path of Exile (Alexander Sannikov)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation covers an overview of many rendering techniques used in Path of Exile&lt;/li&gt;
&lt;li&gt;these techniques cover a large number of topics, such as flow fields, decals, subsurface raymarching, bent-normal shadows, waves, and much more&lt;/li&gt;
&lt;li&gt;additionally presents details about a hierarchical probe system for GI that uses multiple hierarchical levels to approximate GI information with bounded cost&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-299/screenspace_shadows.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.jp.square-enix.com/tech/library/pdf/2023_FFXVIShadowTechPaper.pdf&#34; target=&#34;_blank&#34; id=&#34;[pdf] Shadow Techniques from Final Fantasy XVI&#34;&gt;[pdf] Shadow Techniques from Final Fantasy XVI&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper discusses the Shadow Techniques used by Final Fantasy XVI&lt;/li&gt;
&lt;li&gt;presents the Tiled Deferred Shadow implementation, performance, and quality results&lt;/li&gt;
&lt;li&gt;the paper discusses how the Oriented Depth Bias technique can be used to replace the traditional Hardware Depth Bias&lt;/li&gt;
&lt;li&gt;additionally, it presents debug visualization techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-299/ffxvi_shadow.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230802172530/http://www.jp.square-enix.com/tech/library/pdf/2023_FFXVIShadowTechPaper.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.rocksteadyltd.com/careers/Lead-Rendering-Programmer&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Lead Rendering Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Hybrid, from central London Studio&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Rocksteady is an award-winning developer based in London, focused on combining character-driven cinematic narrative with genre-defining gameplay to create unforgettable experiences based on legendary IP. Growing our studio in London, our multicultural team takes inspiration from the culture and history of our home in one of the most diverse cities in the world.&lt;/p&gt;

&lt;p&gt;We&amp;rsquo;re currently looking for an technical leader in rendering, to join our experienced team of game developers as we launch the highly anticipated project Suicide Squad: Kill the Justice League, and build exciting future plans.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Rocksteady.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;ndreams1_week_299&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aaronhertzmann.com/2023/07/31/occluding-contours-part-1.html&#34; target=&#34;_blank&#34; id=&#34;Occluding Contour Breakthroughs, Part 1: A Surprisingly Hard Problem&#34;&gt;Occluding Contour Breakthroughs, Part 1: A Surprisingly Hard Problem&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the first part of a 3 part series that discusses occluding contour rendering&lt;/li&gt;
&lt;li&gt;first part discusses the issues&lt;/li&gt;
&lt;li&gt;the second part presents methods to efficiently generate smooth, sensible occluding contours from a triangle mesh&lt;/li&gt;
&lt;li&gt;and the final part presents suggestions on what techniques to use for which problems and an overview of open research problems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-299/cupid_hatch.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230802185311/https://aaronhertzmann.com/2023/07/31/occluding-contours-part-1.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://xol.io/blah/gpus-function-calls/&#34; target=&#34;_blank&#34; id=&#34;Why your GPU can (and probably should) do real function calls&#34;&gt;Why your GPU can (and probably should) do real function calls&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a discussion of functions calls in shaders&lt;/li&gt;
&lt;li&gt;covering issues with having and not having function calls&lt;/li&gt;
&lt;li&gt;discusses how CUDA and ISPC support functions pointers, but GLSL doesn&amp;rsquo;t&lt;/li&gt;
&lt;li&gt;presenting the costs associated and possible solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-299/gpu-callstack.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230802092934/https://xol.io/blah/gpus-function-calls/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alextardif.com/Leading.html&#34; target=&#34;_blank&#34; id=&#34;Learnings As a Graphics Lead&#34;&gt;Learnings As a Graphics Lead&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an overview of leadership topics aimed at new graphics leads&lt;/li&gt;
&lt;li&gt;lists lessons learned and advice separated by categories&lt;/li&gt;
&lt;li&gt;covering Hiring, Day to Day actions, Performance Reviews, Advocacy as well as Self-Care&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-299/GraphicsLead.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230805191209/https://alextardif.com/Leading.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dl.acm.org/doi/abs/10.1145/3588432.3591537&#34; target=&#34;_blank&#34; id=&#34;Denoising-Aware Adaptive Sampling for Monte Carlo Ray Tracing&#34;&gt;Denoising-Aware Adaptive Sampling for Monte Carlo Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The paper proposes an adaptive sampling technique for efficient Monte Carlo rendering with deep-learning-based denoising&lt;/li&gt;
&lt;li&gt;The suggested method estimates the variance of neural network outputs with random inputs to drive adaptive sampling methods&lt;/li&gt;
&lt;li&gt;When combined with denoising post-correction, it significantly accelerates error convergence during rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-299/denoising.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/9D7kz&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.42yeah.is/rendering/2023/07/29/radiometry.html&#34; target=&#34;_blank&#34; id=&#34;Radiant Flux, Intensity, Irradiance, Radiance, and the Rendering Equation&#34;&gt;Radiant Flux, Intensity, Irradiance, Radiance, and the Rendering Equation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents the rendering equation and derives the meaning by following the physical units used&lt;/li&gt;
&lt;li&gt;explains differences and relationships between the different units&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-299/tre.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230807004329/https://blog.42yeah.is/rendering/2023/07/29/radiometry.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@raphaelhorion/using-decals-to-drive-object-shaders-and-post-processing-252805232748&#34; target=&#34;_blank&#34; id=&#34;Using decals to drive object shaders and post-processing.&#34;&gt;Using decals to drive object shaders and post-processing.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents the idea of using decals to drive where post-processing and object-level effects&lt;/li&gt;
&lt;li&gt;discusses considerations when applying the decals and how to combine them with other effects&lt;/li&gt;
&lt;li&gt;presents how to use the technique for post-processing shaders and object-level vertex-displacement and alpha effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-299/object_mask_effect.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230807004455/https://medium.com/@raphaelhorion/using-decals-to-drive-object-shaders-and-post-processing-252805232748&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.linuxfoundation.org/press/announcing-alliance-for-open-usd-aousd&#34; target=&#34;_blank&#34; id=&#34;Pixar, Adobe, Apple, Autodesk, and NVIDIA Form Alliance for OpenUSD to Drive Open Standards for 3D Content&#34;&gt;Pixar, Adobe, Apple, Autodesk, and NVIDIA Form Alliance for OpenUSD to Drive Open Standards for 3D Content&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents the announcement of the formation of an organization for fostering the standardization, development, and evolution of USD to OpenUSD&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-299/AOUSD_Logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230803173251/https://www.linuxfoundation.org/press/announcing-alliance-for-open-usd-aousd&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zeux.io/2023/01/12/approximate-projected-bounds&#34; target=&#34;_blank&#34; id=&#34;Approximate projected bounds [Updated]&#34;&gt;Approximate projected bounds [Updated]&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article has been updated with improvements&lt;/li&gt;
&lt;li&gt;covers efficient, conservative projected bounds for spheres as well as AABB&lt;/li&gt;
&lt;li&gt;presents the implementation and discusses the performance of the presented techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-299/shape_projection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230801140645/https://zeux.io/2023/01/12/approximate-projected-bounds/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-synchronization/&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: Synchronization&#34;&gt;Advanced API Performance: Synchronization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Nvidia presents the best practices for asynchronous compute queue work scheduling&lt;/li&gt;
&lt;li&gt;mentions how expensive workloads need to be to see an advantage&lt;/li&gt;
&lt;li&gt;additionally mentions patterns that should be avoided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-299/Advanced-API-series.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230807004030/https://developer.nvidia.com/blog/advanced-api-performance-synchronization/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/leonardoetcheverry/&#34; target=&#34;_blank&#34;&gt;Leonardo Etcheverry&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 298 - July 30th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-298/</link>
      <pubDate>Sun, 30 Jul 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-298/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2023/07/30/raytraced-order-independent-transparency-part-2/&#34; target=&#34;_blank&#34; id=&#34;Raytraced order independent transparency part 2&#34;&gt;Raytraced order independent transparency part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a method that uses any hit shaders to implement order-independent transparency&lt;/li&gt;
&lt;li&gt;compares the performance and quality against the closest-hit shader method of the last post&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-298/transparency_order.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230731125419/https://interplayoflight.wordpress.com/2023/07/30/raytraced-order-independent-transparency-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/gpu-work-graphs-in-vulkan/&#34; target=&#34;_blank&#34; id=&#34;Announcing GPU Work Graphs in Vulkan&#34;&gt;Announcing GPU Work Graphs in Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD announced the release of a Vulkan extension to support the experimental D3D12 Work Graph concept&lt;/li&gt;
&lt;li&gt;The extension is called VK_AMDX_shader_enqueue and presents the API, reasons as well as open issues&lt;/li&gt;
&lt;li&gt;sample application is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-298/gpu-work-graphs.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230731143015/https://gpuopen.com/gpu-work-graphs-in-vulkan/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.rocksteadyltd.com/careers/Lead-Rendering-Programmer&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Lead Rendering Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Hybrid, from central London Studio&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Rocksteady is an award-winning developer based in London, focused on combining character-driven cinematic narrative with genre-defining gameplay to create unforgettable experiences based on legendary IP. Growing our studio in London, our multicultural team takes inspiration from the culture and history of our home in one of the most diverse cities in the world.&lt;/p&gt;

&lt;p&gt;We&amp;rsquo;re currently looking for an technical leader in rendering, to join our experienced team of game developers as we launch the highly anticipated project Suicide Squad: Kill the Justice League, and build exciting future plans.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Rocksteady.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;ndreams1_week_298&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.realtimerendering.com/blog/korean-edition-of-rtr4-available/&#34; target=&#34;_blank&#34; id=&#34;Korean edition of RTR4 available&#34;&gt;Korean edition of RTR4 available&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post announces that the book Real-Time Rendering is now also available in Korean&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-298/korean_realtime_rendering.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230731143107/https://www.realtimerendering.com/blog/korean-edition-of-rtr4-available/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://cbloomrants.blogspot.com/2023/07/float-to-int-casts-for-data-compression.html&#34; target=&#34;_blank&#34; id=&#34;Float to int casts for data compression&#34;&gt;Float to int casts for data compression&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses different methods that are available to convert from f32 to u32 data formats losslessly&lt;/li&gt;
&lt;li&gt;presents use cases and what to consider when choosing between the methods&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-298/floor_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/efUh6&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/gm-shaders-mini-dither&#34; target=&#34;_blank&#34; id=&#34;GM Shaders Mini: Dither&#34;&gt;GM Shaders Mini: Dither&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of dithering techniques&lt;/li&gt;
&lt;li&gt;shows how the type of noise influences the effect&lt;/li&gt;
&lt;li&gt;includes a shadertoy implementation of the presented techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-298/dither_sand.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230731143222/https://mini.gmshaders.com/p/gm-shaders-mini-dither&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://ndreams.com/careers/CCF6493D16&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt; Remote Working (UK Based or Relocation)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Join nDreams Studio Orbital as a Graphics Programmer and be at the forefront of developing groundbreaking VR experiences that will captivate players for years to come.&lt;/p&gt;

&lt;p&gt;As part of our remote team, you will collaborate with a diverse and innovative group, taking ownership of visual fidelity and rendering performance in Unreal Engine 5.&lt;/p&gt;

&lt;p&gt;If you are passionate about pushing the boundaries of VR gaming technology and want to make your mark on the industry, apply now and be part of our exciting journey to redefine the future of VR!&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/nDreamsLogoBlack.JPG&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;ndreams2_week_297&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.alanzucconi.com/2023/07/06/understanding-the-fourth-dimension/&#34; target=&#34;_blank&#34; id=&#34;Unity 4D #1: Understanding the Fourth Dimension&#34;&gt;Unity 4D #1: Understanding the Fourth Dimension&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an introduction to the fourth dimension and explains how to imagine mathematically and geometrically accurate 3D objects&lt;/li&gt;
&lt;li&gt;shows the mathematical foundation&lt;/li&gt;
&lt;li&gt;the series aims at giving the reader the knowledge to simulate how 4D objects would behave in a 3D world&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-298/unity4d_01a.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230719162706/https://www.alanzucconi.com/2023/07/06/understanding-the-fourth-dimension/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://fusha.moe/blog/posts/whirlwind-games-color&#34; target=&#34;_blank&#34; id=&#34;A Whirlwind Tour of Games Color Management&#34;&gt;A Whirlwind Tour of Games Color Management&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a comprehensive overview of game color management and encoding complexities&lt;/li&gt;
&lt;li&gt;introduces the separation between color and radiometric units&lt;/li&gt;
&lt;li&gt;additionally also touches on the subjectivity of converting rendered data to displayable  via &amp;ldquo;tone-mapping&amp;rdquo; operations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-298/color_management.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230731143339/https://fusha.moe/blog/posts/whirlwind-games-color/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://schiznoid.substack.com/p/programming-sdmv-single-draw-multiple&#34; target=&#34;_blank&#34; id=&#34;PROGRAMMING: SDMV (Single Draw Multiple Viewport) Instanced Cubemap Rendering&#34;&gt;PROGRAMMING: SDMV (Single Draw Multiple Viewport) Instanced Cubemap Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to render geometry to the six faces of a cubemap from a single draw call&lt;/li&gt;
&lt;li&gt;explains how to use the VK_EXT_shader_viewport_index_layer extension&lt;/li&gt;
&lt;li&gt;shows how to use the extension, what kind of hardware support can support the feature&lt;/li&gt;
&lt;li&gt;additionally shows a high-level performance comparison between the classical approach and the usage of the extension&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-298/multi_draw.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230731143507/https://schiznoid.substack.com/p/programming-sdmv-single-draw-multiple&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://ndreams.com/careers/8BCC23F86C&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Principal Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Hybrid Working – Farnborough (45 Minutes outside London)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Join nDreams, a world-leading VR game developer and publisher, as a Principal Graphics Programmer and be at the forefront of VR gaming innovation.&lt;/p&gt;

&lt;p&gt;As part of our team, you will research, implement, and support new rendering features and shaders, collaborate with technical and creative staff, and optimize code and systems for optimal performance. We offer a state-of-the-art collaborative workflow, flexible hours, and a range of exciting benefits.&lt;/p&gt;

&lt;p&gt;Apply now to join our team and shape the future of VR gaming!&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/nDreamsLogoBlack.JPG&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;ndreams1_week_297&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.roblox.com/2023/07/roblox-present-3d-motion-rendering-research-siggraph-2023/&#34; target=&#34;_blank&#34; id=&#34;Roblox to Present 3D Motion and Rendering Research at SIGGRAPH 2023&#34;&gt;Roblox to Present 3D Motion and Rendering Research at SIGGRAPH 2023&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post shows the talks Roblox will be presenting at SIGGRAPH&lt;/li&gt;
&lt;li&gt;covers  Surface Simplification, Differentiable Heightfield Path Tracing, hair simulation, and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-298/roblox_surface_simplification.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230730074159/https://blog.roblox.com/2023/07/roblox-present-3d-motion-rendering-research-siggraph-2023/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=RZxo-2cAFk0&#34; target=&#34;_blank&#34; id=&#34;[video] Art Optimization: How FatShark constructed their central asset pipeline with Simplygon&#34;&gt;[video] Art Optimization: How FatShark constructed their central asset pipeline with Simplygon&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the GDC presentation covers geometrical limitations and techniques that can be used to solve the bottlenecks&lt;/li&gt;
&lt;li&gt;shows how Simplygon can be used to simplify models for improved rendering performance&lt;/li&gt;
&lt;li&gt;discusses a large number of issues that will be encountered when simplifying common workflows and how to solve the  issues&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-298/mesh_optimize_combinations.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://hasen.substack.com&#34; target=&#34;_blank&#34;&gt;Hasen Judy&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 297 - July 23rd 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-297/</link>
      <pubDate>Sun, 23 Jul 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-297/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://sms.playstation.com/media/documents/GOWR_Stephen_Mcauley_RenderingGOWR_GDC23.pdf&#34; target=&#34;_blank&#34; id=&#34;Rendering ‘God of War Ragnarök’&#34;&gt;Rendering ‘God of War Ragnarök’&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk presents is a combination of leadership methods and rendering techniques of God of War Ragnarök&lt;/li&gt;
&lt;li&gt;covering lightings units, optimization techniques, PS5 Enhacements such as raytraced cubemaps reflections&lt;/li&gt;
&lt;li&gt;presents optimization appraoches used for shadows, geometry, and how it was tracked&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-297/rendering_gow.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230724042713/https://sms.playstation.com/media/documents/GOWR_Stephen_Mcauley_RenderingGOWR_GDC23.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-pipeline-state-objects/&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: Pipeline State Objects&#34;&gt;Advanced API Performance: Pipeline State Objects&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a list of best practice recommendations for usage of PSOs with D3D12&lt;/li&gt;
&lt;li&gt;additionally also presents what patterns are not recommendation&lt;/li&gt;
&lt;li&gt;explaining why these recommendations are made&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-297/Advanced-API-series.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230724042732/https://developer.nvidia.com/blog/advanced-api-performance-pipeline-state-objects/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://twitter.com/KostasAAA/status/1682805026425585664&#34; target=&#34;_blank&#34; id=&#34;Calculate how many helper pixels a pixel quad has&#34;&gt;Calculate how many helper pixels a pixel quad has&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;small twitter thread that presents how to use Quad intrinsics and IsHelperLane to visulize how efficent quad shading is&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-297/quad_efficency.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230723210028/https://twitter.com/KostasAAA/status/1682805026425585664&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://ndreams.com/careers/8BCC23F86C&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Principal Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Hybrid Working – Farnborough (45 Minutes outside London)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Join nDreams, a world-leading VR game developer and publisher, as a Principal Graphics Programmer and be at the forefront of VR gaming innovation.&lt;/p&gt;

&lt;p&gt;As part of our team, you will research, implement, and support new rendering features and shaders, collaborate with technical and creative staff, and optimize code and systems for optimal performance. We offer a state-of-the-art collaborative workflow, flexible hours, and a range of exciting benefits.&lt;/p&gt;

&lt;p&gt;Apply now to join our team and shape the future of VR gaming!&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/nDreamsLogoBlack.JPG&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;ndreams1_week_297&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=bzEkWtY0zIY&#34; target=&#34;_blank&#34; id=&#34;[video] Nuclear&amp;#39;s graphics tricks #1: simple outline rendering&#34;&gt;[video] Nuclear&amp;#39;s graphics tricks #1: simple outline rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the quick video presents a method to render an outline of an object by taking advantage of wireframe rendering mode&lt;/li&gt;
&lt;li&gt;relies on rendering backfaces only and drawing lines that are thicker than 1 pixel&lt;/li&gt;
&lt;li&gt;presents how to implement the technique using OpenGL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-297/object_outline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://fgiesen.wordpress.com/2023/07/21/computational-complexity-of-texture-encoding/&#34; target=&#34;_blank&#34; id=&#34;Computational complexity of texture encoding&#34;&gt;Computational complexity of texture encoding&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how most tecture encoding formats operate in blocks, presenting how this reduces time complexity&lt;/li&gt;
&lt;li&gt;Additional computational complexity of encoding textures depends on the search space of possible endpoint/mode combinations, which can be reduced using heuristics and pruning techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-297/BC_compression_complexity.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230723174056/https://fgiesen.wordpress.com/2023/07/21/computational-complexity-of-texture-encoding/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://sms.playstation.com/stories/gdc-2023-presentations&#34; target=&#34;_blank&#34; id=&#34;Santa Monica Studio - Our GDC 2023 presentations&#34;&gt;Santa Monica Studio - Our GDC 2023 presentations&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Santa Monica Studio release the slides for all GDC 2023 presentations&lt;/li&gt;
&lt;li&gt;covers not only rendering topics but also AI, Animation, Testing, Art, accessbility and visual scripting&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-297/santa_monica_gdc_2023.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230724042924/https://sms.playstation.com/stories/gdc-2023-presentations&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://acko.net/blog/subpixel-distance-transform/&#34; target=&#34;_blank&#34; id=&#34;Sub-pixel Distance Transform - High quality font rendering for WebGPU&#34;&gt;Sub-pixel Distance Transform - High quality font rendering for WebGPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an in-depth look at SDF font rendering techniques&lt;/li&gt;
&lt;li&gt;shows issues with common implementations and show how to correctly render on a sub-pixel level&lt;/li&gt;
&lt;li&gt;discusses how to blend more complex shapes such as Emoji&lt;/li&gt;
&lt;li&gt;additionally presents how the glyps are cached into runtime dynamic texture atlas&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-297/sdf_outlines.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230723001227/https://acko.net/blog/subpixel-distance-transform/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://ndreams.com/careers/CCF6493D16&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt; Remote Working (UK Based or Relocation)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Join nDreams Studio Orbital as a Graphics Programmer and be at the forefront of developing groundbreaking VR experiences that will captivate players for years to come.&lt;/p&gt;

&lt;p&gt;As part of our remote team, you will collaborate with a diverse and innovative group, taking ownership of visual fidelity and rendering performance in Unreal Engine 5.&lt;/p&gt;

&lt;p&gt;If you are passionate about pushing the boundaries of VR gaming technology and want to make your mark on the industry, apply now and be part of our exciting journey to redefine the future of VR!&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/nDreamsLogoBlack.JPG&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;ndreams2_week_297&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.42yeah.is/rendering/2023/07/22/micro-mesh.html&#34; target=&#34;_blank&#34; id=&#34;Micro-Mesh Overview (Part 1)&#34;&gt;Micro-Mesh Overview (Part 1)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a first high level overview of the micro-mesh technique&lt;/li&gt;
&lt;li&gt;contains links to nvidia sources that discuss the technique in more detail&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-297/micro_mesh_displace.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230722235214/https://blog.42yeah.is/rendering/2023/07/22/micro-mesh.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/using-d3d12-heap-type-gpu-upload&#34; target=&#34;_blank&#34; id=&#34;Effective use of the new D3D12_HEAP_TYPE_GPU_UPLOAD flag&#34;&gt;Effective use of the new D3D12_HEAP_TYPE_GPU_UPLOAD flag&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents what ReBAR is and how it allows GPU resource to be directly CPU adressable&lt;/li&gt;
&lt;li&gt;shows recommendations when and how to use the technique&lt;/li&gt;
&lt;li&gt;addiotinally discusses hardware constraints, and how to validate the availbility&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-297/GPUOpen_GPU_Upload_Heaps_diagram.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230724043044/https://gpuopen.com/learn/using-d3d12-heap-type-gpu-upload/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://sms.playstation.com/media/documents/GOWR_Neural_Image_Upsampling_Zhou_Xuanyi_GDC23.pdf&#34; target=&#34;_blank&#34; id=&#34;Real-Time Neural Texture Upsampling in ‘God of War Ragnarök’&#34;&gt;Real-Time Neural Texture Upsampling in ‘God of War Ragnarök’&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation present a neural network approach used to upscale textures&lt;/li&gt;
&lt;li&gt;shows an overview of BC7 block compression, explaining different modes available and tradeoffs&lt;/li&gt;
&lt;li&gt;discusses the implementation of the network, preseting performance and quality&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-297/bc7_block_processing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230724043104/https://sms.playstation.com/media/documents/GOWR_Neural_Image_Upsampling_Zhou_Xuanyi_GDC23.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=dcfj5PctptE&#34; target=&#34;_blank&#34; id=&#34;[video] User Clip Planes // OpenGL Intermediate Series&#34;&gt;[video] User Clip Planes // OpenGL Intermediate Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents how one can use clip planes to cut geomeetry along plane equations&lt;/li&gt;
&lt;li&gt;presents the underlything math as well as how to implement the feature using OpenGL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-297/clip_planes.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://hasen.substack.com&#34; target=&#34;_blank&#34;&gt;Hasen Judy&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 296 - July 16th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-296/</link>
      <pubDate>Sun, 16 Jul 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-296/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2023/07/15/raytraced-order-independent-transparency/&#34; target=&#34;_blank&#34; id=&#34;Raytraced order independent transparency&#34;&gt;Raytraced order independent transparency&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the articles continues the exploration into order independent transparency techniques&lt;/li&gt;
&lt;li&gt;presents the performance and quality of a solution that uses ray tracing&lt;/li&gt;
&lt;li&gt;discusses advantages, disadvantages and how it compares to other solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-296/ordered_transparency.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230716190623/https://interplayoflight.wordpress.com/2023/07/15/raytraced-order-independent-transparency/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=E72DWgKP_1Y&#34; target=&#34;_blank&#34; id=&#34;[video] The Art of Linear Programming&#34;&gt;[video] The Art of Linear Programming&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial provides a visual introduction into linear programming&lt;/li&gt;
&lt;li&gt;explains how to represent problems in a geometric fashion and then presents how to use the simplex method to solve it&lt;/li&gt;
&lt;li&gt;additionally presents how to solve linear problems using the pulp python package&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-296/linear_programming.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://ndreams.com/careers/8BCC23F86C&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Principal Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Hybrid Working – Farnborough (45 Minutes outside London)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Join nDreams, a world-leading VR game developer and publisher, as a Principal Graphics Programmer and be at the forefront of VR gaming innovation.&lt;/p&gt;

&lt;p&gt;As part of our team, you will research, implement, and support new rendering features and shaders, collaborate with technical and creative staff, and optimize code and systems for optimal performance. We offer a state-of-the-art collaborative workflow, flexible hours, and a range of exciting benefits.&lt;/p&gt;

&lt;p&gt;Apply now to join our team and shape the future of VR gaming!&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/nDreamsLogoBlack.JPG&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;ndreams1_week_296&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.42yeah.is/algorithm/2023/07/15/marching-cubes.html&#34; target=&#34;_blank&#34; id=&#34;Marching Cubes, Explained Using Marching Squares&#34;&gt;Marching Cubes, Explained Using Marching Squares&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the articles aims to provide an intuitive understanding of the marching cubes algorithmn&lt;/li&gt;
&lt;li&gt;starts by explaining how to render a circle on a pixel grid&lt;/li&gt;
&lt;li&gt;generalizing this method to marching square (the 2D equivalent) and expands it into 3D&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-296/marching_cubes.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230717035910/https://blog.42yeah.is/algorithm/2023/07/15/marching-cubes.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=jH0MD8obOCQ&#34; target=&#34;_blank&#34; id=&#34;[video] It Takes Two, lava lamps, Raymarching in Godot 4.1&#34;&gt;[video] It Takes Two, lava lamps, Raymarching in Godot 4.1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video describes how to use raymarching to draw a lava lamp effect&lt;/li&gt;
&lt;li&gt;shows how to represent spheres using SDFs and combine multiple shapes&lt;/li&gt;
&lt;li&gt;implementation is done using Godot&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-296/lava_lamp.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.realtimerendering.com/kesen/hpg2023Papers.htm&#34; target=&#34;_blank&#34; id=&#34;High Performance Graphics 2023 papers on the web&#34;&gt;High Performance Graphics 2023 papers on the web&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collections of papers from the High Performance Graphics 2023 conference&lt;/li&gt;
&lt;li&gt;contains the PDFs and where available also the video recordings&lt;/li&gt;
&lt;li&gt;covers topics such as Acceleration Structures,  Primitives, Surfaces &amp;amp; Appearance Modeling, Deep Learning for Graphics, Distributed &amp;amp; Cloud-Based Rendering as well as GPU Mesh Computing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-296/hpg_cover.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230717040024/https://www.realtimerendering.com/kesen/hpg2023Papers.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/fidelityfx-sdk-available-now/&#34; target=&#34;_blank&#34; id=&#34;The AMD FidelityFX™ SDK 1.0 is now available on GPUOpen&#34;&gt;The AMD FidelityFX™ SDK 1.0 is now available on GPUOpen&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD has released FidelityFX SDK that was announced during GDC 2023&lt;/li&gt;
&lt;li&gt;the SDK provides a unified interface that aims to reduce the overhead of integrating AMD provides techniques into applications&lt;/li&gt;
&lt;li&gt;added new Blur, depth of field and lens effects&lt;/li&gt;
&lt;li&gt;additionally updated existing techniques for the new SDK and introduced improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-296/FFX_SDK_banner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230717040044/https://gpuopen.com/learn/fidelityfx-sdk-available-now/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://ndreams.com/careers/CCF6493D16&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt; Remote Working (UK Based or Relocation)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Join nDreams Studio Orbital as a Graphics Programmer and be at the forefront of developing groundbreaking VR experiences that will captivate players for years to come.&lt;/p&gt;

&lt;p&gt;As part of our remote team, you will collaborate with a diverse and innovative group, taking ownership of visual fidelity and rendering performance in Unreal Engine 5.&lt;/p&gt;

&lt;p&gt;If you are passionate about pushing the boundaries of VR gaming technology and want to make your mark on the industry, apply now and be part of our exciting journey to redefine the future of VR!&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/nDreamsLogoBlack.JPG&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;ndreams2_week_296&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.realtimerendering.com/kesen/egsr2023Papers.htm&#34; target=&#34;_blank&#34; id=&#34;Eurographics Symposium on Rendering 2023 papers on the web&#34;&gt;Eurographics Symposium on Rendering 2023 papers on the web&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collections of papers from the Eurographics Symposium on Rendering 2023 conference&lt;/li&gt;
&lt;li&gt;covers topics in Ray Tracing, Neural Rendering, Spectral, NeRF, Materials, Scatter as well as Patterns &amp;amp; Shadows&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-296/egsr2023.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230717040126/https://www.realtimerendering.com/kesen/egsr2023Papers.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/in-game-gpu-profiling-for-dx12-using-setbackgroundprocessingmode/&#34; target=&#34;_blank&#34; id=&#34;In-Game GPU Profiling for DirectX 12 Using SetBackgroundProcessingMode&#34;&gt;In-Game GPU Profiling for DirectX 12 Using SetBackgroundProcessingMode&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents how to use available D3D12 APIs to create stable applications for profiling purposes&lt;/li&gt;
&lt;li&gt;shows that SetStablePowerState is only one part of the solution&lt;/li&gt;
&lt;li&gt;the second part SetBackgroundProcessingMode and shows how it allows drivers to communicate back to the application to allow stable performance results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-296/in-game-gpu-profiling.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230717040218/https://developer.nvidia.com/blog/in-game-gpu-profiling-for-dx12-using-setbackgroundprocessingmode/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hgpu.org/?p=28435&#34; target=&#34;_blank&#34; id=&#34;Tile-based Lightweight Integer Compression in GPU&#34;&gt;Tile-based Lightweight Integer Compression in GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a tile-based decompression scheme aimed to allow data queries to operate in a single pass&lt;/li&gt;
&lt;li&gt;provides an overview of compression schemes&lt;/li&gt;
&lt;li&gt;shows how to combine delta decoding step and bit unpacking step into a single pass&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-296/data_sort.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230717035816/https://hgpu.org/?p=28435&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 295 - July 9th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-295/</link>
      <pubDate>Sun, 09 Jul 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-295/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/facebook/igl&#34; target=&#34;_blank&#34; id=&#34;Intermediate Graphics Library (IGL)&#34;&gt;Intermediate Graphics Library (IGL)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Meta open-sourced their cross-platform library that provides a common graphics API abstraction&lt;/li&gt;
&lt;li&gt;a couple of examples are provided that show how to use the API&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-295/igl_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230709195850/https://github.com/facebook/igl&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hasen.substack.com/p/sdf-rectangles-masking-rotation&#34; target=&#34;_blank&#34; id=&#34;GPU 2D Drawing Part 2: Rectangle SDF. Masking. Rotations.&#34;&gt;GPU 2D Drawing Part 2: Rectangle SDF. Masking. Rotations.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses signed distance fields (SDF) for rectangles as well as how to render borders and rounded corners&lt;/li&gt;
&lt;li&gt;shows how to apply masking, transformations, and clipping of shapes and effects such as conversion into borders only and inversion&lt;/li&gt;
&lt;li&gt;additionally shows how to combine multiple SDFs to create more diverse results with a limited number of base shapes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-295/sdf_rectangle.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230704212623/https://hasen.substack.com/p/sdf-rectangles-masking-rotation&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cyanilux.com/tutorials/rain-effects-breakdown/&#34; target=&#34;_blank&#34; id=&#34;Rain Effects Breakdown&#34;&gt;Rain Effects Breakdown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a breakdown of how to implement a rain effect using Unity visual shaders&lt;/li&gt;
&lt;li&gt;shows different types of implementation with varying levels of sophistication and implementation difficulty&lt;/li&gt;
&lt;li&gt;simulates raindrops and rain streaks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-295/unity_RipplesGraph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230710020549/https://www.cyanilux.com/tutorials/rain-effects-breakdown/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lisyarus.github.io/blog/graphics/2023/07/03/gltf-animation.html&#34; target=&#34;_blank&#34; id=&#34;Skeletal animation in glTF&#34;&gt;Skeletal animation in glTF&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of skeleton animation in-general and then presents how to parse the information from gLTF files&lt;/li&gt;
&lt;li&gt;shows how to combine transforms, interpret hierarchical information and apply the data in vertex shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-295/gltf_skeletal_animation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230708110859/https://lisyarus.github.io/blog/graphics/2023/07/03/gltf-animation.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=jTsc_UvlT3E&#34; target=&#34;_blank&#34; id=&#34;[video] Windows Gaming On Mac: Game Porting Toolkit Tested! Cyberpunk, Hogwarts, Dead Space &amp;#43; More!&#34;&gt;[video] Windows Gaming On Mac: Game Porting Toolkit Tested! Cyberpunk, Hogwarts, Dead Space &amp;#43; More!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Digital Foundry video provides an overview of the Apple Game Porting Toolkit&lt;/li&gt;
&lt;li&gt;shows how the toolkit works with several recent AAA game releases&lt;/li&gt;
&lt;li&gt;additionally presents how to setup the toolkit for use&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-295/metal_game_porting_toolkit.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=L1NOYs0iPug&#34; target=&#34;_blank&#34; id=&#34;[video] Skybox // Terrain Rendering episode #11&#34;&gt;[video] Skybox // Terrain Rendering episode #11&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents how to render a skybox using OpenGL&lt;/li&gt;
&lt;li&gt;explains the theory of the technique and the implementation&lt;/li&gt;
&lt;li&gt;covers considerations such as culling, rendering order, and positioning&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-295/skybox_gl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ZiHH_BvjoGk&#34; target=&#34;_blank&#34; id=&#34;[video] Building Roads Procedurally Using Unity&amp;#39;s Spline Package&#34;&gt;[video] Building Roads Procedurally Using Unity&amp;#39;s Spline Package&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents how to build a road network using a spline system&lt;/li&gt;
&lt;li&gt;discusses how to extrude a road mesh from a spline and create junction meshes&lt;/li&gt;
&lt;li&gt;presents how to calculate tiling UVs that follow the density of the bezier changes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-295/spline_roads.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.neilbickford.com&#34; target=&#34;_blank&#34;&gt;Neil Bickford&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 294 - July 2nd 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-294/</link>
      <pubDate>Sun, 02 Jul 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-294/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/debugging-cuda-more-efficiently-with-nvidia-compute-sanitizer&#34; target=&#34;_blank&#34; id=&#34;Debugging CUDA More Efficiently with NVIDIA Compute Sanitizer&#34;&gt;Debugging CUDA More Efficiently with NVIDIA Compute Sanitizer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This article discusses a code sanitizer in CUDA that is similar to one used in C++&lt;/li&gt;
&lt;li&gt;The tool can detect race conditions, memory violations, uninitialized memory access, and thread synchronization issues.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-294/racecheck-compute-sanitizer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230701111845/https://developer.nvidia.com/blog/debugging-cuda-more-efficiently-with-nvidia-compute-sanitizer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mamoniem.com/behind-the-pretty-frames-diablo-iv/&#34; target=&#34;_blank&#34; id=&#34;Behind the Pretty Frames: Diablo IV&#34;&gt;Behind the Pretty Frames: Diablo IV&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an in-depth study of a Diablo IV frame rendering on PC&lt;/li&gt;
&lt;li&gt;presents the different stages and passes of the frame&lt;/li&gt;
&lt;li&gt;additionally contains a section of some technical ticks &amp;amp; tricks that were employed from art and programming&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-294/diablo_postBanner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230702001250/https://mamoniem.com/behind-the-pretty-frames-diablo-iv/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.nvidia.com/labs/rtr/approximate-mie/&#34; target=&#34;_blank&#34; id=&#34;An Approximate Mie Scattering Function for Fog and Cloud Rendering&#34;&gt;An Approximate Mie Scattering Function for Fog and Cloud Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The paper introduces a new method for representing scattering with varying particle sizes using uniform parameters&lt;/li&gt;
&lt;li&gt;The method combines Henyey-Greenstein and Draine&amp;rsquo;s phase derivation&lt;/li&gt;
&lt;li&gt;The paper provides an analytic evaluation of the method&lt;/li&gt;
&lt;li&gt;The quality of the method is compared to other methods&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-294/mie_scattering_fitting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230629004402/https://research.nvidia.com/labs/rtr/approximate-mie/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=YE9rEQAGpLw&#34; target=&#34;_blank&#34; id=&#34;[video] Make Your Renders Unnecessarily Complicated&#34;&gt;[video] Make Your Renders Unnecessarily Complicated&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows an humerous overview of what is required to model a camera, with functioning lenes, filters etc&lt;/li&gt;
&lt;li&gt;shows the difficulties and complexities that camera&amp;rsquo;s following a real-world model face&lt;/li&gt;
&lt;li&gt;finally shows a number of images that got generated using this method&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-294/blender_camera_modelling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hasen.substack.com/p/signed-distance-function-field&#34; target=&#34;_blank&#34; id=&#34;Signed Distance Function (Field)&#34;&gt;Signed Distance Function (Field)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article dicusses how to use signed distance functions to render a circle&lt;/li&gt;
&lt;li&gt;show render a circle with antialiasing, drop-shadows, and edge borders.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-294/sdf_drop_shadow.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230701133244/https://hasen.substack.com/p/signed-distance-function-field&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/download/publications/HPG2023_NeuralIntersectionFunction.pdf&#34; target=&#34;_blank&#34; id=&#34;Neural Intersection Function&#34;&gt;Neural Intersection Function&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a replacement for bottom-level BVH traversal based on neural network techniques&lt;/li&gt;
&lt;li&gt;presents performance and quality comparison&lt;/li&gt;
&lt;li&gt;additionally also shows how the presented technique is view and scene dependent&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-294/neural_intersection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230628144927/https://gpuopen.com/download/publications/HPG2023_NeuralIntersectionFunction.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jo.dreggn.org/home/2023_path_of_water.pdf&#34; target=&#34;_blank&#34; id=&#34;[pdf] Path tracing in Production - The Path of Water&#34;&gt;[pdf] Path tracing in Production - The Path of Water&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Siggraph 2023 course notes discuss the challenges faced related to water rendering on Avatar: The Path of water&lt;/li&gt;
&lt;li&gt;gives an overview of the challenges faced, a solid foundational background for the underlying models&lt;/li&gt;
&lt;li&gt;presents practical implementation strategies used&lt;/li&gt;
&lt;li&gt;additionally presents several unsolved problems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-294/the_way_of_water.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230627194254/https://jo.dreggn.org/home/2023_path_of_water.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=IaSGqQa5O-M&#34; target=&#34;_blank&#34; id=&#34;[video] Convolutions and adding random variables, visually explained&#34;&gt;[video] Convolutions and adding random variables, visually explained&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains the concept of convolution functions/filters&lt;/li&gt;
&lt;li&gt;starts with distinct distributions and generalizes from there into continuous functions&lt;/li&gt;
&lt;li&gt;develops two separate ways to visualize the computations and show how they allow different questions to be answered more neatly&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-294/convolution.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://atyuwen.github.io/&#34; target=&#34;_blank&#34;&gt;atyuwen&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 293 - June 25th 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-293/</link>
      <pubDate>Sun, 25 Jun 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-293/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/HPG2023.html&#34; target=&#34;_blank&#34; id=&#34;Real-Time Ray Tracing of Micro-Poly Geometry with Hierarchical Level of Detail&#34;&gt;Real-Time Ray Tracing of Micro-Poly Geometry with Hierarchical Level of Detail&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a method that enables micro-poly geometry for raytracing workloads&lt;/li&gt;
&lt;li&gt;geometry is preprocessed, clusters formed and simplified into a compressed hierarchical level of detail representation&lt;/li&gt;
&lt;li&gt;presents how using clusters enables fast BVH building&lt;/li&gt;
&lt;li&gt;in the appendix discusses in detail how to select clusters to be guaranteed crack-free between different clusters&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-293/raytracing_micro_polygons.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230624190354/https://momentsingraphics.de/HPG2023.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/d3d12-work-graphs-preview/&#34; target=&#34;_blank&#34; id=&#34;D3D12 Work Graphs Preview&#34;&gt;D3D12 Work Graphs Preview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post announces the first public release of a new D3D12 feature called Work Graphs&lt;/li&gt;
&lt;li&gt;shows how this feature enables GPU shaders to spawn further GPU work from the GPU timeline&lt;/li&gt;
&lt;li&gt;presents an overview of the spec&lt;/li&gt;
&lt;li&gt;additionally, it discusses which samples are available at this time&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-293/D3D12_ExampleGraph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230626105614/https://devblogs.microsoft.com/directx/d3d12-work-graphs-preview/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/gpu-work-graphs/gpu-work-graphs-intro/&#34; target=&#34;_blank&#34; id=&#34;GPU Work Graphs in Microsoft DirectX® 12&#34;&gt;GPU Work Graphs in Microsoft DirectX® 12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the AMD guide provides a more in-depth look at the practical use of D3D12 Work Graphs&lt;/li&gt;
&lt;li&gt;presents how to get started and the building blocks of the programming model&lt;/li&gt;
&lt;li&gt;additionally, it presents a section on tips &amp;amp; tricks to help during the development (guides for tracking down issues, best practices, etc.)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-293/gpu-work-graphs.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230627064201/https://gpuopen.com/learn/gpu-work-graphs/gpu-work-graphs-intro/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-2306-21-preview/&#34; target=&#34;_blank&#34; id=&#34;PIX 2306.21-preview: Work Graphs support&#34;&gt;PIX 2306.21-preview: Work Graphs support&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post announces support for the new d3d12 work graphs feature in the preview version&lt;/li&gt;
&lt;li&gt;shows the first level of debug support and discusses what is coming in the future&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-293/WorkGraphs_LRAT.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230627064133/https://devblogs.microsoft.com/pix/pix-2306-21-preview/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.willusher.io/graphics/2023/06/24/0-to-gltf-full-scene&#34; target=&#34;_blank&#34; id=&#34;From 0 to glTF with WebGPU: Rendering the Full glTF Scene&#34;&gt;From 0 to glTF with WebGPU: Rendering the Full glTF Scene&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;another part of the glTF rendering series&lt;/li&gt;
&lt;li&gt;part focuses on how to interpret the scene hierarchy and flatten it for rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-293/gltf_transform.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230624211355/https://www.willusher.io/graphics/2023/06/24/0-to-gltf-full-scene&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?app=desktop&amp;amp;v=zbBwKMRyavE&#34; target=&#34;_blank&#34; id=&#34;[video] Let&amp;#39;s Code a Realtime Fluid Simulation in Unity&#34;&gt;[video] Let&amp;#39;s Code a Realtime Fluid Simulation in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents a walkthrough on the integration of a real-time fluid simulation&lt;/li&gt;
&lt;li&gt;shows how the physical model is translated into shader code&lt;/li&gt;
&lt;li&gt;implementation is shown using Unity C# and shader code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-293/fluid_simulation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/rrika9&#34; target=&#34;_blank&#34;&gt;Erika&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 292 - June 18th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-292/</link>
      <pubDate>Sun, 18 Jun 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-292/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://enginearchitecture.realtimerendering.com/downloads/reac2023_task_graph_renderer.pptx&#34; target=&#34;_blank&#34; id=&#34;Task Graph Renderer at Activision&#34;&gt;Task Graph Renderer at Activision&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk discusses the design of the Task Graph architecture used by Activision&lt;/li&gt;
&lt;li&gt;covers how to author tasks, design iterations, interactions with the memory allocation systems&lt;/li&gt;
&lt;li&gt;additionally presents how it interacts with multi-threaded command recording&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-292/reac2023_taskgraph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230621161254/http://enginearchitecture.realtimerendering.com/downloads/reac2023_task_graph_renderer.pptx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://enginearchitecture.realtimerendering.com/downloads/reac2023_decoupled_shading.pdf&#34; target=&#34;_blank&#34; id=&#34;Overview of Nitrous’ Decoupled Rendering Architecture&#34;&gt;Overview of Nitrous’ Decoupled Rendering Architecture&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation slides explain the improvements done to decoupled shading&lt;/li&gt;
&lt;li&gt;discusses how decoupled shading enables improved visual stability&lt;/li&gt;
&lt;li&gt;presents how the technique has been implemented by using Shadels that reduces the limitations of overshading of previous iterations of the technique&lt;/li&gt;
&lt;li&gt;show how to generate a PrimiteID texture from rasterization as a replacement for position texture maps&lt;/li&gt;
&lt;li&gt;additionally shows how the material system has been designed to enable utilization of the new shading method&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-292/reac2023_decoupled_shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230621161300/http://enginearchitecture.realtimerendering.com/downloads/reac2023_decoupled_shading.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ggx-research.github.io/publication/2023/06/09/publication-glints.html&#34; target=&#34;_blank&#34; id=&#34;Real-Time Rendering of Glinty Appearances using Distributed Binomial Laws on Anisotropic Grids&#34;&gt;Real-Time Rendering of Glinty Appearances using Distributed Binomial Laws on Anisotropic Grids&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new method to render glittery materials&lt;/li&gt;
&lt;li&gt;introduces a new statistical method to calculate the number of glints for each pixel&lt;/li&gt;
&lt;li&gt;source code and a Unity implementation demo are available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-292/glitter_shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230619121840/https://ggx-research.github.io/publication/2023/06/09/publication-glints.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://panthavma.com/articles/lines/deep-overview-extraction&#34; target=&#34;_blank&#34; id=&#34;Line Rendering Deep Overview - Part 1 - Extraction&#34;&gt;Line Rendering Deep Overview - Part 1 - Extraction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of line extraction techniques&lt;/li&gt;
&lt;li&gt;discusses line theory and types&lt;/li&gt;
&lt;li&gt;presents Screen-Space Extraction as well as Geometry-Based (Mesh Contours)&lt;/li&gt;
&lt;li&gt;discusses limitations and considerations of each technique&lt;/li&gt;
&lt;li&gt;additionally gives recommendations on when each technique should be used&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-292/LineRenderingThumbnailArticle.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230524141610/https://panthavma.com/articles/lines/deep-overview-extraction/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://raphlinus.github.io/gpu/2023/06/12/shader-converter.html&#34; target=&#34;_blank&#34; id=&#34;A note on Metal shader converter&#34;&gt;A note on Metal shader converter&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a discussion of the limitations of metal hardware related to barriers across thread groups&lt;/li&gt;
&lt;li&gt;also discusses the complexity of the current compute ecosystem across platforms&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-292/metal_shader_converter.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230615132843/https://raphlinus.github.io/gpu/2023/06/12/shader-converter.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ggx-research.github.io/publication/2023/06/09/publication-ggx.html&#34; target=&#34;_blank&#34; id=&#34;Sampling Visible GGX Normals with Spherical Caps&#34;&gt;Sampling Visible GGX Normals with Spherical Caps&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a novel importance sampling algorithm for the GGX microfacet BRDF&lt;/li&gt;
&lt;li&gt;presents an explanation of the method and how it compares to the Heitz method&lt;/li&gt;
&lt;li&gt;code implementation is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-292/ggx_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230612175955/https://ggx-research.github.io/publication/2023/06/09/publication-ggx.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://trevord.black&#34; target=&#34;_blank&#34;&gt;Trevor Black&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 291 - June 11th 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-291/</link>
      <pubDate>Sun, 11 Jun 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-291/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://enginearchitecture.realtimerendering.com/downloads/reac2023_dunia_shader_pipeline.pdf&#34; target=&#34;_blank&#34; id=&#34;Far Cry Dunia Engine Shader Pipeline - Long-term Vision &amp;amp; Lessons Learned&#34;&gt;Far Cry Dunia Engine Shader Pipeline - Long-term Vision &amp;amp; Lessons Learned&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation covers the development story of the Far Cry shader system&lt;/li&gt;
&lt;li&gt;shows how over multiple games, the architecture was iteratively improved to solve the D3D12 transitions&lt;/li&gt;
&lt;li&gt;focuses on how the PSO design was approached by making all PSO information known during build time&lt;/li&gt;
&lt;li&gt;presents techniques to reduce PSO hitching by skipping draw calls, introducing optional variations, and allowing fallbacks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-291/reac2023_farcry_shader_tech.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230611080837/https://enginearchitecture.realtimerendering.com/downloads/reac2023_dunia_shader_pipeline.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://enginearchitecture.realtimerendering.com/downloads/reac2023_modern_mobile_rendering_at_hypehype.pdf&#34; target=&#34;_blank&#34; id=&#34;Modern Mobile Rendering @ HypeHype&#34;&gt;Modern Mobile Rendering @ HypeHype&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk covers how the author designed a new rendering architecture aimed at mobile hardware&lt;/li&gt;
&lt;li&gt;presents how an iterative API Design was utilized&lt;/li&gt;
&lt;li&gt;covering the resulting solution and reasons for the design decisions&lt;/li&gt;
&lt;li&gt;much in-depth advice to consider for the best performance in different mobile GPUs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-291/reac2023_hypehype_renderer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230612042407/https://enginearchitecture.realtimerendering.com/downloads/reac2023_modern_mobile_rendering_at_hypehype.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shahriyarshahrabi.medium.com/day-night-cycle-using-lut-in-fragment-shader-of-materials-80edaf26f655&#34; target=&#34;_blank&#34; id=&#34;Day Night Cycle using LUT in Fragment Shader of Materials&#34;&gt;Day Night Cycle using LUT in Fragment Shader of Materials&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how a LUT (Look Up Table) can be used to apply a color transformation to convert a daytime scene into a nighttime&lt;/li&gt;
&lt;li&gt;presents how to express a color transformation into a texture and how to apply it from a shader&lt;/li&gt;
&lt;li&gt;discusses implementation considerations and how to reduce color banding&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-291/day_night_lut.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230608150205/https://shahriyarshahrabi.medium.com/day-night-cycle-using-lut-in-fragment-shader-of-materials-80edaf26f655&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cdrinmatane.github.io/posts/cgspotlight-slides&#34; target=&#34;_blank&#34; id=&#34;CG Spotlight Slides - Screen Space Indirect Lighting with Visibility Bitmask&#34;&gt;CG Spotlight Slides - Screen Space Indirect Lighting with Visibility Bitmask&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;slides covering Screen Space Indirect Lighting with Visibility Bitmask&lt;/li&gt;
&lt;li&gt;presents how bitmasks are used to track visibility along the visibility horizon&lt;/li&gt;
&lt;li&gt;show how this allows you to handle objects with thickness better&lt;/li&gt;
&lt;li&gt;additionally shows performance and image results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-291/visibility_bitmask.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230606162206/https://cdrinmatane.github.io/posts/cgspotlight-slides/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.blizzard.com/en-us/diablo4/23964183/peeling-back-the-varnish-the-graphics-of-diablo-iv&#34; target=&#34;_blank&#34; id=&#34;Peeling back the varnish: The graphics of Diablo IV&#34;&gt;Peeling back the varnish: The graphics of Diablo IV&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post covers a high-level overview of topics covering Diablo IV graphics techniques&lt;/li&gt;
&lt;li&gt;discusses the guiding principles, the interaction with tech art&lt;/li&gt;
&lt;li&gt;shows how HDR enables an improvement in visual quality&lt;/li&gt;
&lt;li&gt;additionally provides an overview of resolution/refresh rates on consoles as well as graphics options&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-291/Diablo_IV.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230606081900/https://news.blizzard.com/en-us/diablo4/23964183/peeling-back-the-varnish-the-graphics-of-diablo-iv&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.apple.com/videos/play/wwdc2023/10124/&#34; target=&#34;_blank&#34; id=&#34;Bring your game to Mac, Part 2: Compile your shaders&#34;&gt;Bring your game to Mac, Part 2: Compile your shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation presents how to convert the D3D12 shader for use with metal&lt;/li&gt;
&lt;li&gt;presents a shader converter tool that converts DXIL into metal shader IR&lt;/li&gt;
&lt;li&gt;this tool also supports the conversion of tesselation shaders into mesh shaders&lt;/li&gt;
&lt;li&gt;additionally presents performance pitfalls and advice to bind resources to the pipeline efficiently&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-291/msl_dxil_shaders.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230608082421/https://developer.apple.com/videos/play/wwdc2023/10124/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=91vcflAguDo&#34; target=&#34;_blank&#34; id=&#34;[video] OpenGL vs. Direct3D - Servan Keondjian &amp;amp; Casey Muratori&#34;&gt;[video] OpenGL vs. Direct3D - Servan Keondjian &amp;amp; Casey Muratori&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the 2-hour interview discusses the history of the development of Graphics APIs&lt;/li&gt;
&lt;li&gt;discusses the origins of APIs, how OpenGl and Direct3D came to be&lt;/li&gt;
&lt;li&gt;tradeoffs, design decisions, and many insights into the history of computer graphics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-291/opengl_d3d_history.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=PV8pLZpIG1M&#34; target=&#34;_blank&#34; id=&#34;[video] I3D 2023 Keynote A Glimpse of Neural Rendering&amp;#39;s Future by Marco Salvi&#34;&gt;[video] I3D 2023 Keynote A Glimpse of Neural Rendering&amp;#39;s Future by Marco Salvi&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the keynote presents an overview of the state of the art in neural rendering&lt;/li&gt;
&lt;li&gt;covering image reconstruction, texture compression, mesh simplification, and others&lt;/li&gt;
&lt;li&gt;presents a look at what might be coming next in research and open areas for further development&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-291/neural_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://metalkit.org/&#34; target=&#34;_blank&#34;&gt;Marius Horga&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 290 - June 4th 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-290/</link>
      <pubDate>Sun, 04 Jun 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-290/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=f4s1h2YETNY&#34; target=&#34;_blank&#34; id=&#34;[video] An introduction to Shader Art Coding&#34;&gt;[video] An introduction to Shader Art Coding&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains shader programming aimed at newcomers&lt;/li&gt;
&lt;li&gt;explains how to create digital art using shaders&lt;/li&gt;
&lt;li&gt;showing the fundamental concepts, tools, and mathematics required along the way&lt;/li&gt;
&lt;li&gt;the example is provided using shadertoy and portrayed from an empty shader to the final result&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-290/shader_digital_art.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.42yeah.is/cuda/2023/06/03/cuda.html&#34; target=&#34;_blank&#34; id=&#34;A Quickstart Guide to CUDA&#34;&gt;A Quickstart Guide to CUDA&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a tutorial on how to use CUDA for beginners&lt;/li&gt;
&lt;li&gt;presents how to set up a project and an overview of the basic programming model&lt;/li&gt;
&lt;li&gt;additionally presents how to interop with OpenGL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-290/grid_block.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230605033317/https://blog.42yeah.is/cuda/2023/06/03/cuda.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.intel.com/content/www/us/en/developer/articles/technical/bvh-construction.html&#34; target=&#34;_blank&#34; id=&#34;Stochastic Subsets for Bounding Volume Hierarchy (BVH) Construction&#34;&gt;Stochastic Subsets for Bounding Volume Hierarchy (BVH) Construction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The paper presents a new approach for constructing Bounding Volume Hierarchies (BVH) by leveraging sampling techniques&lt;/li&gt;
&lt;li&gt;the aim is to create higher quality BVHs to be maintained under real-time dynamic conditions and minimize the need for refitting&lt;/li&gt;
&lt;li&gt;The presented approach involves ordering input primitives using a space-filling curve and building a Cumulative Distribution Function (CDF) for sampling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-290/bvh_construction.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230605033329/https://www.intel.com/content/www/us/en/developer/articles/technical/bvh-construction.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/gm-shaders-mini-scaling&#34; target=&#34;_blank&#34; id=&#34;GM Shaders Mini: Scaling&#34;&gt;GM Shaders Mini: Scaling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial provides common scaling, stretching, and centering patterns when using pixel and UV coordinates in shaders&lt;/li&gt;
&lt;li&gt;explaining the process for newcomers and discussing common pitfalls&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-290/shader_scaling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230603002609/https://mini.gmshaders.com/p/gm-shaders-mini-scaling&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ggx-research.github.io/publication/2023/05/10/publication-iadb.html&#34; target=&#34;_blank&#34; id=&#34;Iterative 𝛼-(de)Blending: a Minimalist Deterministic Diffusion Model&#34;&gt;Iterative 𝛼-(de)Blending: a Minimalist Deterministic Diffusion Model&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a rederivation of diffusion models with more straightforward concepts of mixing and de-mixing of images&lt;/li&gt;
&lt;li&gt;previous models relied on advanced knowledge and practice of statistics such as Langevin diffusion or score matching&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-290/diffusion_model.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230531155338/https://ggx-research.github.io/publication/2023/05/10/publication-iadb.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=tfLku5IjUzE&#34; target=&#34;_blank&#34; id=&#34;[video] Where did my intersections go?&#34;&gt;[video] Where did my intersections go?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the short video presents how ray-sphere intersection points behave when expressed with imaginary numbers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-290/sphere_ray_intersect_imaginary_numbers.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=jurhq5ZnsBk&#34; target=&#34;_blank&#34; id=&#34;[video] I3D 2023 Papers Session 4 - Ray Tracing&#34;&gt;[video] I3D 2023 Papers Session 4 - Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video recording ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2023 for Ray Tracing has been released&lt;/li&gt;
&lt;li&gt;the talks covered are the following:

&lt;ul&gt;
&lt;li&gt;Subspace Culling for Ray-Box Intersection&lt;/li&gt;
&lt;li&gt;Performance Comparison of Bounding Volume Hierarchies for GPU Ray Tracing&lt;/li&gt;
&lt;li&gt;Accelerated Photon Mapping for Hardware-based Ray Tracing&lt;/li&gt;
&lt;li&gt;Importance-Based Ray Strategies for Dynamic Diffuse Global Illumination&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-290/camera_tracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://enginearchitecture.realtimerendering.com/2023_conference/&#34; target=&#34;_blank&#34; id=&#34;Rendering Engine Architecture Conference - 2023 &#34;&gt;Rendering Engine Architecture Conference - 2023 &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;open, digital, and freely accessible conference covering many rendering engine architectures is happening on June 5th and 6th&lt;/li&gt;
&lt;li&gt;talks from HypeHype, Activision, Ubisoft, Wētā Digital, and more&lt;/li&gt;
&lt;li&gt;the talks cover modern mobile rendering, task graph architecture, decoupled rendering, shader pipeline, and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-290/reac_image_2023.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230605033519/https://enginearchitecture.realtimerendering.com/2023_conference/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/vivitsum&#34; target=&#34;_blank&#34;&gt;Vivitsu Maharaja&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 289 - May 28th 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-289/</link>
      <pubDate>Sun, 28 May 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-289/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=-ymmkfjMIeI&#34; target=&#34;_blank&#34; id=&#34;[video] Frustum Culling // Terrain Rendering episode #9&#34;&gt;[video] Frustum Culling // Terrain Rendering episode #9&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains two different techniques of frustum culling&lt;/li&gt;
&lt;li&gt;presents how to implement culling in object and clip space&lt;/li&gt;
&lt;li&gt;code implementation is provided for OpenGL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-289/frustum_culling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/khronos-osaka-dev-day-video-and-presentation-slides-available/&#34; target=&#34;_blank&#34; id=&#34;Khronos Osaka Dev Day Video and LunarG Presentation Slides Available&#34;&gt;Khronos Osaka Dev Day Video and LunarG Presentation Slides Available&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;slides and videos from the Khronos Osaka Dev Day have been released&lt;/li&gt;
&lt;li&gt;covers how to read and write SPIR-V, use the Vulkan Validation Effectively as well as what tools are available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-289/vulkanised.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230526152625/https://www.lunarg.com/khronos-osaka-dev-day-video-and-presentation-slides-available/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://simonschreibt.de/gat/deus-ex-alpha-terrain/&#34; target=&#34;_blank&#34; id=&#34;Deus Ex – Alpha Terrain&#34;&gt;Deus Ex – Alpha Terrain&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how the terrain in Deus Ex is quite different compared to other solutions&lt;/li&gt;
&lt;li&gt;shows how the terrain uses translucent materials to blend between opaque objects and the terrain&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-289/deus_ex_terrain.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230530004028/https://simonschreibt.de/gat/deus-ex-alpha-terrain/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=LiBrz0iidm4&#34; target=&#34;_blank&#34; id=&#34;[video] [OpenGL Episode 25] Rotation Matrices (using glm)&#34;&gt;[video] [OpenGL Episode 25] Rotation Matrices (using glm)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows how rotation matrices are defined in mathematics and glm + OpenGL&lt;/li&gt;
&lt;li&gt;presents how to read a 4x4 matrix as columns matrices to understand the effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-289/rotation_matrix.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=N6xZvrLusPI&#34; target=&#34;_blank&#34; id=&#34;[video] Halton Low-Discrepancy Sequence [Shaders Monthly #12]&#34;&gt;[video] Halton Low-Discrepancy Sequence [Shaders Monthly #12]&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains the effect of the Halton Sequence compared to random and grid sampling&lt;/li&gt;
&lt;li&gt;shows how to implement the Halton Sequence using GLSL&lt;/li&gt;
&lt;li&gt;presents the practical effects when applied to image space lighting&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-289/2d_halton_sequence.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cyanilux.com/tutorials/waterfall-shader-breakdown/&#34; target=&#34;_blank&#34; id=&#34;Waterfall Shader Breakdown&#34;&gt;Waterfall Shader Breakdown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to create a stylized waterfall effect&lt;/li&gt;
&lt;li&gt;shows how to integrate SDF objects to interact with the water flow&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-289/waterfall.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230529115905/https://www.cyanilux.com/tutorials/waterfall-shader-breakdown/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://micromesh.di.unimi.it&#34; target=&#34;_blank&#34; id=&#34;Micro-Mesh Construction &#34;&gt;Micro-Mesh Construction &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents how to construct micro meshes from high-resolution triangle meshes&lt;/li&gt;
&lt;li&gt;provides an overview of the micro-mesh data structure&lt;/li&gt;
&lt;li&gt;discusses advantages and disadvantages of the mesh structure&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-289/micromesh.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230523231017/https://micromesh.di.unimi.it//&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/Jontology&#34; target=&#34;_blank&#34;&gt;Jon Greenberg&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 288 - May 21st 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-288/</link>
      <pubDate>Sun, 21 May 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-288/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.blakecourter.com/2023/05/18/field-notation.html&#34; target=&#34;_blank&#34; id=&#34;Unit Gradient Fields: SDFs, UGFs, and their friends&#34;&gt;Unit Gradient Fields: SDFs, UGFs, and their friends&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a formal definition of a Unit Gradient Field&lt;/li&gt;
&lt;li&gt;compares an SDF to a UGF and possible applications&lt;/li&gt;
&lt;li&gt;presents a visual component to provide further insights&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-288/ugf_boundary.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230524042033/https://www.blakecourter.com/2023/05/18/field-notation.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-cpus/&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: CPUs&#34;&gt;Advanced API Performance: CPUs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents CPU performance consideration for efficient usage of APIs&lt;/li&gt;
&lt;li&gt;shows the importance of running the right workloads on separate threads&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-288/advanced-api-performance-cpus.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230517212542/https://developer.nvidia.com/blog/advanced-api-performance-cpus/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/introducing-vulkan-ray-tracing-position-fetch-extension&#34; target=&#34;_blank&#34; id=&#34;Introducing Vulkan Ray Tracing Position Fetch Extension&#34;&gt;Introducing Vulkan Ray Tracing Position Fetch Extension&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes a new Vulkan raytracing extension that allows the retrieval of positions from a hit shader&lt;/li&gt;
&lt;li&gt;discusses how applications used to fetch position information manually and how this extension will simplify the logic&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-288/vulkan-pica_normals.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230516041324/https://www.khronos.org/blog/introducing-vulkan-ray-tracing-position-fetch-extension&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=5hg5orogFf4&#34; target=&#34;_blank&#34; id=&#34;[video] I3D 2023 Papers Session 1 - Neural Rendering and Image Warping&#34;&gt;[video] I3D 2023 Papers Session 1 - Neural Rendering and Image Warping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video recording for the first I3D conference paper session has been released&lt;/li&gt;
&lt;li&gt;the three talks are Interactive Editing of Neural Radiance Fields, A Primitive for Animatable Neural Rendering with Interactive Speed as well as Metameric Inpainting for Image Warping&lt;/li&gt;
&lt;li&gt;the Q&amp;amp;A for each talk is included as well&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-288/neural_radience_field.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.willusher.io/graphics/2023/05/16/0-to-gltf-first-mesh&#34; target=&#34;_blank&#34; id=&#34;From 0 to glTF with WebGPU: Rendering the First glTF Mesh&#34;&gt;From 0 to glTF with WebGPU: Rendering the First glTF Mesh&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the second part of the glTF mesh series covers how to interpret mesh data and render from WebGPU&lt;/li&gt;
&lt;li&gt;covers the ASCII and binary format&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-288/mesh-avocado.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230519115118/https://www.willusher.io/graphics/2023/05/16/0-to-gltf-first-mesh&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://chipsandcheese.com/2023/05/16/shader-execution-reordering-nvidia-tackles-divergence&#34; target=&#34;_blank&#34; id=&#34;Shader Execution Reordering: Nvidia Tackles Divergence&#34;&gt;Shader Execution Reordering: Nvidia Tackles Divergence&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the effect of Shader Execution Reordering (SER) on GPU performance&lt;/li&gt;
&lt;li&gt;shows the effect on Cyberpunk 2077 and shows how improved coherence improves performance&lt;/li&gt;
&lt;li&gt;presents how the extension is represented in the DXIL and changes the shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-288/ser_dxil.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230519201923/https://chipsandcheese.com/2023/05/16/shader-execution-reordering-nvidia-tackles-divergence/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/kongsgard&#34; target=&#34;_blank&#34;&gt;Sondre Kongsgård&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 287 - May 14th 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-287/</link>
      <pubDate>Sun, 14 May 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-287/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/amd-capsaicin-framework-release-gi/&#34; target=&#34;_blank&#34; id=&#34;Introducing AMD Capsaicin Framework - our ARR Research Framework which includes our GI-1.0 sample&#34;&gt;Introducing AMD Capsaicin Framework - our ARR Research Framework which includes our GI-1.0 sample&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD released a new research framework aimed at the rapid development of multiple rendering implementations in parallel&lt;/li&gt;
&lt;li&gt;The first release contains a GI implementation and a reference Path tracer&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-287/SalleDeBain_PathTracer.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230514142748/https://gpuopen.com/learn/amd-capsaicin-framework-release-gi/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.42yeah.is/rendering/2023/05/13/photon-mapping.html&#34; target=&#34;_blank&#34; id=&#34;A Rough Idea of How Photon Mapping Works&#34;&gt;A Rough Idea of How Photon Mapping Works&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the Photon Mapping technique&lt;/li&gt;
&lt;li&gt;discusses the issues with ray counts from ray and path tracing methods and how photon mapping aims to reduce the number of rays&lt;/li&gt;
&lt;li&gt;developed to solve rendering caustics efficiently&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-287/photon_mapping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230516060210/https://blog.42yeah.is/rendering/2023/05/13/photon-mapping.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/abs/2305.05810&#34; target=&#34;_blank&#34; id=&#34;Stochastic Texture Filtering&#34;&gt;Stochastic Texture Filtering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper investigates and presents the quality and performance influence of stochastic texture filtering&lt;/li&gt;
&lt;li&gt;stochastic texture filtering makes it possible to perform filtering outside of the lighting integral&lt;/li&gt;
&lt;li&gt;this could allow for the adoption of higher-order texture magnification filters as  the introduced noise can be removed with temporal filtering algorithms&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-287/stochastic_texturing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230512092914/https://arxiv.org/abs/2305.05810&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pixelcluster.github.io/Hang-Exploration-Splitgate&#34; target=&#34;_blank&#34; id=&#34;GPU Hang Exploration: Splitgate&#34;&gt;GPU Hang Exploration: Splitgate&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a walkthrough of how to investigate a GPU hang found in Splitgate on Steam Deck&lt;/li&gt;
&lt;li&gt;shows how to narrow down the issue using Vulkan validation, the AMD open-source drivers, and UE source code access&lt;/li&gt;
&lt;li&gt;presents the complex interconnections of GPU systems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-287/canny-mr-incredible.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230515221501/https://pixelcluster.github.io/Hang-Exploration-Splitgate/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=1eLz6WpXvQo&#34; target=&#34;_blank&#34; id=&#34;[video] GDC 2023 - Two-Level Radiance Caching for Fast and Scalable Real-Time Global Illumination in Games&#34;&gt;[video] GDC 2023 - Two-Level Radiance Caching for Fast and Scalable Real-Time Global Illumination in Games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the GDC presentation present a GI solution that aims to cache radiance into a cache hierarchy&lt;/li&gt;
&lt;li&gt;shows how the technique combines screen space probes with world space-level cells&lt;/li&gt;
&lt;li&gt;presents the implementation, quality, performance as well as limitations of the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-287/flying_world_gi.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=EYxtuE2r7Us&#34; target=&#34;_blank&#34; id=&#34;[video] The LOD Manager // Terrain Rendering episode #8&#34;&gt;[video] The LOD Manager // Terrain Rendering episode #8&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial expands on the terrain rendering series by adding support for calculating LOD levels for each patch&lt;/li&gt;
&lt;li&gt;shows how to implement the technique using OpenGL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-287/terrain_lods.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/jhfredriksen&#34; target=&#34;_blank&#34;&gt;Jan-Harald Fredriksen&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 286 - May 7th 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-286/</link>
      <pubDate>Sun, 07 May 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-286/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/rps-tutorial/rps-tutorial-intro/&#34; target=&#34;_blank&#34; id=&#34;RPS SDK Tutorial&#34;&gt;RPS SDK Tutorial&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD released an extensive tutorial on how to use the Render Pipeline Shaders SDK&lt;/li&gt;
&lt;li&gt;broken down into multiple parts, it explains the basics to more advanced concepts&lt;/li&gt;
&lt;li&gt;shows how to render a triangle, express more complex resource dependencies, as well as how to interact between the graph and host application&lt;/li&gt;
&lt;li&gt;additionally shows how to take advantage of multithreading when recording commands&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-286/Render_Pipeline_Shaders.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230505174722/https://gpuopen.com/learn/rps-tutorial/rps-tutorial-intro/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.nvidia.com/labs/rtr/microfacet-theory-non-uniform-heightfields/&#34; target=&#34;_blank&#34; id=&#34;Microfacet theory for non-uniform heightfields&#34;&gt;Microfacet theory for non-uniform heightfields&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper proposes a new method for the combination of rough surface NDFs&lt;/li&gt;
&lt;li&gt;The presented techniques aim to accurately simulate multiple scattering from heightfields with height-dependent roughness and material properties&lt;/li&gt;
&lt;li&gt;the solution is based on a layered-Smith microfacet model&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-286/microface_objects.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230504220552/https://research.nvidia.com/labs/rtr/microfacet-theory-non-uniform-heightfields/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.nvidia.com/labs/rtr/neural_appearance_models&#34; target=&#34;_blank&#34; id=&#34;Real-Time Neural Appearance Models&#34;&gt;Real-Time Neural Appearance Models&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The paper presents a new method to represent materials utilizing learned hierarchical textures combined with neural decoders&lt;/li&gt;
&lt;li&gt;presents how to integrate the technique into real-time applications such as path tracers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-286/neural_appearance_teaser.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230508135425/https://research.nvidia.com/labs/rtr/neural_appearance_models/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cohost.org/mcc/post/1406157-i-want-to-talk-about&#34; target=&#34;_blank&#34; id=&#34;I want to talk about WebGPU&#34;&gt;I want to talk about WebGPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a history of graphics API and how WebGPU fits into the history&lt;/li&gt;
&lt;li&gt;shows an overview of how WebGPU works&lt;/li&gt;
&lt;li&gt;presents possible implementations for different programming languages and how to get started&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-286/wgpu1-2.0.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230503231412/https://cohost.org/mcc/post/1406157-i-want-to-talk-about&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-sampler-feedback&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: Sampler Feedback&#34;&gt;Advanced API Performance: Sampler Feedback&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the guide contains best practices for using Sample Feedback on Nvidia hardware&lt;/li&gt;
&lt;li&gt;shows what is expected to perform well, what is not supported, and possible edge cases to consider&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-286/advanced-api-sampler-feedback.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230509055318/https://developer.nvidia.com/blog/advanced-api-performance-sampler-feedback/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wickedengine.net/2023/05/07/vulkan-video-decoding&#34; target=&#34;_blank&#34; id=&#34;Vulkan Video Decoding&#34;&gt;Vulkan Video Decoding&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the video functionality that Vulkan exposes&lt;/li&gt;
&lt;li&gt;discusses how to use the API and what pitfalls were encountered&lt;/li&gt;
&lt;li&gt;as the Wicked Engine is open source, code and links to the necessary implementation are provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-286/vulkan_video_onscreen.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230509004757/https://wickedengine.net/2023/05/07/vulkan-video-decoding/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.blakecourter.com/2023/05/05/what-is-offset.html&#34; target=&#34;_blank&#34; id=&#34;Unit Gradient Fields: What do we mean by offset?&#34;&gt;Unit Gradient Fields: What do we mean by offset?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of Unit Gradient Fields (UGFs)&lt;/li&gt;
&lt;li&gt;UGFs offer a generalization over SDFs, enabling a more expressive language for implicit modeling&lt;/li&gt;
&lt;li&gt;this is only part one of a planned series on the topic&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-286/UGF_Drafted_Split_Round_Sharp.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230506194550/https://www.blakecourter.com/2023/05/05/what-is-offset.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://chipsandcheese.com/2023/05/07/cyberpunk-2077s-path-tracing-update&#34; target=&#34;_blank&#34; id=&#34;Cyberpunk 2077’s Path Tracing Update&#34;&gt;Cyberpunk 2077’s Path Tracing Update&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an in-depth look at the performance of the latest Cyberpunk 2077 update&lt;/li&gt;
&lt;li&gt;shows how the hardware is utilized and what the bottlenecks are&lt;/li&gt;
&lt;li&gt;additionally shows how RDNA2 and RDN3 workloads compare&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-286/cp2077_rdna3_path_tracing_stats.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230508113930/https://chipsandcheese.com/2023/05/07/cyberpunk-2077s-path-tracing-update/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=W6PqTiWihFM&#34; target=&#34;_blank&#34; id=&#34;[video] Level Of Detail // Terrain Rendering episode #7&#34;&gt;[video] Level Of Detail // Terrain Rendering episode #7&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial about rendering terrain using OpenGL continues by explaining how LODs can be implemented for the terrain system&lt;/li&gt;
&lt;li&gt;covers how to create LODs and make sure the terrain doesn&amp;rsquo;t have any cracks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-286/terrain_lods.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/aortizelguero&#34; target=&#34;_blank&#34;&gt;Angel Ortiz&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 285 - April 30th 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-285/</link>
      <pubDate>Sun, 30 Apr 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-285/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zeux.io/2023/04/28/triangle-backface-culling/&#34; target=&#34;_blank&#34; id=&#34;Fine-grained backface culling&#34;&gt;Fine-grained backface culling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Article discusses implementing backface culling in mesh shaders&lt;/li&gt;
&lt;li&gt;Compares the efficiency of three different methods: Cluster cone culling, precomputed visibility masks, and multi-cone culling&lt;/li&gt;
&lt;li&gt;Presents performance numbers for each technique on different scenes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-285/backface_culling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230430103521/https://zeux.io/2023/04/28/triangle-backface-culling/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.polymonster.co.uk/blog/building-new-engine-4&#34; target=&#34;_blank&#34; id=&#34;Building a new graphics engine in Rust - Part 4&#34;&gt;Building a new graphics engine in Rust - Part 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents progress on a Rust-based home graphics engine project&lt;/li&gt;
&lt;li&gt;focuses on the discussion of how to integrate resource management into the Rust memory model and GPU-driven rendering considerations&lt;/li&gt;
&lt;li&gt;presents how to setup bindless rendering pipelines, implement frustum culling in compute shaders, and how to integrate with an ECS-based engine&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-285/rust_testing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230502050901/https://www.polymonster.co.uk/blog/building-new-engine-4&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/rgp-1-15-enhanced-isa-view/&#34; target=&#34;_blank&#34; id=&#34;Radeon™ GPU Profiler 1.15 provides an enhanced ISA view experience and more&#34;&gt;Radeon™ GPU Profiler 1.15 provides an enhanced ISA view experience and more&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents improvements done to the AMD GPU profiler&lt;/li&gt;
&lt;li&gt;It primarily focuses on the shader/pipeline disassembly view improvement and has been updated to make it easier to navigate&lt;/li&gt;
&lt;li&gt;but also mesh shader and Conservative Rasterization mode have been added to support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-285/rgp_instruction_timing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230502050955/https://gpuopen.com/learn/rgp-1-15-enhanced-isa-view/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=DrDkpdxw170&#34; target=&#34;_blank&#34; id=&#34;[video] A neat realtime water caustics technique using partial derivatives in UE!&#34;&gt;[video] A neat realtime water caustics technique using partial derivatives in UE!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how to use partial derivatives in HLSL shaders to calculate the amount of light distortion to calculate refractions&lt;/li&gt;
&lt;li&gt;presents the results and implementation using UE4&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-285/caustics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ftDb1cVcxN4&#34; target=&#34;_blank&#34; id=&#34;[video] A visual explanation for 3D transformation matrix multiplications&#34;&gt;[video] A visual explanation for 3D transformation matrix multiplications&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how matrices are combined&lt;/li&gt;
&lt;li&gt;visually explains the operations by explaining how a robotic arm transformation is implemented&lt;/li&gt;
&lt;li&gt;followed up by explaining how the multiplications are implemented mathematically but always visually explaining the relationships&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-285/matrix_multiplication.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=IfCRHSIg6zo&#34; target=&#34;_blank&#34; id=&#34;[video] Quake&amp;#39;s PVS: A hidden gem of rendering optimization&#34;&gt;[video] Quake&amp;#39;s PVS: A hidden gem of rendering optimization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how PVS (Potential Visibility Set) used by Quake is implemented&lt;/li&gt;
&lt;li&gt;visually shows how the graph is constructed and what optimizations were applied to optimize the set further&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-285/pvs_quake.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://simonschreibt.de/gat/battlefront-ii-layered-explosion&#34; target=&#34;_blank&#34; id=&#34;Battlefront II: Layered Explosion&#34;&gt;Battlefront II: Layered Explosion&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how star wars battlefront explosion VFX has been implemented&lt;/li&gt;
&lt;li&gt;shows how flipbook textures are combined with LUT textures for recoloring as needed&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-285/bf2_explosion_02.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230425224200/https://simonschreibt.de/gat/battlefront-ii-layered-explosion/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://theorangeduck.com/page/cubic-interpolation-quaternions&#34; target=&#34;_blank&#34; id=&#34;Cubic Interpolation of Quaternions&#34;&gt;Cubic Interpolation of Quaternions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains a series of Interpolation and shows how they build up to cubic Quaternion interpolation&lt;/li&gt;
&lt;li&gt;covers Hermite Curve, Catmull-Rom Cubic, and finally, Quaternion Catmull-Rom Cubic Interpolation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-285/cubic_interpoliation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230427172237/https://theorangeduck.com/page/cubic-interpolation-quaternions&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.reedbeta.com&#34; target=&#34;_blank&#34;&gt;Nathan Reed&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 284 - April 23rd, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-284/</link>
      <pubDate>Sun, 23 Apr 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-284/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://kesen.realtimerendering.com/i3d2023Papers.htm&#34; target=&#34;_blank&#34; id=&#34;Symposium on Interactive 3D Graphics and Games 2023 papers on the web&#34;&gt;Symposium on Interactive 3D Graphics and Games 2023 papers on the web&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of papers from the I3D 2023 presentation&lt;/li&gt;
&lt;li&gt;contains links to the papers and related material where available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-284/denoising_i3d.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230424170748/https://kesen.realtimerendering.com/i3d2023Papers.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.gdcvault.com/play/1029233/Math-in-Game-Development-Summit&#34; target=&#34;_blank&#34; id=&#34;[video] Math in Game Development Summit: A Visual Guide to Quaternions and Dual Quaternions&#34;&gt;[video] Math in Game Development Summit: A Visual Guide to Quaternions and Dual Quaternions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the GDC talk explains how Quaternions and Dual Quaternions work and how they affect objects under transformation&lt;/li&gt;
&lt;li&gt;starts by building an understanding of Quaternions, shows the advantages and limitations&lt;/li&gt;
&lt;li&gt;followed by an extension to cover Dual Quaternions, explaining what problems they solve and how they compare to 4x4 transformation matrices&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-284/gdc_quaternion.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.gdcvault.com/play/1029434/Advanced-Graphics-Summit-Realistic-Real&#34; target=&#34;_blank&#34; id=&#34;Advanced Graphics Summit: Realistic Real-Time Sky Dome Rendering in &amp;#39;Gran Turismo 7&amp;#39;&#34;&gt;Advanced Graphics Summit: Realistic Real-Time Sky Dome Rendering in &amp;#39;Gran Turismo 7&amp;#39;&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the GDC presentation discusses the new sky rendering model developed for GT7&lt;/li&gt;
&lt;li&gt;presents the physical foundations and how to simulate them in an offline rendering system&lt;/li&gt;
&lt;li&gt;followed by how the sky method has been adjusted to be used in real-time through heavy use of LUT&lt;/li&gt;
&lt;li&gt;discusses how to control the method through simplified parameters&lt;/li&gt;
&lt;li&gt;additionally covers how they approached cloud rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-284/gt7_sky.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230418134057/https://www.gdcvault.com/play/1029434/Advanced-Graphics-Summit-Realistic-Real&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mini.gmshaders.com/p/gm-shaders-mini-fxaa&#34; target=&#34;_blank&#34; id=&#34;GM Shaders Mini: FXAA&#34;&gt;GM Shaders Mini: FXAA&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the short tutorial presents how the FXAA algorithm is implemented&lt;/li&gt;
&lt;li&gt;presents how the algorithm works in simple terms&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-284/FXAA.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230424170842/https://mini.gmshaders.com/p/gm-shaders-mini-fxaa&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://raphlinus.github.io/curves/2023/04/18/bezpath-simplify.html&#34; target=&#34;_blank&#34; id=&#34;Simplifying Bézier paths&#34;&gt;Simplifying Bézier paths&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses techniques to calculate Bézier that use fewer segments than the existing original path&lt;/li&gt;
&lt;li&gt;presents the importance of an error metric and discusses different available options&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-284/bezpath.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230421085252/https://raphlinus.github.io/curves/2023/04/18/bezpath-simplify.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/AcademySoftwareFoundation/MaterialX/releases/tag/v1.38.7&#34; target=&#34;_blank&#34; id=&#34;MaterialX - Version 1.38.7&#34;&gt;MaterialX - Version 1.38.7&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the latest version released from the Open MaterialX standards adds support for MaterialX Graph Editor and support for Metal shader generation&lt;/li&gt;
&lt;li&gt;also adds support for coated emissive surfaces and bitangent input vectors&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-284/MaterialXGraphEditor_Marble.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230424171034/https://github.com/AcademySoftwareFoundation/MaterialX/releases/tag/v1.38.7&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.corsix.org/content/converting-fp32-to-fp16&#34; target=&#34;_blank&#34; id=&#34;The many ways of converting FP32 to FP16&#34;&gt;The many ways of converting FP32 to FP16&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents several different methods to convert between 32 and 16-bit floating point formats&lt;/li&gt;
&lt;li&gt;discusses the implementation, issues, and considerations with each technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-284/float_to_half.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230424032521/https://www.corsix.org/content/converting-fp32-to-fp16&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://eliemichel.github.io/LearnWebGPU/basic-compute/image-processing/mipmap-generation.html&#34; target=&#34;_blank&#34; id=&#34;Mipmap Generation&#34;&gt;Mipmap Generation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial explains how to use WebGPU to use compute shaders to calculate the MIP maps for textures&lt;/li&gt;
&lt;li&gt;presents the implementation of a one MIP level at a time technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-284/mip_generation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230424171121/https://eliemichel.github.io/LearnWebGPU/basic-compute/image-processing/mipmap-generation.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://paddy-exe.github.io/posts/contributing-to-godot-visual-shader-nodes/&#34; target=&#34;_blank&#34; id=&#34;Contributing to Godot - Visual Shaders Nodes&#34;&gt;Contributing to Godot - Visual Shaders Nodes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to introduce custom shader nodes into the Godot Visual shader graph&lt;/li&gt;
&lt;li&gt;shows an example of how to color an object following the UVs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-284/TutorialUVShowcase.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230424171241/https://paddy-exe.github.io/posts/contributing-to-godot-visual-shader-nodes/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jvns.ca/blog/2023/04/19/new-playground-integer-exposed/&#34; target=&#34;_blank&#34; id=&#34;New playground: integer.exposed&#34;&gt;New playground: integer.exposed&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article introduces two new interactive playgrounds for integer and floating point numbers&lt;/li&gt;
&lt;li&gt;allows experimenting with how different numbers are encoded into the underlying bit patterns&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-284/float-exposed.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230421003303/https://jvns.ca/blog/2023/04/19/new-playground-integer-exposed/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://lesleylai.info&#34; target=&#34;_blank&#34;&gt;Lesley Lai&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 283 - April 16th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-283/</link>
      <pubDate>Sun, 16 Apr 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-283/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.gdcvault.com/play/1028914/Advanced-Graphics-Summit-Marvel-s&#34; target=&#34;_blank&#34; id=&#34;[video] Advanced Graphics Summit: &amp;#39;Marvel&amp;#39;s Spider-Man&amp;#39; Remastered: A PC Postmortem&#34;&gt;[video] Advanced Graphics Summit: &amp;#39;Marvel&amp;#39;s Spider-Man&amp;#39; Remastered: A PC Postmortem&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk discusses how the PC port approaches PSO management to reduce stutter and manage memory when the game was designed for unified memory&lt;/li&gt;
&lt;li&gt;how they approached ray-tracing for parity with the PS5 implementation and what extension got added to improve the quality&lt;/li&gt;
&lt;li&gt;detailed section on how to further debug GPU issues on PC and how to deal with super wide resolution rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-283/gdc_reflection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230414120936/https://www.gdcvault.com/play/1028914/Advanced-Graphics-Summit-Marvel-s&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ItGbib1wd0o&#34; target=&#34;_blank&#34; id=&#34;[video] Everyone can understand transformation matrices - and how it works&#34;&gt;[video] Everyone can understand transformation matrices - and how it works&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains visually to read and understand 4x4 transformation matrixes&lt;/li&gt;
&lt;li&gt;explains the basic of matrix/vector operations&lt;/li&gt;
&lt;li&gt;presents how to combine the operations to allow rotations, scaling, and translations of objects using a visual approach&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-283/matrix_multiplication.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://c0de517e.blogspot.com/2023/04/half-baked-and-half-small-update.html&#34; target=&#34;_blank&#34; id=&#34;Half baked and a half: a small update&#34;&gt;Half baked and a half: a small update&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes the approach of incrementally accumulating voxel data to augment the reprojection of the previous depth buffer&lt;/li&gt;
&lt;li&gt;shows images of how the depth buffer develops over time and how small sub-voxels can help to improve the results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-283/voxel_packing_update.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230417041216/http://c0de517e.blogspot.com/2023/04/half-baked-and-half-small-update.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://godotengine.org/article/d3d12-adventures-in-shaderland&#34; target=&#34;_blank&#34; id=&#34;Direct3D 12: Adventures in Shaderland&#34;&gt;Direct3D 12: Adventures in Shaderland&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes how Godot converts SPIR-V shaders to DXIL for D3D12&lt;/li&gt;
&lt;li&gt;covers the  old approaches (SPIRV-Cross) and why it was replaced with using Mesa’s NIR approach&lt;/li&gt;
&lt;li&gt;discusses what SPIR-V Specialization constants are and how a patchable DXIL is created to allow the approach with D3D12&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-283/scs-in-dxil.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230415063852/https://godotengine.org/article/d3d12-adventures-in-shaderland/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=NL7KnFZ8SgQ&#34; target=&#34;_blank&#34; id=&#34;[video] I3D 2023 Papers Preview&#34;&gt;[video] I3D 2023 Papers Preview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents an overview of the papers that will be presented during the I3D 2023 in Bellevue&lt;/li&gt;
&lt;li&gt;covering interactive Neural Radiance Fields, importance sampling for Dynamic Diffuse Global Illumination, real-time dune simulation, and many more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-283/ddgi.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=I-ORt8313Og&#34; target=&#34;_blank&#34; id=&#34;[video] Cyberpunk 2077 Ray Tracing: Overdrive Technology Preview on RTX 4090&#34;&gt;[video] Cyberpunk 2077 Ray Tracing: Overdrive Technology Preview on RTX 4090&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents the visual difference the overdrive (ReStir-based) raytracing implementation for Cyberpunk 2077 can achieve&lt;/li&gt;
&lt;li&gt;compares against the prior ray tracing implementation and the maximum rasterization quality&lt;/li&gt;
&lt;li&gt;shows cases where the mode makes a huge difference&lt;/li&gt;
&lt;li&gt;additionally presents the performance influence of the mode&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-283/cyberpunk_2077_overdrive.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/NVIDIAGameWorks/Displacement-MicroMap-Toolkit&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Displacement Micro-Map Toolkit&#34;&gt;NVIDIA Displacement Micro-Map Toolkit&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Nvidia released the Displacement Micro-Map Toolkit SDK&lt;/li&gt;
&lt;li&gt;provided samples and documentation explaining the capability and how to use them from Vulkan&lt;/li&gt;
&lt;li&gt;the technique allows the triangle to be sub-divided and displaced with a highly compressible format&lt;/li&gt;
&lt;li&gt;this can be raytraced to add additional detail at lower costs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-283/micromesh_reefcrab.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230417041302/https://github.com/NVIDIAGameWorks/Displacement-MicroMap-Toolkit&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.willusher.io/graphics/2023/04/10/0-to-gltf-triangle&#34; target=&#34;_blank&#34; id=&#34;From 0 to glTF with WebGPU: The First Triangle - Updated for Chrome 113 Release&#34;&gt;From 0 to glTF with WebGPU: The First Triangle - Updated for Chrome 113 Release&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial shows how to render a first triangle with WebGPU&lt;/li&gt;
&lt;li&gt;this is using the final WebGPU spec as it is now publically available in Chrome&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-283/WebGPU.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230417041325/https://www.willusher.io/graphics/2023/04/10/0-to-gltf-triangle&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://web3dsurvey.com&#34; target=&#34;_blank&#34; id=&#34;Web3D Survey&#34;&gt;Web3D Survey&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the website collects information about the API and extension availability for Web-based usage&lt;/li&gt;
&lt;li&gt;supports WebGL, WebGL2 and WebGPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-283/webGPU_support.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230406140135/https://web3dsurvey.com/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/robert-wallis&#34; target=&#34;_blank&#34;&gt;Robert Wallis&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 282 - April 9th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-282/</link>
      <pubDate>Sun, 09 Apr 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-282/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/matrix-compendium/matrix-compendium-intro/&#34; target=&#34;_blank&#34; id=&#34;Matrix Compendium&#34;&gt;Matrix Compendium&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a central place for matrix understanding for computer graphics&lt;/li&gt;
&lt;li&gt;explains storage and multiplication order, how they are expressed in HLSL and GLSL&lt;/li&gt;
&lt;li&gt;explains coordinate system handedness, what the left-hand/right-hand rules are&lt;/li&gt;
&lt;li&gt;additionally presents some questions that help to detect conventions used if applications did not document their choices&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-282/matrix_compendium.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230405225305/https://gpuopen.com/learn/matrix-compendium/matrix-compendium-Intro/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2023/04/07/random-sampling-experiments-avoid-the-sides/&#34; target=&#34;_blank&#34; id=&#34;Random Sampling Experiments: Avoid The Sides!&#34;&gt;Random Sampling Experiments: Avoid The Sides!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post shows different sampling strategies&lt;/li&gt;
&lt;li&gt;presents the patterns along 1D lines, 2D squares as well as 2D circles&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-282/2dcirclepoints.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230408204925/https://blog.demofox.org/2023/04/07/random-sampling-experiments-avoid-the-sides/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/80733547&#34; target=&#34;_blank&#34; id=&#34;Shader Tutorial: Color Correction&#34;&gt;Shader Tutorial: Color Correction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial explains how to apply color modifications in shaders&lt;/li&gt;
&lt;li&gt;shows how to modify luminance, saturation, brightness, or contrast&lt;/li&gt;
&lt;li&gt;implementation is provided using Unity shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-282/color_saturation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=pVKDfZMffpc&#34; target=&#34;_blank&#34; id=&#34;[video] Stylized Grass and the many techniques available in UE to reach the desired style &amp;amp; performance&#34;&gt;[video] Stylized Grass and the many techniques available in UE to reach the desired style &amp;amp; performance&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the long Video explains detailed how to render a Stylized grass&lt;/li&gt;
&lt;li&gt;covers the art creation, shader logic, performance considerations&lt;/li&gt;
&lt;li&gt;additionally covers how to apply movement, occlude parts if intersecting with the camera, LOD setup, and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-282/grass.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/download/publications/I3D2023_SubspaceCulling_updated.pdf&#34; target=&#34;_blank&#34; id=&#34;Subspace Culling for Ray–Box Intersection&#34;&gt;Subspace Culling for Ray–Box Intersection&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper proposes a new solution to accelerate AABB when used as BVH for objects that are thin and diagonal&lt;/li&gt;
&lt;li&gt;the solution presented embeds a binary voxel data structure for each node and showed how to use these to reduce false positives&lt;/li&gt;
&lt;li&gt;additionally presents how to use a LUT to compress the voxel data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-282/subspace_bvh.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230412030213/https://gpuopen.com/download/publications/I3D2023_SubspaceCulling_updated.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/download/publications/Efficient_Spatial_Resampling_Using_the_PDF_Similarity.pdf&#34; target=&#34;_blank&#34; id=&#34;Efficient Spatial Resampling Using the PDF Similarity&#34;&gt;Efficient Spatial Resampling Using the PDF Similarity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a new rejection method based on the PDF shape similarity between pixels for single-bounce ReSTIR&lt;/li&gt;
&lt;li&gt;this helps to reduce spatial resampling across shadow edges and material boundaries&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-282/pdf_similarity.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.zyanidelab.com/world-space-path-resampling/&#34; target=&#34;_blank&#34; id=&#34;World Space Path Resampling&#34;&gt;World Space Path Resampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of ReSTIR/ReGIR, explaining similarities and differences between the techniques&lt;/li&gt;
&lt;li&gt;shows how to set up reservoirs to allow spatial path reuse&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-282/world_space_reservoir.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230410070136/http://www.zyanidelab.com/world-space-path-resampling/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/lets-talk-about-80837090&#34; target=&#34;_blank&#34; id=&#34;let&amp;#39;s talk about normals&#34;&gt;let&amp;#39;s talk about normals&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the difference between Object Normals, Tangent Normals as well as World Normals&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-282/normal_types.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/maxandonuts&#34; target=&#34;_blank&#34;&gt;Max R.R. Collada&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 281 - April 2nd, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-281/</link>
      <pubDate>Sun, 02 Apr 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-281/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://metalbyexample.com/mesh-shaders/&#34; target=&#34;_blank&#34; id=&#34;Mesh Shaders and Meshlet Culling in Metal 3&#34;&gt;Mesh Shaders and Meshlet Culling in Metal 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of use cases for mesh shaders&lt;/li&gt;
&lt;li&gt;shows how to implement a mesh shader implementation that breaks down a mesh into parts and culls these&lt;/li&gt;
&lt;li&gt;presents frustum culling and cone culling for a meshlet-based model&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-281/meshlets_metal.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230403173449/https://metalbyexample.com/mesh-shaders/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/you-can-use-vulkan-without-pipelines-today&#34; target=&#34;_blank&#34; id=&#34;You Can Use Vulkan Without Pipelines Today&#34;&gt;You Can Use Vulkan Without Pipelines Today&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post introduces the VK_EXT_shader_object extension that allows Vulkan to be used without pipeline objects&lt;/li&gt;
&lt;li&gt;instead, applications create shader objects for each stage (and optionally link these). All state setting is dynamic&lt;/li&gt;
&lt;li&gt;the article describes performance expectations that drivers need to follow if they report the feature as supported&lt;/li&gt;
&lt;li&gt;additionally describes how to test the feature on hardware today&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-281/khronos.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230403194940/https://www.khronos.org/blog/you-can-use-vulkan-without-pipelines-today&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ssteinberg.xyz/2023/03/27/rtplt/&#34; target=&#34;_blank&#34; id=&#34;A Generalized Ray Formulation For Wave-Optics Rendering&#34;&gt;A Generalized Ray Formulation For Wave-Optics Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a generalized ray concept into wave-optical light transport&lt;/li&gt;
&lt;li&gt;presents how to use the generalized concept to apply path tracing sampling techniques to wave behavior modeling&lt;/li&gt;
&lt;li&gt;shows how the technique compares in quality and performance to existing techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-281/rayoptics_snakeenclosure.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230329082506/https://ssteinberg.xyz/2023/03/27/rtplt/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/preview-agility-sdk-1-710-0&#34; target=&#34;_blank&#34; id=&#34;Agility SDK 1.710.0-preview: GPU Upload Heaps and Non-normalized Sampling&#34;&gt;Agility SDK 1.710.0-preview: GPU Upload Heaps and Non-normalized Sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the new D3D12 SDK adds support for CPU and GPU shared heaps on iGPUs and GPUs with re-bar support&lt;/li&gt;
&lt;li&gt;additionally adds support for texel coordinate sampling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-281/d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230401180602/https://devblogs.microsoft.com/directx/preview-agility-sdk-1-710-0/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://xordev.substack.com/p/gm-shaders-mini-derivatives&#34; target=&#34;_blank&#34; id=&#34;GM Shaders Mini: Derivatives&#34;&gt;GM Shaders Mini: Derivatives&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains what function derivatives are and how they are helpful in shaders&lt;/li&gt;
&lt;li&gt;presents a couple of examples to show derivatives in action&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-281/derivates.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230000000000*/https://xordev.substack.com/p/gm-shaders-mini-derivatives&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://terathon.com/gdc23_lengyel.pdf&#34; target=&#34;_blank&#34; id=&#34;Practical Projective Geometric Algebra&#34;&gt;Practical Projective Geometric Algebra&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;slides of the GDC talking covering Geometric Algebra have been released&lt;/li&gt;
&lt;li&gt;the presentation covers the building blocks of the algebra and how it connects to concepts from other algebras&lt;/li&gt;
&lt;li&gt;shows how common operations and primitives can be represented using  Geometric Algebra concepts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-281/geometric_algebra.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230324063326/https://terathon.com/gdc23_lengyel.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Qz0KTGYJtUk&#34; target=&#34;_blank&#34; id=&#34;[video] Coding Adventure: Ray Tracing&#34;&gt;[video] Coding Adventure: Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the detailed video tutorial shows how to implement raytracing applications&lt;/li&gt;
&lt;li&gt;explains and implements concepts such as reflection, simple sky models, depth of field, lighting, and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-281/depth_of_field.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-and-id3d12manualwritetrackingresource/&#34; target=&#34;_blank&#34; id=&#34;PIX and ID3D12ManualWriteTrackingResource&#34;&gt;PIX and ID3D12ManualWriteTrackingResource&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the new API allows applications to disable the use of kernel WRITE_WATCH for CPU-visible GPU memory&lt;/li&gt;
&lt;li&gt;applications promise to track access and inform pix explicitly instead of relying on the OF&lt;/li&gt;
&lt;li&gt;this is required because of limitations in win10 and non-insider builds of windows 11 today that affect performance negatively&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-281/pix_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230330192015/https://devblogs.microsoft.com/pix/pix-and-id3d12manualwritetrackingresource/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/adalbertobruno/&#34; target=&#34;_blank&#34;&gt;Adalberto Bruno&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 280 - March 26th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-280/</link>
      <pubDate>Sun, 26 Mar 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-280/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/gdc-2023-fidelityfx-sdk-fsr3/&#34; target=&#34;_blank&#34; id=&#34;GDC 2023: Introducing the FidelityFX SDK with new technologies, an early look at FSR 3 &amp;#43; more!&#34;&gt;GDC 2023: Introducing the FidelityFX SDK with new technologies, an early look at FSR 3 &amp;#43; more!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD released the videos and slides from the sponsored session at GDC23&lt;/li&gt;
&lt;li&gt;covers the new FidelityFX SDK, Real-time sparse distance fields for games, temporal upscaling as well as direct storage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-280/amd_gdc.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230325150615/https://gpuopen.com/gdc-2023-fidelityfx-sdk-fsr3/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/gdc-presentations/2023/GDC-2023-Sparse-Distance-Fields-For-Games.pdf&#34; target=&#34;_blank&#34; id=&#34;Real-time sparse distance fields for games&#34;&gt;Real-time sparse distance fields for games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation introduces the implementation of Brixelizer, an AMD real-time generator for sparse distance fields&lt;/li&gt;
&lt;li&gt;discusses what sparse distance fields are, how they can be generated&lt;/li&gt;
&lt;li&gt;followed by a discussion of how Brixelizer can be used to generate the necessary data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-280/sparse_voxel_grid.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230327185912/https://gpuopen.com/gdc-presentations/2023/GDC-2023-Sparse-Distance-Fields-For-Games.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://puye.blog/posts/SG-Intro-EN/&#34; target=&#34;_blank&#34; id=&#34;Introduction to Spherical Gaussians&#34;&gt;Introduction to Spherical Gaussians&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article introduces Spherical Gaussians based on the Spherical Harmonics covered in the last part&lt;/li&gt;
&lt;li&gt;presents how these two representations differ, strengths and weaknesses&lt;/li&gt;
&lt;li&gt;additionally introduces Ambient Cube encoding for diffuse lighting&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-280/SGexample.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230328062621/https://puye.blog/posts/SG-Intro-EN/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://maxliani.wordpress.com/2023/03/24/dnnd-2-tensors-and-convolution/&#34; target=&#34;_blank&#34; id=&#34;DNND 2: Tensors and Convolution&#34;&gt;DNND 2: Tensors and Convolution&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the second article of the series continues uncovering how Deep Neural Networks are implemented&lt;/li&gt;
&lt;li&gt;looking at aim to reconstruct the Intel Open Image Denoise open-source library&lt;/li&gt;
&lt;li&gt;explains the concept of Tensors, Convolution, and how these concepts are combined to form Convolutional Neural Networks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-280/tensor_filter.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230325030428/https://maxliani.wordpress.com/2023/03/24/dnnd-2-tensors-and-convolution/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://youtu.be/08dApu_vS4c&#34; target=&#34;_blank&#34; id=&#34;[video] Geomipmapping // Terrain Rendering episode #6&#34;&gt;[video] Geomipmapping // Terrain Rendering episode #6&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the terrain video tutorial series introduces a continuous level of detail for geometric details&lt;/li&gt;
&lt;li&gt;explains the implementation of Geomipmapping, discussing the vertex number requirements and how to deal with edges between LODs&lt;/li&gt;
&lt;li&gt;implementation with OpenGL is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-280/terrain_geometry.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://chipsandcheese.com/2023/03/22/raytracing-on-amds-rdna-2-3-and-nvidias-turing-and-pascal/&#34; target=&#34;_blank&#34; id=&#34;Raytracing on AMD’s RDNA 2/3, and Nvidia’s Turing and Pascal&#34;&gt;Raytracing on AMD’s RDNA 2/3, and Nvidia’s Turing and Pascal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article uses the AMD and Nvidia dev tools to take a look at how they approach the BVH building process&lt;/li&gt;
&lt;li&gt;compares different hardware and presents performance comparisons&lt;/li&gt;
&lt;li&gt;Hogwarts Legacy and Cyberpunk 2077 are used as examples&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-280/cyberpunk_bvh.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230323061217/https://chipsandcheese.com/2023/03/22/raytracing-on-amds-rdna-2-3-and-nvidias-turing-and-pascal/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/aortizelguero&#34; target=&#34;_blank&#34;&gt;Angel Ortiz&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 279 - March 19th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-279/</link>
      <pubDate>Sun, 19 Mar 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-279/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://c0de517e.blogspot.com/2023/03/half-baked-dynamic-occlusion-culling.html&#34; target=&#34;_blank&#34; id=&#34;Half baked: Dynamic Occlusion Culling&#34;&gt;Half baked: Dynamic Occlusion Culling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses designs and considerations for occlusion Culling techniques&lt;/li&gt;
&lt;li&gt;lists limitations of existing techniques for fully dynamic worlds&lt;/li&gt;
&lt;li&gt;discusses two prototypes covering screen-space depth reprojection as well as world space voxelization&lt;/li&gt;
&lt;li&gt;presents weaknesses of the techniques, open issues, and next steps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-279/occlusion_voxelization.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230315184414/http://c0de517e.blogspot.com/2023/03/half-baked-dynamic-occlusion-culling.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zed.dev/blog/videogame&#34; target=&#34;_blank&#34; id=&#34;Leveraging Rust and the GPU to render user interfaces at 120 FPS&#34;&gt;Leveraging Rust and the GPU to render user interfaces at 120 FPS&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the implementation of the GPUI library&lt;/li&gt;
&lt;li&gt;shows how to derive SDFs for rectangles and how to apply drop shadows using separable blurs&lt;/li&gt;
&lt;li&gt;additionally covers how font rendering is implemented by using the OS and GPU caching&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-279/rectangle_sdf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230316114234/https://zed.dev/blog/videogame&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://threadreaderapp.com/thread/1637417126255271936.html&#34; target=&#34;_blank&#34; id=&#34;CPU-&amp;gt;GPU data transfer - What is the best way to provide GPU the data inputs for each draw call on every API&#34;&gt;CPU-&amp;gt;GPU data transfer - What is the best way to provide GPU the data inputs for each draw call on every API&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Twitter thread discusses different methods to upload per-draw call GPU data&lt;/li&gt;
&lt;li&gt;presents how to use Metal, Vulkan, and WebGL 2.0&lt;/li&gt;
&lt;li&gt;additionally presents pointers on how to apply it for D3D12&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-279/vulkan_d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230320200126/https://threadreaderapp.com/thread/1637417126255271936.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://fgiesen.wordpress.com/2023/03/19/notes-on-ffts-for-users/&#34; target=&#34;_blank&#34; id=&#34;Notes on FFTs: for users&#34;&gt;Notes on FFTs: for users&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents different use cases of Fourier Transforms from a user perspective&lt;/li&gt;
&lt;li&gt;explains what to use them for and how&lt;/li&gt;
&lt;li&gt;presents strengths/weaknesses of the library design and how it affects the workloads&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-279/fft.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230320165401/https://fgiesen.wordpress.com/2023/03/19/notes-on-ffts-for-users/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=bN84YxaBEGw&#34; target=&#34;_blank&#34; id=&#34;[Video] Iridescent Bubble Shader - Advanced Materials - Episode 18&#34;&gt;[Video] Iridescent Bubble Shader - Advanced Materials - Episode 18&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains the effect of iridescence, why it happens, and how to replicate it&lt;/li&gt;
&lt;li&gt;then uses the principles to implement a soap bubble shader using both Unity and Unreal&lt;/li&gt;
&lt;li&gt;shader implementation is shown using the Visual Shader language&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-279/soap_bubbles.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://protowlf.com/unreal/unreal-stencil-lights/&#34; target=&#34;_blank&#34; id=&#34;[Unreal] GameCube-Style Stencil Lights&#34;&gt;[Unreal] GameCube-Style Stencil Lights&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses how to implement a lighting model as found in the Legend of Zelda: The Wind Waker&lt;/li&gt;
&lt;li&gt;presents how to set up the blueprint as well as the shader logic required for the effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-279/Teaser_UnrealStencilLights.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230320195849/https://protowlf.com/unreal/unreal-stencil-lights/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://maxliani.wordpress.com/2023/03/17/dnnd-1-a-deep-neural-network-dive/&#34; target=&#34;_blank&#34; id=&#34;DNND 1: a Deep Neural Network Dive&#34;&gt;DNND 1: a Deep Neural Network Dive&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the basics of Convolutional Neural Networks&lt;/li&gt;
&lt;li&gt;the series aim is to explore the denoising implementation of the Intel Open Image Denoise library&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-279/denoiser_dragon_path_traced.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230320200558/https://maxliani.wordpress.com/2023/03/17/dnnd-1-a-deep-neural-network-dive/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@arijitn001/depth-only-ssao-for-forward-renderers-1a3dcfa1873a&#34; target=&#34;_blank&#34; id=&#34;Depth-only Screen Space Ambient Occlusion (SSAO) for Forward Renderers&#34;&gt;Depth-only Screen Space Ambient Occlusion (SSAO) for Forward Renderers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to implement SSAO using WebGL 2&lt;/li&gt;
&lt;li&gt;provides a high-level overview of the steps required and how to implement these&lt;/li&gt;
&lt;li&gt;discusses limitations of the technique as well as parts where forward and deferred shading paths would diverge&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-279/webgl_ssao.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230320200246/https://medium.com/@arijitn001/depth-only-ssao-for-forward-renderers-1a3dcfa1873a&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://www.plane9.com&#34; target=&#34;_blank&#34;&gt;Joakim Dahl&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 278 - March 12th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-278/</link>
      <pubDate>Sun, 12 Mar 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-278/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alexanderameye.github.io/notes/stylized-water-shader&#34; target=&#34;_blank&#34; id=&#34;Stylized Water Shader&#34;&gt;Stylized Water Shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial explains how to create a Stylized Water Shader using Unity from start to finish&lt;/li&gt;
&lt;li&gt;show how to calculate water depth, apply underwater color, waves, foam shading, and more to create the effect&lt;/li&gt;
&lt;li&gt;presents the results of the different effects and how to tweak them for the desired results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-278/water_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230313034738/https://alexanderameye.github.io/notes/stylized-water-shader/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://renderwonk.com/publications/wp-generalization-adobe/&#34; target=&#34;_blank&#34; id=&#34;Generalization of Adobe&amp;#39;s Fresnel Model&#34;&gt;Generalization of Adobe&amp;#39;s Fresnel Model&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the short paper presents an extension to the Adobe Standard Material model that allows specific reflectance at 90 degrees and the ability to control the interpolation exponent&lt;/li&gt;
&lt;li&gt;discusses reflectance models limitations, evolutions, and proposed solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-278/adobe_standard_material.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://renderwonk.com/publications/wp-generalization-adobe/gen-adobe.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://puye.blog/posts/SH-Introduction-EN/&#34; target=&#34;_blank&#34; id=&#34;Introduction to Spherical Harmonics&#34;&gt;Introduction to Spherical Harmonics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article aims to provide an understanding of Spherical Harmonics without requiring advanced mathematics&lt;/li&gt;
&lt;li&gt;develops the intuition from 2D cases before expanding into an extra dimension&lt;/li&gt;
&lt;li&gt;additionally discusses why 3rd order Spherical harmonics are commonly used in computer graphics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-278/sh-introduction.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230314055257/https://puye.blog/posts/SH-Introduction-EN/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Euvy_R03rlg&#34; target=&#34;_blank&#34; id=&#34;[video] Sharp Text Shader - Advanced Materials - Episode 18&#34;&gt;[video] Sharp Text Shader - Advanced Materials - Episode 18&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows how to create a text shader using signed distance fields and how to develop data for use with the effect&lt;/li&gt;
&lt;li&gt;compares the result against a classical texture approach&lt;/li&gt;
&lt;li&gt;implementation is shown using Unity and Unreal visual scripting&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-278/improved_text_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jorenjoestar.github.io/post/year_of_the_vulkan_book&#34; target=&#34;_blank&#34; id=&#34;The Year of the Vulkan Book&#34;&gt;The Year of the Vulkan Book&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the author&amp;rsquo;s experience of writing &amp;ldquo;Mastering Graphics Programming with Vulkan&amp;rdquo;&lt;/li&gt;
&lt;li&gt;explains the approach taken to concept development, lessons learned along the way and  a look at what could be improved&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-278/vulkan_book.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230311165401/https://jorenjoestar.github.io/post/year_of_the_vulkan_book/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.o3de.org/blog/posts/vectors-matrices-matrix-order/&#34; target=&#34;_blank&#34; id=&#34;Vectors, Matrices &amp;amp; Matrix Order&#34;&gt;Vectors, Matrices &amp;amp; Matrix Order&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses matrix and vector representation&lt;/li&gt;
&lt;li&gt;shows the distinction between logical row vs. vector and the memory order&lt;/li&gt;
&lt;li&gt;explains the effects of different layouts for multiplication order&lt;/li&gt;
&lt;li&gt;additionally lists the pros/cons of different combinations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-278/matrix_multiplication.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230306051500/https://www.o3de.org/blog/posts/vectors-matrices-matrix-order/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/JasperBekkers/&#34; target=&#34;_blank&#34;&gt;Jasper Bekkers&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 277 - March 6th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-277/</link>
      <pubDate>Sun, 05 Mar 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-277/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2023/03/01/Float-Compression-7-More-Filtering-Optimization/&#34; target=&#34;_blank&#34; id=&#34;Float Compression 7: More Filtering Optimization&#34;&gt;Float Compression 7: More Filtering Optimization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article continues the series on float compression topics&lt;/li&gt;
&lt;li&gt;presents how to optimize the process by redesigning the system to take advantage of SIMD instruction sets&lt;/li&gt;
&lt;li&gt;shows how much of a performance difference the usage can make&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-277/float_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230303120655/https://aras-p.info/blog/2023/03/01/Float-Compression-7-More-Filtering-Optimization/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-2303-02/&#34; target=&#34;_blank&#34; id=&#34;PIX 2303.02: You asked, we listened! A bumper PIX release&#34;&gt;PIX 2303.02: You asked, we listened! A bumper PIX release&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new release of PIX contains a vast list of new developments&lt;/li&gt;
&lt;li&gt;some examples are RayGen debugging, the ability to show selected draw objects, pix capture diffs, improved memory allocation view, and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-277/pix_show_selected.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230307063805/https://devblogs.microsoft.com/pix/pix-2303-02/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://marcocastorina.com/2023/02/23/vulkan-buffer-address.html&#34; target=&#34;_blank&#34; id=&#34;Understanding Vulkan device buffer address alignment&#34;&gt;Understanding Vulkan device buffer address alignment&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the alignment requirements of buffer loads from VK_KHR_buffer_device_address&lt;/li&gt;
&lt;li&gt;provides a walkthrough of the generated SPIR-V and explains why the issue occurs by explaining the spec requirements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-277/Vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230307063920/https://marcocastorina.com/2023/02/23/vulkan-buffer-address.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://advances.realtimerendering.com/s2022/index.html#RTCPT&#34; target=&#34;_blank&#34; id=&#34;Real-time Cluster Path Tracing for Remote Rendering&#34;&gt;Real-time Cluster Path Tracing for Remote Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation covers a real-time cluster-based path-tracing renderer&lt;/li&gt;
&lt;li&gt;discusses how the architecture was designed to allow linearly scaling with the number of GPUs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-277/cluster_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230307063921/https://advances.realtimerendering.com/s2022/index.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=sLFHDihszfc&#34; target=&#34;_blank&#34; id=&#34;[video] Simple Lighting in Defold - Screen Space Light Maps&#34;&gt;[video] Simple Lighting in Defold - Screen Space Light Maps&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents a simple lighting model that uses sprites to define light effects&lt;/li&gt;
&lt;li&gt;this is done by defining lights as one render target and combining it with the base world&lt;/li&gt;
&lt;li&gt;implementation using Defold is presented (using GLSL shaders)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-277/screen_space_lightmaps.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.sciencedirect.com/science/article/pii/S0097849323000249&#34; target=&#34;_blank&#34; id=&#34;Vulkan all the way: Transitioning to a modern low-level graphics API in academia&#34;&gt;Vulkan all the way: Transitioning to a modern low-level graphics API in academia&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper explains the experience of transitioning university classes to be taught using Vulkan instead of OpenGL&lt;/li&gt;
&lt;li&gt;discusses difficulties and advantages encountered&lt;/li&gt;
&lt;li&gt;shows how it affects student learning, grades, and project results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-277/vulkan_teaching.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230303221639/https://www.sciencedirect.com/science/article/pii/S0097849323000249&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=HSsPJ4qK6AU&#34; target=&#34;_blank&#34; id=&#34;[video] How to Improve Shader Performance by Resolving LDC Divergence&#34;&gt;[video] How to Improve Shader Performance by Resolving LDC Divergence&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video discusses the problem of non-uniform constant loads within a single wrap&lt;/li&gt;
&lt;li&gt;shows how to use Nvidia NSight to identify the problem&lt;/li&gt;
&lt;li&gt;discusses in detail how to correlate counters, latency, and instruction traces&lt;/li&gt;
&lt;li&gt;using Structured Buffers instead of Constant Buffers will be able to resolve the problem once identified&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-277/nvidia_profiling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cg.tuwien.ac.at/research/publications/2023/SCHUETZ-2023-LOD/SCHUETZ-2023-LOD-paper.pdf&#34; target=&#34;_blank&#34; id=&#34;CUDA LOD Generation&#34;&gt;CUDA LOD Generation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents how to use GPU-based techniques to implement LOD construction of
point clouds&lt;/li&gt;
&lt;li&gt;discusses the different implementation approaches&amp;rsquo; impact on performance and quality&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-277/lod_generation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230307064113/https://www.cg.tuwien.ac.at/research/publications/2023/SCHUETZ-2023-LOD/SCHUETZ-2023-LOD-paper.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=bwq_y0zxpQM&#34; target=&#34;_blank&#34; id=&#34;[video] Lighting // Terrain Rendering episode #5&#34;&gt;[video] Lighting // Terrain Rendering episode #5&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the latest part of the video tutorial discusses how to apply lighting to a terrain using OpenGL&lt;/li&gt;
&lt;li&gt;discusses standard diffuse lighting and Slope Lighting&lt;/li&gt;
&lt;li&gt;provides a high-level overview of each technique and discusses the implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-277/terrain_light.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://pharr.org/matt&#34; target=&#34;_blank&#34;&gt;Matt Pharr&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 276 - February 26th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-276/</link>
      <pubDate>Sun, 26 Feb 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-276/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://c0de517e.blogspot.com/2023/02/how-to-render-it-ten-ideas-to-solve.html&#34; target=&#34;_blank&#34; id=&#34;How to render it. Ten ideas to solve Computer Graphics problems.&#34;&gt;How to render it. Ten ideas to solve Computer Graphics problems.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of 10 aspects to consider when approaching solving a computer graphics problem&lt;/li&gt;
&lt;li&gt;discusses the importance of understanding the working space, data representation, as well as time constraints&lt;/li&gt;
&lt;li&gt;presents how to take advantage of generic data science techniques (such as data visualization/exploration, Numerical optimization, &amp;hellip;) to gain new insights&lt;/li&gt;
&lt;li&gt;additionally shows how ground truth and Machine learning techniques can be combined to develop an intuition of the limits of a given solution&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-276/idea_generation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230227012418/http://c0de517e.blogspot.com/2023/02/how-to-render-it-ten-ideas-to-solve.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://vulkan.org/user/pages/09.events/vulkanised-2023/vulkanised_2023_setting_up_a_bindless_rendering_pipeline.pdf&#34; target=&#34;_blank&#34; id=&#34;Setting up a bindless rendering pipeline&#34;&gt;Setting up a bindless rendering pipeline&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk describes to setup a bindless rendering pipeline using Vulkan, D3D12, and HLSL shaders&lt;/li&gt;
&lt;li&gt;shows how to set up the CPU side management to allow GPU side validation&lt;/li&gt;
&lt;li&gt;describes the emulations required for Vulkan&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-276/bindless_render_pipeline.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://youtu.be/nC-MvEaVs4g&#34; style=&#34;color:white;&#34;&gt;video &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230227012427/https://vulkan.org/user/pages/09.events/vulkanised-2023/vulkanised_2023_setting_up_a_bindless_rendering_pipeline.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.reedbeta.com/blog/reading-veach-thesis-2&#34; target=&#34;_blank&#34; id=&#34;Reading Veach’s Thesis, Part 2&#34;&gt;Reading Veach’s Thesis, Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article continues a series of understanding the Robust Monte Carlo Methods for Light Transport Simulation master thesis&lt;/li&gt;
&lt;li&gt;this article focuses on the understanding of multiple-importance sampling&lt;/li&gt;
&lt;li&gt;explains the insights required to better understand the balance heuristic especially&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-276/mis02.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230227012414/https://www.reedbeta.com/blog/reading-veach-thesis-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lisyarus.github.io/blog/graphics/2023/02/24/blur-coefficients-generator.html&#34; target=&#34;_blank&#34; id=&#34;Two-pass Gaussian blur coeffifients generator&#34;&gt;Two-pass Gaussian blur coeffifients generator&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a calculator that generates offsets and weights for a separable Gaussian blur filter&lt;/li&gt;
&lt;li&gt;allows the specification of a couple of settings (radius, sigma, filtering mode, &amp;hellip;) and generates GLSL code&lt;/li&gt;
&lt;li&gt;explains the underlying logic and shows how to implement the filter in GLSL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-276/gaussian_blur.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230227012427/https://lisyarus.github.io/blog/graphics/2023/02/24/blur-coefficients-generator.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://toji.dev/webgpu-best-practices/error-handling&#34; target=&#34;_blank&#34; id=&#34;WebGPU Error Handling best practices&#34;&gt;WebGPU Error Handling best practices&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes the error handling techniques that are available when using WebGPU&lt;/li&gt;
&lt;li&gt;defaults will print detailed errors to the console, but developers can define scopes to collect information from the program and attach additional information to objects&lt;/li&gt;
&lt;li&gt;additionally presents how to collect detailed information from shader compilation errors&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-276/gl-get-error.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230225034226/https://toji.dev/webgpu-best-practices/error-handling&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://vulkan.org/events/vulkanised-2023&#34; target=&#34;_blank&#34; id=&#34;Vulkanised 2023&#34;&gt;Vulkanised 2023&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the official website collects the links to the videos and slides of the talks presented at the Vulkanised 2023 conference&lt;/li&gt;
&lt;li&gt;not all talks have slides at this time&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-276/Vulkanized-2023.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230227012606/https://vulkan.org/events/vulkanised-2023&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.yosoygames.com.ar/wp/2023/02/an-open-letter-to-arm-mali-please-stop-doing-this/&#34; target=&#34;_blank&#34; id=&#34;An Open Letter to ARM / Mali: Please stop doing this&#34;&gt;An Open Letter to ARM / Mali: Please stop doing this&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents issues with the ARM/mali GPU device IDs and how they relate to GPU performance for game setting tweaking&lt;/li&gt;
&lt;li&gt;shows how that reusing the same ID for multiple chips with large performance delta makes it challenging to identify capabilities correctly&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-276/mali_g76.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230227012559/https://www.yosoygames.com.ar/wp/2023/02/an-open-letter-to-arm-mali-please-stop-doing-this/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevicius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 275 - February 19th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-275/</link>
      <pubDate>Sun, 19 Feb 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-275/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1765_impressions_from_vulkanised_2023_conference&#34; target=&#34;_blank&#34; id=&#34;Impressions from Vulkanised 2023 Conference&#34;&gt;Impressions from Vulkanised 2023 Conference&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents his impression from the Vulkanied conference&lt;/li&gt;
&lt;li&gt;presents an overview of the topics covered, what discussions revealed during panel discussions, and what are common issues&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-275/intro_vulkanised.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230221054752/https://asawicki.info/news_1765_impressions_from_vulkanised_2023_conference&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/playlist?list=PLMLurvdlOpWOluO2PqfGO7XBU8FBlpDug&#34; target=&#34;_blank&#34; id=&#34;[video] Vulkanised 2023&#34;&gt;[video] Vulkanised 2023&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the playlist of video recordings of the talks presented at the  Vulkanised 2023 in Munich&lt;/li&gt;
&lt;li&gt;covers a large number of topics such as Mesh Shader best practices, source-level shader debugging, performance optimizations&lt;/li&gt;
&lt;li&gt;ranges from mobile and desktop to virtual reality&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-275/Vulkanized-2023.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://juandiegomontoya.github.io/teardown_breakdown.html&#34; target=&#34;_blank&#34; id=&#34;Teardown Teardown&#34;&gt;Teardown Teardown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a breakdown of how Teardown is being rendered&lt;/li&gt;
&lt;li&gt;shows all stages of the pipeline required for the final frame&lt;/li&gt;
&lt;li&gt;shows how the G-Buffer is drawn, how details are applied to the voxel&lt;/li&gt;
&lt;li&gt;additionally presents how the weather effects, lighting, as well as denoising are implemented&lt;/li&gt;
&lt;li&gt;additionally covers many more steps of the frame pipeline&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-275/teardown_final_image.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230220130214/https://juandiegomontoya.github.io/teardown_breakdown.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cyanilux.com/tutorials/color-swap/&#34; target=&#34;_blank&#34; id=&#34;Swapping Colours&#34;&gt;Swapping Colours&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of different techniques to adjust object colors from objects&lt;/li&gt;
&lt;li&gt;shows how to implement the presented techniques using Unity visual shader language as well as in HLSL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-275/ReplaceColor.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230221054957/https://www.cyanilux.com/tutorials/color-swap/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=HFPlKQGChpE&#34; target=&#34;_blank&#34; id=&#34;[video] Calculating Ray-Sphere Intersections&#34;&gt;[video] Calculating Ray-Sphere Intersections&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to implement ray-sphere intersection testing&lt;/li&gt;
&lt;li&gt;discusses the mathematic derivation of the technique&lt;/li&gt;
&lt;li&gt;shows how to implement the intersection testing using GLSL in shadertoy&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-275/ray-sphere-intersection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/abs/2302.06468&#34; target=&#34;_blank&#34; id=&#34;Fast Real-Time Shading for Polygonal Hair&#34;&gt;Fast Real-Time Shading for Polygonal Hair&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a technique to approximate hair lighted by an environment map, direct lighting, or a global illumination&lt;/li&gt;
&lt;li&gt;build around the modeling of obstruction around each hair using spherical harmonics instead of requiring deep opacity maps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-275/hair_lighting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230221054930/https://arxiv.org/abs/2302.06468&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2023/02/18/Float-Compression-6-Filtering-Optimization/&#34; target=&#34;_blank&#34; id=&#34;Float Compression 6: Filtering Optimization&#34;&gt;Float Compression 6: Filtering Optimization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post continues the series on float compression techniques&lt;/li&gt;
&lt;li&gt;investigates how SIMD instruction sets can be used to optimize&lt;/li&gt;
&lt;li&gt;presents how it affects the results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-275/float_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230218224631/https://aras-p.info/blog/2023/02/18/Float-Compression-6-Filtering-Optimization/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=8hThP-Yni_o&#34; target=&#34;_blank&#34; id=&#34;[video] Parallax Occlusion Optimization - Advanced Materials - Episode 15&#34;&gt;[video] Parallax Occlusion Optimization - Advanced Materials - Episode 15&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video discusses the difference between Parallax Occlusion and normal mapping&lt;/li&gt;
&lt;li&gt;presents how to optimize the implementation to adjust the steps only for cases where precision is required&lt;/li&gt;
&lt;li&gt;implementation is shown in both Unity and Unreal&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-275/parralax_occlusion_mapping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevicius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 274 - February 12th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-274/</link>
      <pubDate>Sun, 12 Feb 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-274/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/abs/2301.11376&#34; target=&#34;_blank&#34; id=&#34;Screen Space Indirect Lighting with Visibility Bitmask&#34;&gt;Screen Space Indirect Lighting with Visibility Bitmask&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper proposes an expansion of Horizon-based indirect illumination by using visibility bitmasks instead of horizon angles&lt;/li&gt;
&lt;li&gt;stores (occluded / un-occluded) of N sectors uniformly distributed around the hemisphere slice instead&lt;/li&gt;
&lt;li&gt;meant to improve results for thin surfaces&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-274/hemisphere_slices.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230130014430/https://arxiv.org/abs/2301.11376&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.42yeah.is/rendering/2023/02/11/clouds.html&#34; target=&#34;_blank&#34; id=&#34;Raymarching Clouds&#34;&gt;Raymarching Clouds&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post provides a walkthrough of how to implement raymarching for volumetric clouds&lt;/li&gt;
&lt;li&gt;provides an implementation using shadertoy&lt;/li&gt;
&lt;li&gt;additionally discusses further issues and further steps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-274/clouds.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230213060050/https://blog.42yeah.is/rendering/2023/02/11/clouds.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://xordev.substack.com/p/mini-blendmodes&#34; target=&#34;_blank&#34; id=&#34;GM Shaders Mini: Blendmodes&#34;&gt;GM Shaders Mini: Blendmodes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the short tutorial shows how to recreate photoshop blend modes using GLSL shader code&lt;/li&gt;
&lt;li&gt;contains a link to a GLSL implementation of additional blend mode implementations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-274/blendmodes.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230213060147/https://xordev.substack.com/p/mini-blendmodes&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://kristoffer-dyrkorn.github.io/triangle-rasterizer&#34; target=&#34;_blank&#34; id=&#34;A fast and precise triangle rasterizer&#34;&gt;A fast and precise triangle rasterizer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to implement a software triangle rasterizer&lt;/li&gt;
&lt;li&gt;discusses how to evaluate if pixels are inside a triangle&lt;/li&gt;
&lt;li&gt;covers how to deal with edge cases, how to improve constant precision through the use of a fixed-point number representation&lt;/li&gt;
&lt;li&gt;additionally presents performance optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-274/triangle_rasterizer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230213060406/https://kristoffer-dyrkorn.github.io/triangle-rasterizer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://vulkan-tutorial.com/Compute_Shader&#34; target=&#34;_blank&#34; id=&#34;Getting Started with Vulkan Compute Acceleration&#34;&gt;Getting Started with Vulkan Compute Acceleration&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial explains the basics of compute shader usage with Vulkan by implementing a compute-shader-based particle system&lt;/li&gt;
&lt;li&gt;shows how to load compute shaders, bind resources and interact with graphics resources&lt;/li&gt;
&lt;li&gt;additionally covers how the hardware executes compute shaders by explaining concepts such as workgroups and invocations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-274/compute_shader_particles.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230213060431/https://vulkan-tutorial.com/Compute_Shader&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-138-11-02-2023/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 138 (11.02.2023)&#34;&gt;Technically Art: Issue 138 (11.02.2023)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of tech art tweets covering topics such as procedural modeling, volumetric motion blur, skin shader, VFX and visual shader WIP reports
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-274/technically_art_138.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230211104450/https://halisavakis.com/technically-art-issue-138-11-02-2023/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=jAgy8rcZyZU&#34; target=&#34;_blank&#34; id=&#34;[video] Texturing // Terrain Rendering episode #4&#34;&gt;[video] Texturing // Terrain Rendering episode #4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to apply textures to a terrain system&lt;/li&gt;
&lt;li&gt;provides a recap of texture mapping techniques and how to apply textures based on the height of the terrain&lt;/li&gt;
&lt;li&gt;expands upon the techniques to tile texture across the terrain&lt;/li&gt;
&lt;li&gt;additionally shows how to use mipmapping and how it improves the quality of the results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-274/terrain_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Wiktor Czosnowski for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 273 - February 5th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-273/</link>
      <pubDate>Sun, 05 Feb 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-273/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2023/01/29/Float-Compression-0-Intro/&#34; target=&#34;_blank&#34; id=&#34;Float Compression 0: Intro&#34;&gt;Float Compression 0: Intro&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the start of a series of blog posts that explores the space of compressing floating point data&lt;/li&gt;
&lt;li&gt;this post explains the source of the data and patterns of the underlying data&lt;/li&gt;
&lt;li&gt;series compares a large number of techniques, compression solutions, and libraries&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-273/water-height-vis.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230202072302/https://aras-p.info/blog/2023/01/29/Float-Compression-0-Intro/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://xordev.substack.com/p/gm-shaders-mini-normal-maps&#34; target=&#34;_blank&#34; id=&#34;GM Shaders Mini: Normal Maps&#34;&gt;GM Shaders Mini: Normal Maps&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;short tutorial explains the concept of normal maps and how it influences the lighting computations&lt;/li&gt;
&lt;li&gt;shows how to interpret the meaning of the colors&lt;/li&gt;
&lt;li&gt;additionally shows the importance of normal map orientation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-273/mini_normal.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230207045357/https://xordev.substack.com/p/gm-shaders-mini-normal-maps&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/77970534&#34; target=&#34;_blank&#34; id=&#34;Shader Tutorial: Subsurface Scattering&#34;&gt;Shader Tutorial: Subsurface Scattering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to create a shader in Unity that gives an object a subsurface scattering effect&lt;/li&gt;
&lt;li&gt;shows what effect subsurface scattering has on the lighting model&lt;/li&gt;
&lt;li&gt;presents how to integrate it into the standard surface shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-273/subsurface_scattering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/DL043&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://martinfullerblog.wordpress.com/2023/02/01/compute-shader-thread-index-to-2d-coordinate&#34; target=&#34;_blank&#34; id=&#34;Compute Shader thread index to 2D coordinate&#34;&gt;Compute Shader thread index to 2D coordinate&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post explains how to convert a one-dimension threadIndex from compute shader into a 2D coordinate&lt;/li&gt;
&lt;li&gt;shows how to use Quad-wide Shuffle Operations to reduce reliance on group-shared memory&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-273/quad_visulization.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230202155634/https://martinfullerblog.wordpress.com/2023/02/01/compute-shader-thread-index-to-2d-coordinate/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=NDb4WpE5bak&#34; target=&#34;_blank&#34; id=&#34;[video] Sand Shader - Advanced Materials - Episode 14&#34;&gt;[video] Sand Shader - Advanced Materials - Episode 14&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows how to adjust Unity and Unreal Shading models to be more fitting for Sand rendering&lt;/li&gt;
&lt;li&gt;shows how to adjust textures sources for efficient usage from shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-273/sand_unreal.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://omar-shehata.medium.com/webgl-webgpu-jan-2023-meetup-highlights-d29f9e0d0bdc&#34; target=&#34;_blank&#34; id=&#34;WebGL / WebGPU Jan 2023 meetup highlights&#34;&gt;WebGL / WebGPU Jan 2023 meetup highlights&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a summary of what was discussed at the WebGL / WebGPU  meetup&lt;/li&gt;
&lt;li&gt;lists new extensions coming for WebGL and the state of WebGPU rollout&lt;/li&gt;
&lt;li&gt;shows how the most significant obstacle for ThreeJS to adopt WebGPU is the requirement of WGSL shader language&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-273/webgpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230201190823/https://omar-shehata.medium.com/webgl-webgpu-jan-2023-meetup-highlights-d29f9e0d0bdc&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jcgt.org/published/0012/01/02&#34; target=&#34;_blank&#34; id=&#34;The Energy Distance as a Replacement for the Reconstruction Loss in Conditional GANs&#34;&gt;The Energy Distance as a Replacement for the Reconstruction Loss in Conditional GANs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an alternative way to deal with the instability of generative adversarial networks (cGANs)&lt;/li&gt;
&lt;li&gt;suggests replacing the reconstruction loss with the energy distance&lt;/li&gt;
&lt;li&gt;paper contains a one-page summary of the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-273/cgan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230130182858/https://www.jcgt.org/published/0012/01/02/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://martinfullerblog.wordpress.com/2023/01/29/ps2-vector-unit-lighting-on-shadowman2/&#34; target=&#34;_blank&#34; id=&#34;PS2 Vector Unit Lighting on Shadowman2&#34;&gt;PS2 Vector Unit Lighting on Shadowman2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a look back at the Shadowman game implementation for the PS2&lt;/li&gt;
&lt;li&gt;describes how to implement and optimize the four-point light setup while staying within PS2 limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-273/shadowman2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230130230203/https://martinfullerblog.wordpress.com/2023/01/29/ps2-vector-unit-lighting-on-shadowman2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://top-or.de/projects&#34; target=&#34;_blank&#34;&gt;Top-OR&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 272 - January 29nd, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-272/</link>
      <pubDate>Sun, 29 Jan 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-272/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://acko.net/blog/teardown-frame-teardown/&#34; target=&#34;_blank&#34; id=&#34;Teardown Frame Teardown - Rendering analysis&#34;&gt;Teardown Frame Teardown - Rendering analysis&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a rendering analysis of the game Teardown&lt;/li&gt;
&lt;li&gt;shows a look at video captures of the game to develop an intuition before diving into RenderDoc&lt;/li&gt;
&lt;li&gt;shows that the game objects are drawn using a 3D Sprite concept&lt;/li&gt;
&lt;li&gt;the game uses a volumetric shadow map that is updated from the CPU&lt;/li&gt;
&lt;li&gt;additionally covers Lighting, Compositing as well as Post-Processing&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-272/teardown.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230125060805/https://acko.net/blog/teardown-frame-teardown/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0012/01/01/&#34; target=&#34;_blank&#34; id=&#34;Accelerated Photon Mapping for Hardware-based Ray Tracing&#34;&gt;Accelerated Photon Mapping for Hardware-based Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents how to take advantage of ray tracing hardware for progressive photon mapper&lt;/li&gt;
&lt;li&gt;shows how ray tracing–based collection outperforms hash-based GPU photon mapping algorithms&lt;/li&gt;
&lt;li&gt;additionally introduces Photon Culling, a technique to reduce the number of photons stored per iteration&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-272/photon_mapping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230128043024/https://jcgt.org/published/0012/01/01/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.unrealengine.com/en-US/tech-blog/bringing-nanite-to-fortnite-battle-royale-in-chapter-4&#34; target=&#34;_blank&#34; id=&#34;Bringing Nanite to Fortnite Battle Royale in Chapter 4&#34;&gt;Bringing Nanite to Fortnite Battle Royale in Chapter 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains updates required for Chapter 4 of Battle Royale&lt;/li&gt;
&lt;li&gt;shows how increasing triangle counts of the mesh tented is better than masked materials and techniques to preserve vegetation density&lt;/li&gt;
&lt;li&gt;discusses how to handle object animation and improve culling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-272/nanite-in-fortnite-chapter-4.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230128010242/https://www.unrealengine.com/en-US/tech-blog/bringing-nanite-to-fortnite-battle-royale-in-chapter-4&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/compressonator-v4-3-brotli-g/&#34; target=&#34;_blank&#34; id=&#34;Introducing Compressonator v4.3&#34;&gt;Introducing Compressonator v4.3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the new release introduces support for the Brotli-G lossless compression format&lt;/li&gt;
&lt;li&gt;additionally adds support for RGBA_10101002, R8 and 16-Bit PNG File support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-272/compressonator.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230128041753/https://gpuopen.com/learn/compressonator-v4-3-brotli-g/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=MkFS6lw6aEs&#34; target=&#34;_blank&#34; id=&#34;[video] Image-based Lighting (IBL) of PBR Materials [Shaders Monthly #11]&#34;&gt;[video] Image-based Lighting (IBL) of PBR Materials [Shaders Monthly #11]&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents how to implement image-based lighting of the Cook-Torrance microfacet BRDF&lt;/li&gt;
&lt;li&gt;contains how to derive the Ground Truth Solution and shows how the Split Sum Approximation can simplify the equation&lt;/li&gt;
&lt;li&gt;presents how to implement the required shaders using GLSL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-272/ibl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.boristhebrave.com/2023/01/28/infinite-quadtrees-fractal-coordinates/&#34; target=&#34;_blank&#34; id=&#34;Infinite Quadtrees – Fractal Coordinates&#34;&gt;Infinite Quadtrees – Fractal Coordinates&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article introduces the idea of expression quadtrees in terms of a collection of square grids&lt;/li&gt;
&lt;li&gt;this allows the space to grow indefinitely as the used spaces change (movement or zooms)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-272/quadtree.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230128160242/https://www.boristhebrave.com/2023/01/28/infinite-quadtrees-fractal-coordinates/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://eliemichel.github.io/LearnWebGPU/&#34; target=&#34;_blank&#34; id=&#34;Learn WebGPU&#34;&gt;Learn WebGPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the WIP guide covers how to use the WebGPU graphics API from C++&lt;/li&gt;
&lt;li&gt;at this time, presents how to create a render a basic 3D mesh&lt;/li&gt;
&lt;li&gt;additionally shows how to load and apply textures&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-272/pyramid-obj.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230130070950/https://eliemichel.github.io/LearnWebGPU/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.42yeah.is/rendering/2023/01/28/look-at.html&#34; target=&#34;_blank&#34; id=&#34;The LookAt Matrix&#34;&gt;The LookAt Matrix&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to implement a camera look-at matrix&lt;/li&gt;
&lt;li&gt;visually shows how the components combine to form the result&lt;/li&gt;
&lt;li&gt;mentions the difference between rasterization and ray-tracing workloads&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-272/lookat_rt.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230130071026/https://blog.42yeah.is/rendering/2023/01/28/look-at.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.unrealengine.com/en-US/tech-blog/lumen-brings-real-time-global-illumination-to-fortnite-battle-royale-chapter-4&#34; target=&#34;_blank&#34; id=&#34;Lumen brings real-time global illumination to Fortnite Battle Royale Chapter 4&#34;&gt;Lumen brings real-time global illumination to Fortnite Battle Royale Chapter 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes what changes were required to make Lumen work in 60 FPS mode for the new season of Fortnite&lt;/li&gt;
&lt;li&gt;discusses how a reverse lookup structure is used to accelerate per-mesh surface cache information for sharper reflections and lighting when using software ray tracing at low resolutions&lt;/li&gt;
&lt;li&gt;shows how spatiotemporal blue noise was able to improve results from the same number of rays&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-272/lumen-in-fortnite-chapter-4.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230126221917/https://www.unrealengine.com/en-US/tech-blog/lumen-brings-real-time-global-illumination-to-fortnite-battle-royale-chapter-4&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.unrealengine.com/en-US/tech-blog/virtual-shadow-maps-in-fortnite-battle-royale-chapter-4&#34; target=&#34;_blank&#34; id=&#34;Virtual Shadow Maps in Fortnite Battle Royale Chapter 4&#34;&gt;Virtual Shadow Maps in Fortnite Battle Royale Chapter 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the issue that needed to be solved for Virtual Shadow Maps at 60fps&lt;/li&gt;
&lt;li&gt;explains common issues that are often encountered when trying to cache sun shadow maps&lt;/li&gt;
&lt;li&gt;additionally explains a collection of techniques required to improve performance and quality for the Fortnite art style&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-272/sunshadow_cache.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230126224211/https://www.unrealengine.com/en-US/tech-blog/virtual-shadow-maps-in-fortnite-battle-royale-chapter-4&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://bruop.github.io&#34; target=&#34;_blank&#34;&gt;Bruno Opsenica&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 271 - January 22nd, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-271/</link>
      <pubDate>Sun, 22 Jan 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-271/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=oQLmC0e-hpg&#34; target=&#34;_blank&#34; id=&#34;[video] SIGGRAPH 2022 - Advances in Spatial Hashing&#34;&gt;[video] SIGGRAPH 2022 - Advances in Spatial Hashing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how Spatial hashing applies to storing sparse spatial data&lt;/li&gt;
&lt;li&gt;presents how to extend the technique for cache coherence using view-dependent effects using world-space temporal filtering&lt;/li&gt;
&lt;li&gt;additionally presents how to improve quality by using visibility-aware environment sampling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-271/spatial_hashing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://martinfullerblog.wordpress.com/2023/01/15/fast-near-lossless-compression-of-normal-floats/&#34; target=&#34;_blank&#34; id=&#34;Fast, Near Lossless ‘Compression’ of Normal Floats&#34;&gt;Fast, Near Lossless ‘Compression’ of Normal Floats&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains a method to compress 32-bit floats into 24-bits&lt;/li&gt;
&lt;li&gt;shows how IEEE floats are defined and how to take advantage of conventions to further compress them for constrained ranges&lt;/li&gt;
&lt;li&gt;HLSL and C++ code is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-271/float_compress.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230115151243/https://martinfullerblog.wordpress.com/2023/01/15/fast-near-lossless-compression-of-normal-floats/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://highperformancegraphics.org/2023/call-for-participation/&#34; target=&#34;_blank&#34; id=&#34;High-Performance Graphics 2023 - Call for Participation&#34;&gt;High-Performance Graphics 2023 - Call for Participation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the High-Performance Graphics 2023 conference is open for submissions&lt;/li&gt;
&lt;li&gt;the pages list topics covered and important dates for the submission&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-271/hpg.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230118170022/https://highperformancegraphics.org/2023/call-for-participation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://threedy-gmbh.jobs.personio.de/job/955275?display=en&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphics Engineer (m/f/x)&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Darmstadt/Germany (partly remote possible)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;YOU are looking to revolutionize the world of 3D in industrial environments and enjoy working in a highly innovative team?&lt;/p&gt;

&lt;p&gt;Develop next-gen rendering technology, create high-performance pipelines and write complex real-time shaders. We are guaranteed to have interesting topics for YOU!&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Threedy_instant3Dhub-Logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;threedy_week_271&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/amd-lunarg-gfxreconstruct-dx12-dxr/&#34; target=&#34;_blank&#34; id=&#34;Announcing GFXReconstruct (v0.9.17) with DirectX®12 and DirectX® Raytracing support&#34;&gt;Announcing GFXReconstruct (v0.9.17) with DirectX®12 and DirectX® Raytracing support&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article announces that the GFXReconstruct now supports D3D12 (previously was Vulkan only)&lt;/li&gt;
&lt;li&gt;explains how to use the tool to record D3D12 applications&lt;/li&gt;
&lt;li&gt;additional shows workflows to reduce capture size and increase playback speed&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-271/gfx_recorder.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230118170844/https://gpuopen.com/learn/amd-lunarg-gfxreconstruct-dx12-dxr/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=qNoSliX_6Gc&#34; target=&#34;_blank&#34; id=&#34;[video] Midpoint Displacement // Terrain Rendering episode 3&#34;&gt;[video] Midpoint Displacement // Terrain Rendering episode 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains a second technique to generate terrains taken from the Focus on 3D Terrain Programming book&lt;/li&gt;
&lt;li&gt;provides a high-level overview of the algorithms as well as an OpenGL implementation&lt;/li&gt;
&lt;li&gt;additionally, details on how to deal with edge cases of the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-271/terrain_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cohost.org/tomforsyth/post/891823-rotation-with-three&#34; target=&#34;_blank&#34; id=&#34;Rotation with three shears&#34;&gt;Rotation with three shears&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to rotate a 2D sprite using 3 shear operations&lt;/li&gt;
&lt;li&gt;discusses the properties and advantages of this method&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-271/sprite_rotation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230124120305/https://cohost.org/tomforsyth/post/891823-rotation-with-three&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Michael Hazani for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 270 - January 15th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-270/</link>
      <pubDate>Sun, 15 Jan 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-270/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/rdna3-isa-guide-now-available/&#34; target=&#34;_blank&#34; id=&#34;AMD RDNA™ 3 Instruction Set Architecture (ISA) reference guide is now available&#34;&gt;AMD RDNA™ 3 Instruction Set Architecture (ISA) reference guide is now available&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the new AMD hardware guide for RDNA3 has been released&lt;/li&gt;
&lt;li&gt;covers the shader execution model, the various wave execution models&lt;/li&gt;
&lt;li&gt;as well as how the shader core interacts with the memory hierarchy&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-270/rdna3.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230113021802/https://gpuopen.com/rdna3-isa-guide-now-available/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zeux.io/2023/01/12/approximate-projected-bounds/&#34; target=&#34;_blank&#34; id=&#34;Approximate projected bounds&#34;&gt;Approximate projected bounds&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows techniques implement conservative techniques to project bounding boxes and spheres into screen-space&lt;/li&gt;
&lt;li&gt;these techniques are optimized for use in culling use cases as it affects the meaning of near-z clipping&lt;/li&gt;
&lt;li&gt;presents trade-offs between the techniques in terms of computational cost and culling efficiency&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-270/project_sphere_screenspace.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230112193657/https://zeux.io/2023/01/12/approximate-projected-bounds/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://acko.net/blog/use-gpu-goes-trad/&#34; target=&#34;_blank&#34; id=&#34;Use.GPU Goes Trad&#34;&gt;Use.GPU Goes Trad&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes how the Use.GPU level of abstraction is continuing to evolve&lt;/li&gt;
&lt;li&gt;presents how scene management can be natively expressed as part of the same pass-based architecture&lt;/li&gt;
&lt;li&gt;shows how the same high-level logic allows switching between deferred and forward rendering easily&lt;/li&gt;
&lt;li&gt;additionally discusses strange limitations in the graphics APIs that make switching work between texture formats, pixel shaders, and compute shaders more difficult&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-270/use_gpu_scene.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230116082747/https://acko.net/blog/use-gpu-goes-trad/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://threedy-gmbh.jobs.personio.de/job/955275?display=en&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphics Engineer (m/f/x)&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Darmstadt/Germany (partly remote possible)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;YOU are looking to revolutionize the world of 3D in industrial environments and enjoy working in a highly innovative team?&lt;/p&gt;

&lt;p&gt;Develop next-gen rendering technology, create high-performance pipelines and write complex real-time shaders. We are guaranteed to have interesting topics for YOU!&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Threedy_instant3Dhub-Logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;threedy_week_270&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jeremyong.com/graphics/2023/01/09/tangent-spaces-and-diamond-encoding/&#34; target=&#34;_blank&#34; id=&#34;Tangent Spaces and Diamond Encoding&#34;&gt;Tangent Spaces and Diamond Encoding&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of Tangen Space Encodings&lt;/li&gt;
&lt;li&gt;covers how to use Octahedral Encoding and further compress it with Tangent Angle&lt;/li&gt;
&lt;li&gt;from there, develops the suggested Diamond Encoding technique that extends the Octahedral approach into the tangent angle space&lt;/li&gt;
&lt;li&gt;additionally provides a brief section on rethinking how tangent space encoding might be better expressed on a mesh(let) level on modern hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-270/final_excalidraw.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230110110341/https://www.jeremyong.com/graphics/2023/01/09/tangent-spaces-and-diamond-encoding/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.oculus.com/blog/graphics-optimization-renderdoc-meta-fork&#34; target=&#34;_blank&#34; id=&#34;Optimize Your Graphics with RenderDoc Meta Fork&#34;&gt;Optimize Your Graphics with RenderDoc Meta Fork&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the Meta Quest exclusive features of the RenderDoc fork&lt;/li&gt;
&lt;li&gt;the extensions allow the visualization of the tiled-based hardware binning into screen tiles and how they are executed&lt;/li&gt;
&lt;li&gt;allows drawing call tracing to gather the latency of draw calls&lt;/li&gt;
&lt;li&gt;additionally allows the collection of hardware statistics of shaders through KHR_pipeline_executable_properties&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-270/render_stage_trace.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230111220403/https://developer.oculus.com/blog/graphics-optimization-renderdoc-meta-fork/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.linkedin.com/feed/update/urn:li:activity:7018937873332596736/&#34; target=&#34;_blank&#34; id=&#34;An Introduction to Vulkan: A Full Day Tutorial&#34;&gt;An Introduction to Vulkan: A Full Day Tutorial&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;during the Vulkanised 2023 conference in Munich, a full-day tutorial will take place&lt;/li&gt;
&lt;li&gt;this post explains the target audience of the course and the associated price&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-270/fullday_vulkan.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://slembcke.github.io//WaterWaves&#34; target=&#34;_blank&#34; id=&#34;Water Wave Simulation&#34;&gt;Water Wave Simulation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article aims to develop an intuition for FFT (Fast Fourier Transform) and how it&amp;rsquo;s underlying the math of waves&lt;/li&gt;
&lt;li&gt;provides a large number of interactive examples to experiment with the effects of different parameters&lt;/li&gt;
&lt;li&gt;contains a high-level introduction to complex numbers and how they relate to rotation and scaling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-270/wave_simulation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230109082844/https://slembcke.github.io//WaterWaves&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://anki3d.org/random-thoughts-after-moving-from-glsl-to-hlsl/&#34; target=&#34;_blank&#34; id=&#34;Random thoughts after moving from GLSL to HLSL&#34;&gt;Random thoughts after moving from GLSL to HLSL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author describes the personal experience with GLSL and HLSL gained through moving AnKi 3D between the shading languages&lt;/li&gt;
&lt;li&gt;mentions why HLSL seems like a better bet for the long-term future&lt;/li&gt;
&lt;li&gt;also mentions shortcomings of using HLSL when developing Vulkan applications&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-270/anki_3d_logo_248.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230109221216/https://anki3d.org/random-thoughts-after-moving-from-glsl-to-hlsl/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://martinfullerblog.wordpress.com/2023/01/13/min-max-buffer-precision-improvement/&#34; target=&#34;_blank&#34; id=&#34;Min/Max Buffer Precision Improvement&#34;&gt;Min/Max Buffer Precision Improvement&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post explains how to improve the precision when encoding min-max per tile&lt;/li&gt;
&lt;li&gt;the author suggests storing only one as an absolute value and a delta to reconstruct the other&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-270/min_max.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230115101419/https://martinfullerblog.wordpress.com/2023/01/13/min-max-buffer-precision-improvement/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/wmma_on_rdna3/&#34; target=&#34;_blank&#34; id=&#34;How to accelerate AI applications on RDNA 3 using WMMA&#34;&gt;How to accelerate AI applications on RDNA 3 using WMMA&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article covers how Wave Matrix Multiply Accumulate (WMMA)&lt;/li&gt;
&lt;li&gt;presents how to use the intrinsics available in the HIP framework to accelerate the matrix operations typically found in machine learning work&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-270/wmma_on_RDNA3-_images-matrices_illustration.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230113020304/https://gpuopen.com/learn/wmma_on_rdna3/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Peter Kohaut for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 269 - January 8th, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-269/</link>
      <pubDate>Sun, 08 Jan 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-269/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/practical-tips-for-optimizing-ray-tracing/&#34; target=&#34;_blank&#34; id=&#34;Practical Tips for Optimizing Ray Tracing&#34;&gt;Practical Tips for Optimizing Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides techniques to speedup raytracing workloads&lt;/li&gt;
&lt;li&gt;discusses techniques to integrate &amp;ldquo;importance sampling&amp;rdquo; for dynamic objects that are off-screen but still contribute to effects&lt;/li&gt;
&lt;li&gt;how to optimize shader table updates&lt;/li&gt;
&lt;li&gt;additionally presents the idea of aligning TLAS boxes so that bounding boxes are aligned with the world axis&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-269/Ray-Tracing-optimal-rotation-through-global-2D-coordinates.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230108154425/https://developer.nvidia.com/blog/practical-tips-for-optimizing-ray-tracing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cyanilux.com/tutorials/snowglobe/&#34; target=&#34;_blank&#34; id=&#34;Snowglobe&#34;&gt;Snowglobe&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a breakdown of how a Snowglobe can be implemented using Unity&lt;/li&gt;
&lt;li&gt;shows how to set up glass sphere refraction/reflections&lt;/li&gt;
&lt;li&gt;additional covers on how to simulate the snow using particles&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-269/snowglobe.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230104144354/https://www.cyanilux.com/tutorials/snowglobe/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/presentations/2022/Reboot%20Blue%202022%20-%20Lets%20talk%20about%20GPU%20crashes.pdf&#34; target=&#34;_blank&#34; id=&#34;Let’s talk about (GPU) crashes&#34;&gt;Let’s talk about (GPU) crashes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a discussion of different sources of GPU hangs&lt;/li&gt;
&lt;li&gt;shows techniques that can be used to track down the cause of hangs&lt;/li&gt;
&lt;li&gt;techniques available in D3D12 and Vulkan that can be used to develop techniques to track down the source of the issue&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-269/gpu-crashes.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230105122941/https://gpuopen.com/presentations/2022/Reboot%20Blue%202022%20-%20Lets%20talk%20about%20GPU%20crashes.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/presentations/2022/Reboot%20Blue%202022%20-%20A%20Deep%20Dive%20into%20FidelityFX%20Super%20Resolution%202.pptx&#34; target=&#34;_blank&#34; id=&#34;[pptx] Deep Dive into FidelityFX Super Resolution 2&#34;&gt;[pptx] Deep Dive into FidelityFX Super Resolution 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation contains a step-by-step walkthrough of the FSR implementation&lt;/li&gt;
&lt;li&gt;shows how the API is structured and what updates have been made from FSR 2.0 to 21&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-269/fsr.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230105151628/https://gpuopen.com/presentations/2022/Reboot%20Blue%202022%20-%20A%20Deep%20Dive%20into%20FidelityFX%20Super%20Resolution%202.pptx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/updates-in-directx-headers-repo/&#34; target=&#34;_blank&#34; id=&#34;Updates in d3dx12.h: Nuget Packaging, Header Bloat Reduction, and D3DX12GetCopyableFootprints&#34;&gt;Updates in d3dx12.h: Nuget Packaging, Header Bloat Reduction, and D3DX12GetCopyableFootprints&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a new version of the D3D Agility SDK has been released&lt;/li&gt;
&lt;li&gt;includes the d3dx12 headers, and those have been split into separate headers so users can only include what they need&lt;/li&gt;
&lt;li&gt;additionally, the implementation of GetCopyableFootprints has been open-sourced&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-269/d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230107093101/https://devblogs.microsoft.com/directx/updates-in-directx-headers-repo/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=z9YML6j5yDg&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Fault Formation // Terrain Rendering episode 2&#34;&gt;[video] Fault Formation // Terrain Rendering episode 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows how to implement a Fault Formation algorithm for a procedural terrain using OpenGL&lt;/li&gt;
&lt;li&gt;additionally presents how a (Finite impulse response) FIR filter can be used to smooth the results&lt;/li&gt;
&lt;li&gt;presents an overview of the filter, visualize the effects using Excel, and shows how to implement it using GLSL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-269/fault_formation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=1Tj6bZvZMts&#34; target=&#34;_blank&#34; id=&#34;[video] niagara: Culling optimization&#34;&gt;[video] niagara: Culling optimization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;another part of the Vulkan series that implement GPU culling&lt;/li&gt;
&lt;li&gt;this part focuses on optimizations and cleanup tasks&lt;/li&gt;
&lt;li&gt;presents the effects on the performance of the different techniques covered&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-269/niagara_optimization.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2023/01/08/experimenting-with-fp16-part-2/&#34; target=&#34;_blank&#34; id=&#34;Experimenting with fp16, part 2&#34;&gt;Experimenting with fp16, part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post continues the discussion of the effects of using 16-bit floating point values in the temporal resolve shader from the FidelityFX SSSR sample&lt;/li&gt;
&lt;li&gt;looks into AMD hardware instruction generated by the compiler&lt;/li&gt;
&lt;li&gt;shows how why the VGPR usage is so different&lt;/li&gt;
&lt;li&gt;presents alternative ways to express the work and how it affects the generated code&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-269/vgpr-1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230108170302/https://interplayoflight.wordpress.com/2023/01/08/experimenting-with-fp16-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://raphlinus.github.io/rust/gpu/2023/01/07/requiem-piet-gpu-hal.html&#34; target=&#34;_blank&#34; id=&#34;Requiem for piet-gpu-hal&#34;&gt;Requiem for piet-gpu-hal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the reasoning why Vello (a GPU compute-centric 2D renderer) choose to transition to WebGPU&lt;/li&gt;
&lt;li&gt;discusses the choices made during the implementation&lt;/li&gt;
&lt;li&gt;looks at strengths and open issue&lt;/li&gt;
&lt;li&gt;additionally provides a look at more advanced features and how WebGPU limits are affecting the project&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-269/webgpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230109134653/https://raphlinus.github.io/rust/gpu/2023/01/07/requiem-piet-gpu-hal.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/unai_landa&#34; target=&#34;_blank&#34;&gt;Unai Landa&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly -  Issue 268  - January 1st, 2023</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-268/</link>
      <pubDate>Sun, 01 Jan 2023 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-268/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2022/12/30/experimenting-with-fp16-in-shaders/&#34; target=&#34;_blank&#34; id=&#34;Experimenting with fp16 in shaders&#34;&gt;Experimenting with fp16 in shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article discusses the use of 16-bit floating point numbers (fp16) in shaders&lt;/li&gt;
&lt;li&gt;Using fp16 can reduce the memory and bandwidth requirements of a shader&lt;/li&gt;
&lt;li&gt;The article presents the results of experiments and how it affects the generated code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-268/fp16_shader_math.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230103111056/https://interplayoflight.wordpress.com/2022/12/30/experimenting-with-fp16-in-shaders/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://blog.pkh.me/p/39-improving-color-quantization-heuristics.html&#34; target=&#34;_blank&#34; id=&#34;Improving color quantization heuristics&#34;&gt;Improving color quantization heuristics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses techniques for improving color quantization algorithms&lt;/li&gt;
&lt;li&gt;presents several heuristics for improving the quality of quantization&lt;/li&gt;
&lt;li&gt;the article discusses the trade-offs involved in using different heuristics and provides examples of the results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-268/pal-2d-3d.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20230103111122/http://blog.pkh.me/p/39-improving-color-quantization-heuristics.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dev.to/vincentdchan/implement-macos-monterey-screen-saver-in-shadertoyless-than-100-lines-of-code-5jj&#34; target=&#34;_blank&#34; id=&#34;Implement MacOS Monterey screen saver in shadertoy(less than 100 lines of code)&#34;&gt;Implement MacOS Monterey screen saver in shadertoy(less than 100 lines of code)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial shows how to implement an effect that recreates the color and wave pattern of the screensaver found in macOS&lt;/li&gt;
&lt;li&gt;presents how to create the different aspects using shadertoy and how to combine the effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-268/macos_header.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://dev.to/vincentdchan/implement-macos-monterey-screen-saver-in-shadertoyless-than-100-lines-of-code-5jj&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@pushkarevmm/screen-space-variable-rate-shading-in-unity-with-directx-12-5a31da85b8d7&#34; target=&#34;_blank&#34; id=&#34;Screen-space Variable Rate Shading in Unity with DirectX 12.&#34;&gt;Screen-space Variable Rate Shading in Unity with DirectX 12.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article discusses screen-space variable rate shading (VRS), a technique that can improve performance&lt;/li&gt;
&lt;li&gt;VRS allows the shading rate to be varied across the screen&lt;/li&gt;
&lt;li&gt;code examples show how to use the technique from Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-268/unity_vrs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221228111036/https://medium.com/@pushkarevmm/screen-space-variable-rate-shading-in-unity-with-directx-12-5a31da85b8d7&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pr0g.github.io/mathematics/matrix/2022/12/26/column-row-major.html&#34; target=&#34;_blank&#34; id=&#34;Column Major and Row Major Vectors and Matrices (for games)&#34;&gt;Column Major and Row Major Vectors and Matrices (for games)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the difference between row-major and column-major matrices&lt;/li&gt;
&lt;li&gt;discusses the relationship between matrix storage format, matrix layout, and operation order&lt;/li&gt;
&lt;li&gt;presents that the choice of storage format can affect the performance of matrix operations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-268/column_vector_matrix.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221228214818/https://pr0g.github.io/mathematics/matrix/2022/12/26/column-row-major.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=VmrIDyYiJBA&#34; target=&#34;_blank&#34; id=&#34;[video] Hexagonal Tiling Explained!&#34;&gt;[video] Hexagonal Tiling Explained!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video explains how to create a hexagon using SDFs in shadertoy&lt;/li&gt;
&lt;li&gt;expands the concepts to show how to tile the grid of hexagons&lt;/li&gt;
&lt;li&gt;demonstrates how to expand on the concepts to create more complex shapes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-268/hexagonal_tiling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.en.uwa4d.com/2022/12/28/unity-mobile-game-performance-optimization-the-balance-between-graphics-performance-and-gpu-pressure&#34; target=&#34;_blank&#34; id=&#34;Unity Mobile Game Performance Optimization: Balance between Graphics Performance and GPU Pressure&#34;&gt;Unity Mobile Game Performance Optimization: Balance between Graphics Performance and GPU Pressure&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses strategies for optimizing the performance of mobile games in Unity&lt;/li&gt;
&lt;li&gt;presents the importance of tradeoffs between quality and performance&lt;/li&gt;
&lt;li&gt;shows techniques for improving performance, such as reducing draw calls, minimizing overdraw, and using batching and instancing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-268/gpu_performance_over_time.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221228020100/https://blog.en.uwa4d.com/2022/12/28/unity-mobile-game-performance-optimization-the-balance-between-graphics-performance-and-gpu-pressure/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/leonardoetcheverry/&#34; target=&#34;_blank&#34;&gt;Leonardo Etcheverry&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly -  Issue 267  - December 25th, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-267/</link>
      <pubDate>Sun, 25 Dec 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-267/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@mil_kru/two-pass-occlusion-culling-4100edcad501&#34; target=&#34;_blank&#34; id=&#34;Two-Pass Occlusion Culling&#34;&gt;Two-Pass Occlusion Culling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog posts describes how Hierarchical Z-Buffer (HZB) Occlusion Culling uses a depth buffer to improve culling efficiency&lt;/li&gt;
&lt;li&gt;describes two possible solutions that can be used to solve the problem that a depth buffer of the view is required to accelerate the rasterization of the same view&lt;/li&gt;
&lt;li&gt;focuses on a technique that uses information about which objects have been visible in the previous frame to accelerate the current&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-267/HierarchicalZ.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221224175711/https://medium.com/@mil_kru/two-pass-occlusion-culling-4100edcad501&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.glowybits.com/blog/2022/12/18/ghost_talks/&#34; target=&#34;_blank&#34; id=&#34;Ghost of Tsushima SIGGRAPH Talks&#34;&gt;Ghost of Tsushima SIGGRAPH Talks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;summary of two Siggraph talks by the author covering Ghost of Tsushima&lt;/li&gt;
&lt;li&gt;the talks cover Lighting, Atmosphere, Tonemapping as well as PBR Shading in Ghost of Tsushima&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-267/ghost_talks.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221226193135/https://www.glowybits.com/blog/2022/12/18/ghost_talks/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pharr.org/matt/blog/2022/12/22/pbr-4ed&#34; target=&#34;_blank&#34; id=&#34;Some News About the 4th Edition of Physically Based Rendering&#34;&gt;Some News About the 4th Edition of Physically Based Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post announces that the new edition of PBR will be released on  March 28, 2023&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://pub-49ca6a23a58a46ef9cf5a5b34413a7ba.r2.dev/pbr-4ed-chap11.pdf&#34; target=&#34;_blank&#34;&gt;chapter 11 - Volume Scattering&lt;/a&gt; and &lt;a href=&#34;https://pub-49ca6a23a58a46ef9cf5a5b34413a7ba.r2.dev/pbr-4ed-chap14.pdf&#34; target=&#34;_blank&#34;&gt;Chapter 14, Light Transport: Volume Rendering&lt;/a&gt; are available as PDF download already&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-267/pbr-4ed-cover.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221222223625/https://pharr.org/matt/blog/2022/12/22/pbr-4ed&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=JKTfAgv3Vlo&#34; target=&#34;_blank&#34; id=&#34;[video] niagara: Triangle culling&#34;&gt;[video] niagara: Triangle culling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the stream covers the implementation and exploration of triangle culling into a GPU culling pipeline&lt;/li&gt;
&lt;li&gt;discusses trade-offs of different techniques and locations in the pipeline&lt;/li&gt;
&lt;li&gt;shows the effects of different culling techniques on the number of primitives that need rasterization&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-267/niagara_culling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/PathTracingWorkshop.html&#34; target=&#34;_blank&#34; id=&#34;Path tracing workshop&#34;&gt;Path tracing workshop&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Intel released a Path tracing workshop of 76 minutes of videos and ShaderToy exercises&lt;/li&gt;
&lt;li&gt;shows how to implement a ray tracer, the path tracer&lt;/li&gt;
&lt;li&gt;how to speed up the algorithms through the use of importance sampling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-267/teaser_path_tracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221220120541/https://momentsingraphics.de/PathTracingWorkshop.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/EmbarkStudios/rust-gpu/releases/tag/v0.4.0&#34; target=&#34;_blank&#34; id=&#34;rust-gpu v0.4&#34;&gt;rust-gpu v0.4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a new version of rust-GPU that allows Rust code to generate SPIR-V has been released&lt;/li&gt;
&lt;li&gt;this release adds support for raytracing&lt;/li&gt;
&lt;li&gt;additional contains many new APIs such as support for ByteAddressableBuffer or debug_printf&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-267/rust-gpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221226113434/https://github.com/EmbarkStudios/rust-gpu/releases/tag/v0.4.0&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=a4zMX6dDVXI&#34; target=&#34;_blank&#34; id=&#34;[video] Coding a Bezier curve from scratch!&#34;&gt;[video] Coding a Bezier curve from scratch!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents how to implement Bezier Interpolation&lt;/li&gt;
&lt;li&gt;shows how curves are defined, visualizing how the factors are combined to create the final curve&lt;/li&gt;
&lt;li&gt;all implementations are presented in ShaderToy&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-267/bezier_curve.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.en.uwa4d.com/2022/12/21/introduction-of-the-raytracing-technology-part-2/&#34; target=&#34;_blank&#34; id=&#34;Introduction of the Raytracing Technology Part 2&#34;&gt;Introduction of the Raytracing Technology Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article continues the series by covering an overview of raytracing techniques&lt;/li&gt;
&lt;li&gt;covers the  Path Tracing Equations, Direct Lighting (single and multiple lights), Indirect Illumination&lt;/li&gt;
&lt;li&gt;Additionally covers high-level approaches such as Bidirectional Path Tracing and Metropolis Ray Tracing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-267/raytracing_series.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221221022410/https://blog.en.uwa4d.com/2022/12/21/introduction-of-the-raytracing-technology-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cohost.org/zeux/post/659687-meshlet-sizing-theor&#34; target=&#34;_blank&#34; id=&#34;Meshlet sizing theory&#34;&gt;Meshlet sizing theory&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents metrics to calculate to judge the optimal size for meshlets&lt;/li&gt;
&lt;li&gt;compares the AMD and Nvidia limits to see how they might affect the choices&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-267/meshlet_size_factor.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221220051500/https://cohost.org/zeux/post/659687-meshlet-sizing-theor&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=neyIpnII-WQ&#34; target=&#34;_blank&#34; id=&#34;[video] Compute Shaders in Bevy&#34;&gt;[video] Compute Shaders in Bevy&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents how to integrate a compute shader into the Rust-based bevy engine&lt;/li&gt;
&lt;li&gt;shows how to integrate the compute pass into the render graph system&lt;/li&gt;
&lt;li&gt;additionally shows how to read back simulation results back to the CPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-267/bevy_compute_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rtarun9.github.io/blogs/deferred_shading/&#34; target=&#34;_blank&#34; id=&#34;Deferred Shading&#34;&gt;Deferred Shading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an explanation of deferred shading&lt;/li&gt;
&lt;li&gt;discusses the issues with forward shading and how deferred shading can solve them&lt;/li&gt;
&lt;li&gt;shows how deferred shading can be implemented, including techniques to reduce memory and bandwidth usage for the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-267/DeferredBlog.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221224184105/https://rtarun9.github.io/blogs/deferred_shading/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2022/12/25/stream-compaction-using-wave-intrinsics/&#34; target=&#34;_blank&#34; id=&#34;Stream compaction using wave intrinsics&#34;&gt;Stream compaction using wave intrinsics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to use wave intrinsics to reduce the number of atomic operations required when compacting sparse arrays into packed arrays&lt;/li&gt;
&lt;li&gt;presented technique is based on FidelityFX’s SSSR implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-267/stream_compaction_wave.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221225200853/https://interplayoflight.wordpress.com/2022/12/25/stream-compaction-using-wave-intrinsics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/vivitsum&#34; target=&#34;_blank&#34;&gt;Vivitsu Maharaja&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 266 - December 18th, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-266/</link>
      <pubDate>Sun, 18 Dec 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-266/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/rps_1_0/&#34; target=&#34;_blank&#34; id=&#34;Introducing AMD Render Pipeline Shaders SDK&#34;&gt;Introducing AMD Render Pipeline Shaders SDK&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This article provides an overview of the Render Pipeline SDK design and implementation&lt;/li&gt;
&lt;li&gt;it shows how the SDK can reduce the complexity of render graph implementations&lt;/li&gt;
&lt;li&gt;presents that it&amp;rsquo;s able to manage resource barriers and transient memory&lt;/li&gt;
&lt;li&gt;additionally presents a demonstration of the performance effects that could be observed from real game workloads&lt;/li&gt;
&lt;li&gt;video version is available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-266/rps_sdk.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.youtube.com/watch?v=PXMRUjs6SK8&#34; style=&#34;color:white;&#34;&gt;video &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221218211952/https://gpuopen.com/learn/rps_1_0/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.en.uwa4d.com/2022/12/14/introduction-of-the-raytracing-technology-part-1/&#34; target=&#34;_blank&#34; id=&#34;Introduction of the Raytracing Technology Part 1&#34;&gt;Introduction of the Raytracing Technology Part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview and history of raytracing&lt;/li&gt;
&lt;li&gt;it covers different styles of raytracing, common elements&lt;/li&gt;
&lt;li&gt;additionally provides a brief on how different phenomena can be simulated&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-266/raytracing_intro.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.vn/vjP3x&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=xoqESu9iOUE&#34; target=&#34;_blank&#34; id=&#34;[video] Heightmaps // Terrain Rendering episode 1&#34;&gt;[video] Heightmaps // Terrain Rendering episode 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video is the start of a new video series to render a height map using OpenGL&lt;/li&gt;
&lt;li&gt;shows how to load and render a terrain from a textural heightmap&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-266/opengl_terrain.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=OvHNg4-Ueng&#34; target=&#34;_blank&#34; id=&#34;[video] World Normal Mix Shader in Godot&#34;&gt;[video] World Normal Mix Shader in Godot&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows how to implement a shader in Godot that mixes two textures into a single material based on the normal directions of the mesh&lt;/li&gt;
&lt;li&gt;explains all the necessary vector space transformations, how to unpack normals as well as combine normals&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-266/material_blending.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=_5mnVGOxq50&#34; target=&#34;_blank&#34; id=&#34;[video] CUDA 12 New Features and Beyond&#34;&gt;[video] CUDA 12 New Features and Beyond&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video discusses new features in Cuda 12 and a look at future developemnts&lt;/li&gt;
&lt;li&gt;covering Dynamic Parallelism (GPU side task launching), lazy loading to reduce load time and memory usage&lt;/li&gt;
&lt;li&gt;additionally covers updates to the CUDA compiler, math library updates as well as compability updates&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-266/cuda12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.getrevue.co/profile/xordev/issues/gm-shaders-mini-fluids-1507038&#34; target=&#34;_blank&#34; id=&#34;GM Shaders Mini: Fluids&#34;&gt;GM Shaders Mini: Fluids&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a technique to improve the look of a particle based fluid system&lt;/li&gt;
&lt;li&gt;uses Metaballs to more smoothly blend the particles together as well as simple Refraction model&lt;/li&gt;
&lt;li&gt;implementation is provided in GLSL for Game Maker&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-266/water_particle_metaballs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221221000048/https://www.getrevue.co/profile/xordev/issues/gm-shaders-mini-fluids-1507038&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://codeplay.com/portal/blogs/2022/12/16/bringing-nvidia-and-amd-support-to-oneapi.html&#34; target=&#34;_blank&#34; id=&#34;Bringing Nvidia® and AMD support to oneAPI&#34;&gt;Bringing Nvidia® and AMD support to oneAPI&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how the oneAPI API can be used to target intel, nvidia and AMD GPUs&lt;/li&gt;
&lt;li&gt;presents a high level explanation of the technical implementation and goals for the future&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-266/one_api_cuda.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221221000602/https://codeplay.com/portal/blogs/2022/12/16/bringing-nvidia-and-amd-support-to-oneapi.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/Jontology&#34; target=&#34;_blank&#34;&gt;Jon Greenberg&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly -  Issue 265  - December 11th, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-265/</link>
      <pubDate>Sun, 11 Dec 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-265/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/resolving-longstanding-issues-with-wsi&#34; target=&#34;_blank&#34; id=&#34;Resolving Long Standing Issues with Vulkan Windowing System Integration (WSI)&#34;&gt;Resolving Long Standing Issues with Vulkan Windowing System Integration (WSI)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post explains two new extensions that have been added to Vulkan to improve interaction with windowing systems&lt;/li&gt;
&lt;li&gt;applications can now better be sure when to release swap chains, clean up the deletion flow as well as added additional flags to open the opportunity for driver optimizations during swap chain resize operations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-265/khronos.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221212001928/https://www.khronos.org/blog/resolving-longstanding-issues-with-wsi&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://agraphicsguynotes.com/posts/understanding_the_math_behind_restir_di/&#34; target=&#34;_blank&#34; id=&#34;Understanding The Math Behind ReStir DI&#34;&gt;Understanding The Math Behind ReStir DI&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the in-depth article explains the mathematics behind the original ReStir and an in-depth analysis of why it works&lt;/li&gt;
&lt;li&gt;covers the preliminary knowledge required (Multiple)Importance Sampling, Sample Importance Resampling (SIR), Resampled Importance Sampling (RIS) as well, as Weighted Reservoir Sampling (WRS))&lt;/li&gt;
&lt;li&gt;uses the information to develop a mental framework for understanding ReStir (Reservoir Spatio-Temporal Importance Resampling), how it works and why it&amp;rsquo;s an unbiased technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-265/ReStir.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221208224328/https://agraphicsguynotes.com/posts/understanding_the_math_behind_restir_di/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dev.epicgames.com/community/learning/tutorials/2R5x/unreal-engine-new-shading-models-and-changing-the-gbuffer&#34; target=&#34;_blank&#34; id=&#34;UE5.1 - New shading models and changing the GBuffer&#34;&gt;UE5.1 - New shading models and changing the GBuffer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to integrate a custom toon shading model into UE5.1&lt;/li&gt;
&lt;li&gt;explains the necessary C++ modifications and shader work to integrate it&lt;/li&gt;
&lt;li&gt;presents the complexity and limitations connected to the integration&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-265/CelshadeReflectionLumen.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221208160239/https://dev.epicgames.com/community/learning/tutorials/2R5x/unreal-engine-new-shading-models-and-changing-the-gbuffer&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=TgZcwxydUlI&#34; target=&#34;_blank&#34; id=&#34;[video] Live Coding: 3d Truchet Weave&#34;&gt;[video] Live Coding: 3d Truchet Weave&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents a walkthrough of how to replicate a Truchet Weave pattern using ShaderToy&lt;/li&gt;
&lt;li&gt;covering how to define an SDF for a Grid, Truchet, or Weave pattern and combine everything for the final result&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-265/3d_truchet_weave.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.traverseresearch.nl/fast-cdf-generation-on-the-gpu-for-light-picking-5c50b97c552b&#34; target=&#34;_blank&#34; id=&#34;Fast CDF generation on the GPU for light picking&#34;&gt;Fast CDF generation on the GPU for light picking&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post explains how to build a cumulative distribution function (CDF) to accelerate the sampling of lights in a real-time ray tracer&lt;/li&gt;
&lt;li&gt;explains the high-level concept of a CDF and shows how to implement this on the GPU&lt;/li&gt;
&lt;li&gt;presents how to optimize the implementation to better take advantage of GPU hardware and utilize wave instructions for further optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-265/cdf_breda_sample.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.vn/vs54C&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=jvPPXbo87ds&#34; target=&#34;_blank&#34; id=&#34;[video] The Continuity of Splines&#34;&gt;[video] The Continuity of Splines&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the detailed video explains splines and concepts derived/extended from these&lt;/li&gt;
&lt;li&gt;covering Bézier Curves and Bézier Splines, explaining the underlying mathematics and concepts&lt;/li&gt;
&lt;li&gt;provides an in-depth explanation of the concepts of continuity, yet again in a large number of contexts&lt;/li&gt;
&lt;li&gt;with this information, the video dives deeper into extended concepts such as Hermite Spline, B-Spline, NURBS, and color splines (to name a few)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-265/splines.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://learnopengl.com/Guest-Articles/2022/Area-Lights&#34; target=&#34;_blank&#34; id=&#34;Area Lights&#34;&gt;Area Lights&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial explains how to implement area lighting using OpenGL&lt;/li&gt;
&lt;li&gt;implements the &amp;ldquo;Linearly Transformed Cosines&amp;rdquo; technique as published originally in 2016&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-265/opengl_area_lights_image.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221208163920/https://learnopengl.com/Guest-Articles/2022/Area-Lights&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=I0NxObQqzek&#34; target=&#34;_blank&#34; id=&#34;[video] Shader Code and Maths to Node Graphs&#34;&gt;[video] Shader Code and Maths to Node Graphs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation focuses on how to approach the implementation of abstract code/math expressions to make it easier to work with&lt;/li&gt;
&lt;li&gt;presents the importance of breaking down more complex expressions into sub-expression and visualizing individual components&lt;/li&gt;
&lt;li&gt;shows the approaches by implementing randomized water puddle placement, a Gerstner Waves simulation, as well as using flow maps to displace water around obstacles&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-265/gerstner_waves.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://sites.google.com/berkeley.edu/nerf-tutorial/home&#34; target=&#34;_blank&#34; id=&#34;ECCV 2022 Tutorial - Neural Volumetric Rendering for Computer Vision&#34;&gt;ECCV 2022 Tutorial - Neural Volumetric Rendering for Computer Vision&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;slides and videos for the Neural Volumetric Rendering for Computer Vision have been released&lt;/li&gt;
&lt;li&gt;covering the fundamentals of Neural Radiance Fields (NeRFs), how to apply them to Volumetric data sources&lt;/li&gt;
&lt;li&gt;additional presents existing challenges as well as a brief walkthrough of a NeRFs workflow&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-265/NeRF.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221111214543/https://sites.google.com/berkeley.edu/nerf-tutorial/home&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mamoniem.com/behind-the-pretty-frames-death-stranding/&#34; target=&#34;_blank&#34; id=&#34;Behind the Pretty Frames: Death Stranding&#34;&gt;Behind the Pretty Frames: Death Stranding&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a detailed look into a frame breakdown from the Decima engine-powered Death Stranding&lt;/li&gt;
&lt;li&gt;shows how the frame is rendered in a large number of compute passes, showing what resources are used in each pass and how it&amp;rsquo;s combined&lt;/li&gt;
&lt;li&gt;includes an overview of a large number of post-processing effects and how they appear to be implemented and combined to create the desired look&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-265/death_stranding.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221208211041/https://mamoniem.com/behind-the-pretty-frames-death-stranding/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.wihlidal.com&#34; target=&#34;_blank&#34;&gt;Graham Wihlidal&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly -  Issue 264  - December 4th, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-264/</link>
      <pubDate>Sun, 04 Dec 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-264/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://perso.telecom-paristech.fr/boubek/papers/MIPNet/index.html&#34; target=&#34;_blank&#34; id=&#34;MIPNet: Neural Normal-to-Anisotropic-Roughness MIP Mapping&#34;&gt;MIPNet: Neural Normal-to-Anisotropic-Roughness MIP Mapping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new method to calculate texture MIP maps that preserves compatibility with existing MIP mapping techniques&lt;/li&gt;
&lt;li&gt;the technique uses neural networks to optimize the transfer of material appearance under varying view distances and lighting conditions&lt;/li&gt;
&lt;li&gt;presents the results on two distinct BRDF models (Anisotropic GGX and Anisotropic Beckmann)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-264/mipnet.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221207042024/https://perso.telecom-paristech.fr/boubek/papers/MIPNet/index.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Qj_tK_mdRcA&#34; target=&#34;_blank&#34; id=&#34;[video] How Big Budget AAA Games Render Clouds&#34;&gt;[video] How Big Budget AAA Games Render Clouds&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a summary of the cloud rendering techniques covered in Horizon: Zero Dawn and the FrostBite engine papers&lt;/li&gt;
&lt;li&gt;shows the individual components visually and how they are combined to create the final cloud effect&lt;/li&gt;
&lt;li&gt;a brief discussion of performance optimization possibilities&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-264/cloud_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://simonstechblog.blogspot.com/2022/11/studying-spectral-primary-decomposition.html&#34; target=&#34;_blank&#34; id=&#34;Studying &amp;#39;Spectral Primary Decomposition&amp;#39;&#34;&gt;Studying &amp;#39;Spectral Primary Decomposition&amp;#39;&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article continues the series on spectral rendering&lt;/li&gt;
&lt;li&gt;this part focuses on methods to &amp;ldquo;upsample&amp;rdquo; sRGB colors to spectral representations&lt;/li&gt;
&lt;li&gt;presents an implementation of Spectral Primary Decomposition for Rendering with sRGB Reflectance and discusses possible improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-264/spec_prim_decomp_def.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221128040214/http://simonstechblog.blogspot.com/2022/11/studying-spectral-primary-decomposition.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=e-hTTVr_pDI&#34; target=&#34;_blank&#34; id=&#34;[video] I Made a Game Entirely Within a Shader (almost) | Game Dev Challenge&#34;&gt;[video] I Made a Game Entirely Within a Shader (almost) | Game Dev Challenge&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents how the author developed a pong game using only a pixel shader in Unity&lt;/li&gt;
&lt;li&gt;shows how to use the alpha channel of the render target to store persistent state&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-264/pong_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=u1pRapBEHlU&#34; target=&#34;_blank&#34; id=&#34;[video] How I Made The World with SINE&#34;&gt;[video] How I Made The World with SINE&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video focuses on the definition of a procedural terrain from a vertex shader&lt;/li&gt;
&lt;li&gt;presents how to combine different noises and rotate patterns to create a planet&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-264/planet_sine.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=FNC1uLJGjag&#34; target=&#34;_blank&#34; id=&#34;[video] [Episode 23] From Local to World Space (Model Matrix Transformation)&#34;&gt;[video] [Episode 23] From Local to World Space (Model Matrix Transformation)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video is the latest part of an OpenGL learning series that focuses on the explanation of vertex data transformation&lt;/li&gt;
&lt;li&gt;explains the concepts of space transformations, focusing on how to change object positions in the world through the use of a world matrix&lt;/li&gt;
&lt;li&gt;shows how to pass information from the C++ runtime to the OpenGL shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-264/model_matrix_opengl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mtldoc.com/metal/2022/11/20/shaders-explained-dithering&#34; target=&#34;_blank&#34; id=&#34;Shaders Explained: Dithering&#34;&gt;Shaders Explained: Dithering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how two implements two different types of dithering in metal shaders&lt;/li&gt;
&lt;li&gt;presents and compares ordered and diffusion dithering algorithms&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-264/dithering_cover.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221121091405/https://mtldoc.com/metal/2022/11/20/shaders-explained-dithering&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=By7qcgaqGI4&#34; target=&#34;_blank&#34; id=&#34;[video] Why Did Link&amp;#39;s Cel Shading Disappear?&#34;&gt;[video] Why Did Link&amp;#39;s Cel Shading Disappear?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video does a deep dive into deferred shading techniques to explain why a graphical artifact in Zelda&amp;rsquo;s Breath of the Wild appears in a specific place&lt;/li&gt;
&lt;li&gt;starting with a discussion of lighting techniques&lt;/li&gt;
&lt;li&gt;shows how the scenes are rendered, what intermediate information is stored, and how it&amp;rsquo;s used for light calculations (including many visualizations)&lt;/li&gt;
&lt;li&gt;finally, it concludes by showing how the error happened and why it&amp;rsquo;s localized to specific locations in the world&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-264/zelda_outline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://sergiopedri.medium.com/announcing-computesharp-2-0-run-c-on-the-gpu-with-ease-through-directx-12-and-d2d1-be4f3f2312b4&#34; target=&#34;_blank&#34; id=&#34;Announcing ComputeSharp 2.0 — run C# on the GPU with ease through DirectX 12 and D2D1!&#34;&gt;Announcing ComputeSharp 2.0 — run C# on the GPU with ease through DirectX 12 and D2D1!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the library that allows C# code to be executed via HLSL, D2D1, XAML, and more&lt;/li&gt;
&lt;li&gt;shows the developer experience, explaining how the code is transformed for GPU execution&lt;/li&gt;
&lt;li&gt;presents the two execution models that showcase performance vs. ease of use&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-264/bokeh_filter.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221205192643/https://sergiopedri.medium.com/announcing-computesharp-2-0-run-c-on-the-gpu-with-ease-through-directx-12-and-d2d1-be4f3f2312b4&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/jhfredriksen&#34; target=&#34;_blank&#34;&gt;Jan-Harald Fredriksen&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 263 - November 27th, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-263/</link>
      <pubDate>Sun, 27 Nov 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-263/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/vk-ext-descriptor-buffer&#34; target=&#34;_blank&#34; id=&#34;VK_EXT_descriptor_buffer&#34;&gt;VK_EXT_descriptor_buffer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses issues with the current Vulkan binding model&lt;/li&gt;
&lt;li&gt;presents how the new descriptor buffer extension allows decoupling draw calls from the descriptor binding&lt;/li&gt;
&lt;li&gt;presents how it helps with the D3D12 layer and can solve common issues with the current binding model&lt;/li&gt;
&lt;li&gt;it additionally covers how this extension also allows GPU timeline descriptor copying&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-263/khronos.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221121140146/https://www.khronos.org/blog/vk-ext-descriptor-buffer&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/nagidev/godot-tutorials/tree/main/Ice%20Tutorial&#34; target=&#34;_blank&#34; id=&#34;How to make Sage&amp;#39;s ice wall ability from Valorant&#34;&gt;How to make Sage&amp;#39;s ice wall ability from Valorant&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial explains how to create an ice wall VFX inspired from the game Valorant in Godot&lt;/li&gt;
&lt;li&gt;covers the code setup, art asset creation as well as shader authoring&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-263/ice_shader_vfx.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221112170944/https://github.com/nagidev/godot-tutorials/tree/main/Ice%20Tutorial&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://marmoset.co/jobs/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;3D Tools Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Remote Work&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Marmoset, developer of the real-time rendering software, Marmoset Toolbag, is looking for an experienced developer to help build bigger and better software tools for 3D artists.&lt;/p&gt;

&lt;p&gt;The responsibilities of a Tools Engineer on the Marmoset team will focus on technical design and implementation of UI systems, and refining the user experience for new and existing workflows in 3D art production.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/log_marmoset_with_text.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;marmoset_week_261&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-135-25-11-2022/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 135 (25.11.2022)&#34;&gt;Technically Art: Issue 135 (25.11.2022)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;contains a collection of tweets covering procedural texturing with MaterialX, shader VFX examples&lt;/li&gt;
&lt;li&gt;WIP and prototype effects, as well as VFX breakdowns&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-263/technically_art_template_135.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221127074319/https://halisavakis.com/technically-art-issue-135-25-11-2022/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=dtc3WmL5OTU&#34; target=&#34;_blank&#34; id=&#34;[video] Car Paint Shader - Advanced Materials - Episode 9&#34;&gt;[video] Car Paint Shader - Advanced Materials - Episode 9&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents several techniques for creating a car paint shader&lt;/li&gt;
&lt;li&gt;covers base coloring, the addition of sparkles, as well as a clear-coat layer&lt;/li&gt;
&lt;li&gt;additionally presents how to implement a carbon fiber material&lt;/li&gt;
&lt;li&gt;implementation is shown in Unity and Unreal visual shader authoring&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-263/car_paint.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rtarun9.github.io/blogs/shader_reflection/&#34; target=&#34;_blank&#34; id=&#34;Shader Reflection using the DirectX Shader Compiler&#34;&gt;Shader Reflection using the DirectX Shader Compiler&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to use the DXC library to compile and gather information from compiled D3D12 shaders&lt;/li&gt;
&lt;li&gt;shows how to use the API to generate root signatures&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-263/HLSLReflection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221123154737/https://rtarun9.github.io/blogs/shader_reflection/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.doublefine.com/jobs&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;San Francisco, CA (remote work is an option)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Double Fine Productions is looking for a full time graphics programmer to join its San Francisco based development studio. Having recently shipped the award winning Psychonauts 2, we are looking to expand our graphics and systems programming team to support the development of our future titles.&lt;/p&gt;

&lt;p&gt;You will be responsible for developing rendering features, optimizing game performance and memory usage, and building low level systems on PC and Xbox.&lt;/p&gt;

&lt;p&gt;Applicants should have a strong preference for working in a highly creative, innovative, and nimble development environment, where collaborating with design, audio, art, animation, tech, and other disciplines is standard.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_double_fine.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;double_fine_week_261&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/brotli-g-sdk-announce&#34; target=&#34;_blank&#34; id=&#34;Brotli-G: An open-source compression/decompression standard for digital assets that is compatible with GPU hardware&#34;&gt;Brotli-G: An open-source compression/decompression standard for digital assets that is compatible with GPU hardware&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD introduces a GPU-compatible implementation of  the Brotli lossless compression algorithm&lt;/li&gt;
&lt;li&gt;the SDK provides a CPU compressor and a compute shader implementation of the decompressor&lt;/li&gt;
&lt;li&gt;code is released as open-source using the MIT license&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-263/brotli-g-accept.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221123180537/https://gpuopen.com/brotli-g-sdk-announce/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.en.uwa4d.com/2022/11/23/introduction-of-the-astc-texture-compression-format/&#34; target=&#34;_blank&#34; id=&#34;Introduction of the ASTC Texture Compression&#34;&gt;Introduction of the ASTC Texture Compression&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the different ASTC Texture Compression formats available&lt;/li&gt;
&lt;li&gt;shows the quality and file size that can be expected for gradients, normal maps, as well as facial albedo textures&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-263/astc_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221123022441/https://blog.en.uwa4d.com/2022/11/23/introduction-of-the-astc-texture-compression-format/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/kongsgard&#34; target=&#34;_blank&#34;&gt;Sondre Kongsgård&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly -  Issue 262  - November 20th, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-262/</link>
      <pubDate>Sun, 20 Nov 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-262/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=KuXjwB4LzSA&#34; target=&#34;_blank&#34; id=&#34;[video] But what is a convolution?&#34;&gt;[video] But what is a convolution?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a great visual explanation of convolution filters&lt;/li&gt;
&lt;li&gt;starting with random number examples, expanding to image progressing filters such as blurring and sharpening&lt;/li&gt;
&lt;li&gt;additionally provides more details on methods to compute large convolution filters more quickly&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-262/convolution.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/pseudorandom-surfaces/spherical-elevation/&#34; target=&#34;_blank&#34; id=&#34;Spherical Elevation Adjusting Arbitrary Normals&#34;&gt;Spherical Elevation Adjusting Arbitrary Normals&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to offset normals along spheres so that displacement doesn&amp;rsquo;t cause self-intersections&lt;/li&gt;
&lt;li&gt;additionally shows how to adjust the normas/tangents to match the displaced normals&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-262/spherical-deformation.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221116033708/https://catlikecoding.com/unity/tutorials/pseudorandom-surfaces/spherical-elevation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/rra-source-amdrdf/&#34; target=&#34;_blank&#34; id=&#34;Radeon™ Raytracing Analyzer source code available &amp;#43; meet amdrdf&#34;&gt;Radeon™ Raytracing Analyzer source code available &amp;#43; meet amdrdf&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the AMD Radeon Raytracing Analyzer has been open-sourced&lt;/li&gt;
&lt;li&gt;it allows for visualization and inspection of Bounding Volume Hierarchies&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-262/featured_rra-768x420.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221120025159/https://gpuopen.com/rra-source-amdrdf/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://marmoset.co/jobs/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;3D Tools Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Remote Work&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Marmoset, developer of the real-time rendering software, Marmoset Toolbag, is looking for an experienced developer to help build bigger and better software tools for 3D artists.&lt;/p&gt;

&lt;p&gt;The responsibilities of a Tools Engineer on the Marmoset team will focus on technical design and implementation of UI systems, and refining the user experience for new and existing workflows in 3D art production.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/log_marmoset_with_text.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;marmoset_week_261&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/agility-sdk-1-608-0/&#34; target=&#34;_blank&#34; id=&#34;Agility SDK 1.608.0: Enhanced Barriers and more&#34;&gt;Agility SDK 1.608.0: Enhanced Barriers and more&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new agility SDK release contains Enhanced Barriers (no longer in preview SDK, removing the need for developer mode)&lt;/li&gt;
&lt;li&gt;the Depth Bias and Index Buffer Strip Cut Value can now be changed after a pipeline has been set&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-262/d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221119022702/https://devblogs.microsoft.com/directx/agility-sdk-1-608-0/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/KhronosGroup/Vulkan-Docs/blob/main/proposals/VK_EXT_descriptor_buffer.adoc&#34; target=&#34;_blank&#34; id=&#34;VK_EXT_descriptor_buffer&#34;&gt;VK_EXT_descriptor_buffer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new Vulkan proposal outlines improvements to the management of descriptor memory&lt;/li&gt;
&lt;li&gt;to allow descriptors to be treated more explicitly and managed alongside other buffer objects&lt;/li&gt;
&lt;li&gt;shows how a form of GPU descriptor updates can be enabled&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-262/Vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221117130251/https://github.com/KhronosGroup/Vulkan-Docs/blob/main/proposals/VK_EXT_descriptor_buffer.adoc&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.doublefine.com/jobs&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;San Francisco, CA (remote work is an option)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Double Fine Productions is looking for a full time graphics programmer to join its San Francisco based development studio. Having recently shipped the award winning Psychonauts 2, we are looking to expand our graphics and systems programming team to support the development of our future titles.&lt;/p&gt;

&lt;p&gt;You will be responsible for developing rendering features, optimizing game performance and memory usage, and building low level systems on PC and Xbox.&lt;/p&gt;

&lt;p&gt;Applicants should have a strong preference for working in a highly creative, innovative, and nimble development environment, where collaborating with design, audio, art, animation, tech, and other disciplines is standard.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_double_fine.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;double_fine_week_261&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=UQNdkdsKoVU&#34; target=&#34;_blank&#34; id=&#34;[video] GCAP22 Highlights: Expert Level Debugging&#34;&gt;[video] GCAP22 Highlights: Expert Level Debugging&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation provides an overview of x64 assembly&lt;/li&gt;
&lt;li&gt;uses the presented information to show how to debug a stack corruption issue&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-262/expert_debugging.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/amd-lab-notes/amd-lab-notes-readme/&#34; target=&#34;_blank&#34; id=&#34;AMD lab notes&#34;&gt;AMD lab notes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the series of blog posts aimed to share the lessons learned from tuning applications for AMD GPUs&lt;/li&gt;
&lt;li&gt;at this time, covering the Laplacian Finite Difference Method&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-262/amd_lab_notes_v1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221117004657/https://gpuopen.com/learn/amd-lab-notes/amd-lab-notes-readme/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/geekculture/decompiling-nvidia-shaders-and-optimizing-5aeaeb65f828&#34; target=&#34;_blank&#34; id=&#34;Decompiling Nvidia shaders, and optimizing&#34;&gt;Decompiling Nvidia shaders, and optimizing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to decompile NVidia OpenGL and Vulkan shader&lt;/li&gt;
&lt;li&gt;shows which tools are required to unpack the Nvidia caches and remap to the source shader names&lt;/li&gt;
&lt;li&gt;presented steps are Linux, but windows should follow similar procedures&lt;/li&gt;
&lt;li&gt;additionally, it presents a couple of examples of optimizations and their effect on the generated assembly&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-262/decompiling_nvidia_shaders.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221114153439/https://medium.com/geekculture/decompiling-nvidia-shaders-and-optimizing-5aeaeb65f828&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-134-18-11-2022/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 134 (18.11.2022)&#34;&gt;Technically Art: Issue 134 (18.11.2022)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of tweets covering a flood filling, VFX breakdowns, unit shader books&lt;/li&gt;
&lt;li&gt;blender geometry nodes and work-in-progress game showcases&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-262/tech-art-week-162.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221118161941/https://halisavakis.com/technically-art-issue-134-18-11-2022/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Michael Hazani for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 261 - November 13th, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-261/</link>
      <pubDate>Sun, 13 Nov 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-261/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=sjvL4q_KRZA&#34; target=&#34;_blank&#34; id=&#34;[video] Metal Shader - Advanced Materials - Episode 7&#34;&gt;[video] Metal Shader - Advanced Materials - Episode 7&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to create a metal material&lt;/li&gt;
&lt;li&gt;explains the effect of the metallic parameter, metal reflectance values as well as specular reflection&lt;/li&gt;
&lt;li&gt;shows the implementation with both Unity and Unreal Engine&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-261/metal_material.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.ludicon.com/castano/blog/2022/11/bc1-compression-revisited/&#34; target=&#34;_blank&#34; id=&#34;BC1 Compression Revisited&#34;&gt;BC1 Compression Revisited&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes how to compress high-quality BC1 images efficiently&lt;/li&gt;
&lt;li&gt;explains how the compression space is optimized&lt;/li&gt;
&lt;li&gt;in-depth explanation of the vectorization process and how to efficiently use SSE, AVX, &amp;hellip; to optimize the implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-261/bc1_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221110204346/http://www.ludicon.com/castano/blog/2022/11/bc1-compression-revisited/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/accelerating-load-times-for-directx-games-and-apps-with-gdeflate-for-directstorage/&#34; target=&#34;_blank&#34; id=&#34;Accelerating Load Times for DirectX Games and Apps with GDeflate for DirectStorage&#34;&gt;Accelerating Load Times for DirectX Games and Apps with GDeflate for DirectStorage&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of GPU-based GDeflate compression&lt;/li&gt;
&lt;li&gt;shows the influence of staging buffer size on compression speed&lt;/li&gt;
&lt;li&gt;list several best practice recommendations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-261/staging-buffer-size-vs-bandwidth.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221110035339/https://developer.nvidia.com/blog/accelerating-load-times-for-directx-games-and-apps-with-gdeflate-for-directstorage/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wickedengine.net/2022/11/08/graphics-api-secrets-format-casting/&#34; target=&#34;_blank&#34; id=&#34;Graphics API secrets: format casting&#34;&gt;Graphics API secrets: format casting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the API rules for casting between texture formats in both Vulkan and D3D12&lt;/li&gt;
&lt;li&gt;discussing sRGB, BC(Block Compression), Depth and generic color format rules&lt;/li&gt;
&lt;li&gt;additionally, it shows Sparse/Tiled resources can be used to alias textures&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-261/vulkan_d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221111124902/https://wickedengine.net/2022/11/08/graphics-api-secrets-format-casting/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://marmoset.co/jobs/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;3D Tools Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Remote Work&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Marmoset, developer of the real-time rendering software, Marmoset Toolbag, is looking for an experienced developer to help build bigger and better software tools for 3D artists.&lt;/p&gt;

&lt;p&gt;The responsibilities of a Tools Engineer on the Marmoset team will focus on technical design and implementation of UI systems, and refining the user experience for new and existing workflows in 3D art production.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/log_marmoset_with_text.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;marmoset_week_261&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/presentations/2022/gpuopen-gpu_submission-reboot_blue_2022.pdf&#34; target=&#34;_blank&#34; id=&#34;GPU submission strategies&#34;&gt;GPU submission strategies&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation shows how submitting/recording commands lists from the API to the GPU affects performance&lt;/li&gt;
&lt;li&gt;shows how to use GPU View and Radeon GPU Profiler to understand the execution behavior&lt;/li&gt;
&lt;li&gt;presents different strategies and how they differ&lt;/li&gt;
&lt;li&gt;additionally presents insights into the driver behavior by discussing the Open Source Linux driver behavior&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-261/submissing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220000000000*/https://gpuopen.com/presentations/2022/gpuopen-gpu_submission-reboot_blue_2022.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://docs.google.com/presentation/d/1-ioiMYgfq6VNKhfUAD5X16RFcKHh2yQ0vu9Nr-8gGf0/&#34; target=&#34;_blank&#34; id=&#34;Implicit half edges&#34;&gt;Implicit half edges&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation explains what Half edges data structure is&lt;/li&gt;
&lt;li&gt;discusses use cases and issues&lt;/li&gt;
&lt;li&gt;presents how to overcome some of the issues by using an Implicit half edges structure&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-261/half_edge.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221114111927/https://docs.google.com/presentation/d/1-ioiMYgfq6VNKhfUAD5X16RFcKHh2yQ0vu9Nr-8gGf0/edit&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ryandowlingsoka.com/Triplanar-Dithered-Triplanar-and-Biplanar-Mapping-in-Unreal-7844313e458e4316aca1e40e6394109e&#34; target=&#34;_blank&#34; id=&#34;Triplanar, Dithered Triplanar, and Biplanar Mapping in Unreal&#34;&gt;Triplanar, Dithered Triplanar, and Biplanar Mapping in Unreal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the implementation of three different techniques for procedural texture mapping (Triplanar, Dithered Triplanar, and Biplanar Mapping)&lt;/li&gt;
&lt;li&gt;implementation is provided in UE5 visual shader code&lt;/li&gt;
&lt;li&gt;explains the trade-offs of the different solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-261/triplanar_mapping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221110094606/https://ryandowlingsoka.com/Triplanar-Dithered-Triplanar-and-Biplanar-Mapping-in-Unreal-7844313e458e4316aca1e40e6394109e&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=XK_p2MxGBQs&#34; target=&#34;_blank&#34; id=&#34;[video] Physically Based Rendering // Intermediate OpenGL Series&#34;&gt;[video] Physically Based Rendering // Intermediate OpenGL Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an overview of a Physically Based shading model&lt;/li&gt;
&lt;li&gt;discusses the Cook-Torrance BRDF model, Schlick GGX, and Fresnel&lt;/li&gt;
&lt;li&gt;provides both the theoretical overview as well as the GLSL shader code implementation of the presented technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-261/opengl_pbr.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.traverseresearch.nl/bindless-rendering-validation-ffcae4fdbe1e&#34; target=&#34;_blank&#34; id=&#34;Bindless rendering — validation&#34;&gt;Bindless rendering — validation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes the design of a validation system for bindless shader resource access&lt;/li&gt;
&lt;li&gt;shows how the shader code is protected against invalid resource usage&lt;/li&gt;
&lt;li&gt;presents how shaders can report failures back to the CPU to be able to inform the user about the error&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-261/bindless_validation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221114112205/https://blog.traverseresearch.nl/bindless-rendering-validation-ffcae4fdbe1e?gi=fb80b5e40cc6&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.doublefine.com/jobs&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;San Francisco, CA (remote work is an option)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Double Fine Productions is looking for a full time graphics programmer to join its San Francisco based development studio. Having recently shipped the award winning Psychonauts 2, we are looking to expand our graphics and systems programming team to support the development of our future titles.&lt;/p&gt;

&lt;p&gt;You will be responsible for developing rendering features, optimizing game performance and memory usage, and building low level systems on PC and Xbox.&lt;/p&gt;

&lt;p&gt;Applicants should have a strong preference for working in a highly creative, innovative, and nimble development environment, where collaborating with design, audio, art, animation, tech, and other disciplines is standard.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_double_fine.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;double_fine_week_261&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=MAXJWEoKbxY&#34; target=&#34;_blank&#34; id=&#34;[video] SIGGRAPH 2022 Real-Time Live!&#34;&gt;[video] SIGGRAPH 2022 Real-Time Live!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;recording of the Siggraph showcase of original, interactive projects of the year&lt;/li&gt;
&lt;li&gt;includes Horizon Forbidden West, Unity-based machine learning character posing, hybrid VR, desktop sculpting, the cavern UE5 demo from the coalition, Unity Digitial Humans facial capture system, and much more&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-261/realtime_life.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://advances.realtimerendering.com/s2022/SIGGRAPH2022-Advances-NubisEvolved-NoVideos.pdf&#34; target=&#34;_blank&#34; id=&#34;Nubis, Evolved: Real-Time Volumetric Clouds for Skies, Environments, and VFX&#34;&gt;Nubis, Evolved: Real-Time Volumetric Clouds for Skies, Environments, and VFX&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the slides for the Real-Time Volumetric Clouds of Horizon Zero West from SIGGRAPH have been released&lt;/li&gt;
&lt;li&gt;covers the cloud modeling, authoring, and improved lighting implementation&lt;/li&gt;
&lt;li&gt;additionally covers optimizations and presents performance numbers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-261/nubis_cloud.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://d3d3g8mu99pzk9.cloudfront.net/AndrewSchneider/NubisEvolved-1080p.pptx&#34; style=&#34;color:white;&#34;&gt;pptx(1.4GB) &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221109174429/http://advances.realtimerendering.com/s2022/SIGGRAPH2022-Advances-NubisEvolved-NoVideos.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=R6vQ9VmMz2w&#34; target=&#34;_blank&#34; id=&#34;[video] Deferred Lights - Pixel Renderer Devlog #1&#34;&gt;[video] Deferred Lights - Pixel Renderer Devlog #1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains the implementation of a 2D deferred shading system&lt;/li&gt;
&lt;li&gt;shows a breakdown of the individual steps of the lighting pipeline&lt;/li&gt;
&lt;li&gt;presents how to render shadows using a stencil-based shadow approach&lt;/li&gt;
&lt;li&gt;shows how to generate shadow mask extension meshes, update stencil buffers and deal with shadows overlapping multiple objects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-261/2d_gbuffer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.getrevue.co/profile/xordev/issues/gm-shaders-mini-noise-2-1454708&#34; target=&#34;_blank&#34; id=&#34;GM Shaders Mini: Noise 2&#34;&gt;GM Shaders Mini: Noise 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to generate Worley, Voronoi, and fractal noise in a GLSLS shader&lt;/li&gt;
&lt;li&gt;ShaderToy example is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-261/NoiseAlgorithms2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221113143635/https://www.getrevue.co/profile/xordev/issues/gm-shaders-mini-noise-2-1454708&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://zincfox.red&#34; target=&#34;_blank&#34;&gt;Jonathan Tinkham&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 260 - November 6th, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-260/</link>
      <pubDate>Sun, 06 Nov 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-260/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Le-Li31_-8k&#34; target=&#34;_blank&#34; id=&#34;[video] Global Lecture with Ed Catmull - The Wild, Unexpected, Exponential Ride Through Computer Graphics&#34;&gt;[video] Global Lecture with Ed Catmull - The Wild, Unexpected, Exponential Ride Through Computer Graphics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the lecture presents an overview of computer-graphics technology of the last 50 years as experienced by Ed Catmull&lt;/li&gt;
&lt;li&gt;shows how individual developments combine over time and cause the speed of innovation to accelerate&lt;/li&gt;
&lt;li&gt;contains a large number of anecdotes about the history of computer-graphics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-260/ed_catmull_talk.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.getrevue.co/profile/xordev/issues/gm-shaders-mini-noise-1437243&#34; target=&#34;_blank&#34; id=&#34;GM Shaders Mini: Noise&#34;&gt;GM Shaders Mini: Noise&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial covers how to generate different noise type in shaders&lt;/li&gt;
&lt;li&gt;covers a basic hash function, value noise as well as perlin noise&lt;/li&gt;
&lt;li&gt;shader code is provided in ShaderToy&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-260/NoiseAlgorithms.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221108101800/https://www.getrevue.co/profile/xordev/issues/gm-shaders-mini-noise-1437243&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=pqdVG_qcKok&#34; target=&#34;_blank&#34; id=&#34;[video] Shader Sauce: How to Use Shaders to Create Stylized VFX&#34;&gt;[video] Shader Sauce: How to Use Shaders to Create Stylized VFX&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video talk introduces a collection of fundamental shader concepts and tricks aimed at the creation of VFX&lt;/li&gt;
&lt;li&gt;some tricks covered are UV distortion, Masks, LUTs &amp;amp; Gradient Mapping, Debugging advice, and much more&lt;/li&gt;
&lt;li&gt;code examples are provided in Unreal Engine 4&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-260/vfx_tricks.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.doublefine.com/jobs&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;San Francisco, CA (remote work is an option)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Double Fine Productions is looking for a full time graphics programmer to join its San Francisco based development studio. Having recently shipped the award winning Psychonauts 2, we are looking to expand our graphics and systems programming team to support the development of our future titles.&lt;/p&gt;

&lt;p&gt;You will be responsible for developing rendering features, optimizing game performance and memory usage, and building low level systems on PC and Xbox.&lt;/p&gt;

&lt;p&gt;Applicants should have a strong preference for working in a highly creative, innovative, and nimble development environment, where collaborating with design, audio, art, animation, tech, and other disciplines is standard.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_double_fine.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;double_fine_week_260&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://sasmaster.medium.com/vector-text-rendering-in-unreal-engine-a222897a3131&#34; target=&#34;_blank&#34; id=&#34;Vector text rendering in Unreal Engine&#34;&gt;Vector text rendering in Unreal Engine&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article covers how to extend UE4 with a custom vertex format and shading pass&lt;/li&gt;
&lt;li&gt;the provided example code is meant to replicate the logic required to implement the Slug text rendering library&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-260/slug_render.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221107060416/https://sasmaster.medium.com/vector-text-rendering-in-unreal-engine-a222897a3131&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gdcvault.com/play/1028185/Investigating-and-Dispelling-Shader-Myths&#34; target=&#34;_blank&#34; id=&#34;[video] Investigating and Dispelling Shader Myths... with Science!&#34;&gt;[video] Investigating and Dispelling Shader Myths... with Science!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk presents a set of common misconceptions about shader code patterns&lt;/li&gt;
&lt;li&gt;shows what instructions are generated and how these patterns affect performance&lt;/li&gt;
&lt;li&gt;examples are provided using UE 5.1 custom shader nodes&lt;/li&gt;
&lt;li&gt;talking about multiply vs. divide, packing floats, use of Lut&amp;rsquo;s vs. Math, as well as the effect of exponential powers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-260/shader_myths.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.haroldserrano.com/blog/programming-with-metal-gpu&#34; target=&#34;_blank&#34; id=&#34;Write your first GPU Kernel using Metal&#34;&gt;Write your first GPU Kernel using Metal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial explains the basic steps required to execute a metal compute shader kernel&lt;/li&gt;
&lt;li&gt;shows how to initialize the metal library, upload buffers, compile shaders and execute compute-shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-260/metal.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221025142006/https://www.haroldserrano.com/blog/programming-with-metal-gpu&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.tomlooman.com/unrealengine-optimization-talk/&#34; target=&#34;_blank&#34; id=&#34;Unreal Engine Game Optimization on a Budget&#34;&gt;Unreal Engine Game Optimization on a Budget&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation provides an overview of essential concepts when optimizing an Unreal Engine game&lt;/li&gt;
&lt;li&gt;explains the foundational settings that are required for correct profiling&lt;/li&gt;
&lt;li&gt;covers how rendering performance can be optimized&lt;/li&gt;
&lt;li&gt;touches on culling, draw distances, occlusion queries, shadow proxies&lt;/li&gt;
&lt;li&gt;additionally provides a valuable list of debug commands&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-260/freeze_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221103162909/https://www.tomlooman.com/unrealengine-optimization-talk/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://zincfox.red&#34; target=&#34;_blank&#34;&gt;Jonathan Tinkham&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 259 - October 30th, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-259/</link>
      <pubDate>Sun, 30 Oct 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-259/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/taichi-dev/meshtaichi&#34; target=&#34;_blank&#34; id=&#34;MeshTaichi: A Compiler for Efficient Mesh-based Operations (SIGGRAPH Asia 2022)&#34;&gt;MeshTaichi: A Compiler for Efficient Mesh-based Operations (SIGGRAPH Asia 2022)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a mesh computation compiler that separates mesh operations from the data partitioning&lt;/li&gt;
&lt;li&gt;the system partitions meshes into sub-patches and reorganize mesh data so that attributes can be accessed from local on-chip memory&lt;/li&gt;
&lt;li&gt;presents performance results and compares against RXmesh, another system that tries to optimize mesh access patterns&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-259/mesh_compiler.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221102074646/https://github.com/taichi-dev/meshtaichi&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=-Inuk1aTwyc&#34; target=&#34;_blank&#34; id=&#34;[video] ICC Colour Profiles, AdobeRGB &amp;amp; sRGB, and &amp;#34;Colour Management&amp;#34; on Windows. The Nightmare Part 1&#34;&gt;[video] ICC Colour Profiles, AdobeRGB &amp;amp; sRGB, and &amp;#34;Colour Management&amp;#34; on Windows. The Nightmare Part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows the importance of color profiles&lt;/li&gt;
&lt;li&gt;presents how in the absence of profiles, applications are free to interpret the results&lt;/li&gt;
&lt;li&gt;shows how the most reliable way to get consistent results across applications is to convert from authoring color space into sRGB&lt;/li&gt;
&lt;li&gt;additionally shows how to inspect color profiles&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-259/color_management.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.threedy.io/assets/Ausschreibungen/threedy_assignment_stellenausschreibung_3d_engineer_en.pdf&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;3D Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Darmstadt/Germany (remote possible)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;As a 3D Engineer at Threedy, you develop our core system&amp;rsquo;s algorithms and data structures, always optimizing data representations for efficient and cutting-edge 3D data streaming and visual computing.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Threedy_instant3Dhub-Logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;threedy_week_259&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=VxbTiuabW0k&#34; target=&#34;_blank&#34; id=&#34;[video] Intel’s New AI: Amazing Ray Tracing Results! &#34;&gt;[video] Intel’s New AI: Amazing Ray Tracing Results! &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents a new upsampling technique developed by intel (Temporally Stable Real-Time Joint Neural Denoising and Supersampling)&lt;/li&gt;
&lt;li&gt;presents a comparison against previous techniques&lt;/li&gt;
&lt;li&gt;shows that the technique can significantly improve denoising and also upscale the image to higher output resolutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-259/intel_denoiser.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/shader-tutorial-73605548&#34; target=&#34;_blank&#34; id=&#34;Shader Tutorial: Enter The Matrix&#34;&gt;Shader Tutorial: Enter The Matrix&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial presents how to rotate a texture in 2D space&lt;/li&gt;
&lt;li&gt;explains rotation matrices, how to rotate around different positions of the plane&lt;/li&gt;
&lt;li&gt;additionally presents the necessary steps to integrate into Unity for demonstration&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-259/uv_rotation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.ph/ffq32&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.realtimerendering.com/blog/low-discrepancy-color-sequences/&#34; target=&#34;_blank&#34; id=&#34;Low Discrepancy Color Sequences&#34;&gt;Low Discrepancy Color Sequences&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes a possible solution to generate a color palette with neighboring colors being most different from each other&lt;/li&gt;
&lt;li&gt;presents issues with some possible solutions&lt;/li&gt;
&lt;li&gt;it additionally presents ideas about weaknesses of the offered solution and possible improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-259/ccs_div255_nograys0_minsum0_favor0.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221031153416/http://www.realtimerendering.com/blog/low-discrepancy-color-sequences/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://metalkit.org/&#34; target=&#34;_blank&#34;&gt;Marius Horga&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 258 - October 23rd, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-258/</link>
      <pubDate>Sun, 23 Oct 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-258/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0011/04/01/&#34; target=&#34;_blank&#34; id=&#34;Performance Comparison of Bounding Volume Hierarchies for GPU Ray Tracing&#34;&gt;Performance Comparison of Bounding Volume Hierarchies for GPU Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a comparison of a large number of methods for the construction of BVHs for ray tracing workloads&lt;/li&gt;
&lt;li&gt;concludes by making suggestions for future technological developments that appear to offer the most potential at the time of writing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-258/shadow_ray_reordering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/fsr-2-1-unreal-engine-plugin-part1/&#34; target=&#34;_blank&#34; id=&#34;FSR 2.1 UE plugin enhancements part 1: Intro &amp;amp; improving foliage appearance using the base pass&#34;&gt;FSR 2.1 UE plugin enhancements part 1: Intro &amp;amp; improving foliage appearance using the base pass&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the 5 part series provides a walkthrough of common issues when using the FSR 2.0 upscaler in Unreal Engine Projects&lt;/li&gt;
&lt;li&gt;discusses why the issues occur, what solutions are available and how FSR 2.1 was improved to deal with the issues&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-258/fsr_vegetation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://iquilezles.org/articles/binarysearchsdf/&#34; target=&#34;_blank&#34; id=&#34;binary search for sdfs - 2018, 2022&#34;&gt;binary search for sdfs - 2018, 2022&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the story of how the author experimented with binary search in a shader for accelerating SDF tracing workloads&lt;/li&gt;
&lt;li&gt;shows how to implement a stackless GPU-based traversal&lt;/li&gt;
&lt;li&gt;presents why the binary search is unable to outperform the SDF raymarching loop&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-258/sdf_tracing.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.docdroid.net/YNntL0e/godot-sdfgi-pdf&#34; target=&#34;_blank&#34; id=&#34;Godot SDFGI - Solving the accessible Global Illumination problem in Godot&#34;&gt;Godot SDFGI - Solving the accessible Global Illumination problem in Godot&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the slides discussing the new GI solution implemented for Godot&lt;/li&gt;
&lt;li&gt;the talk will happen on Friday, 28th &lt;a href=&#34;https://twitter.com/reduzio/status/1583780332524146692&#34; target=&#34;_blank&#34;&gt;twitter DM for signup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;discusses how the technique is based on sphere tracing distance fields&lt;/li&gt;
&lt;li&gt;how to generate the distance fields, trace lights&lt;/li&gt;
&lt;li&gt;additionally spends a large chunk of the presentation on optimizations to make the technique viable&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-258/gi_occlusion_field.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.threedy.io/assets/Ausschreibungen/threedy_assignment_stellenausschreibung_3d_engineer_en.pdf&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;3D Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Darmstadt/Germany (remote possible)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;As a 3D Engineer at Threedy, you develop our core system&amp;rsquo;s algorithms and data structures, always optimizing data representations for efficient and cutting-edge 3D data streaming and visual computing.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Threedy_instant3Dhub-Logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;threedy_week_258&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/opening-hlsl-planning/&#34; target=&#34;_blank&#34; id=&#34;Opening HLSL Planning&#34;&gt;Opening HLSL Planning&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post announces that a new, more open model for HLSL language development&lt;/li&gt;
&lt;li&gt;discusses what feature will be able to be discussed in public and how the process will work&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-258/hlsl_clang.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://kesen.realtimerendering.com/siga2022-Changelog.htm&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH Asia 2022 papers on the web&#34;&gt;SIGGRAPH Asia 2022 papers on the web&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of papers from SIGGRAPH Asia 2022&lt;/li&gt;
&lt;li&gt;the list is updated every couple of days at this time&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-258/sa2022-logo-black-n.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=UHUJJ_nE5dQ&#34; target=&#34;_blank&#34; id=&#34;Snowy Rock Shader - Advanced Materials - Episode 4&#34;&gt;Snowy Rock Shader - Advanced Materials - Episode 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shader tutorial series covers how to create a shader that allows procedural rock shading with snow support&lt;/li&gt;
&lt;li&gt;previous tutorials covered how to create the individual pieces, and those are combined in this part&lt;/li&gt;
&lt;li&gt;video shows the implementation in both Unreal and Unity visual shader authoring&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-258/rock_snow_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/download/publications/GPUOpen2022_GI1_0.pdf&#34; target=&#34;_blank&#34; id=&#34;GI-1.0: A Fast Scalable Two-Level Radiance Caching Scheme for Real-Time Global Illumination&#34;&gt;GI-1.0: A Fast Scalable Two-Level Radiance Caching Scheme for Real-Time Global Illumination&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the AMD paper presents the findings for a new dynamic GI solution&lt;/li&gt;
&lt;li&gt;proposes the separation into a screen and world space cache that complement each other with additional information&lt;/li&gt;
&lt;li&gt;provides a detailed description of the individual steps, performance results as well as known limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-258/two_level_gi.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://stanford.edu/~shervine/teaching/&#34; target=&#34;_blank&#34; id=&#34;stanford - Computer Science cheatsheets&#34;&gt;stanford - Computer Science cheatsheets&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of cheatsheets on the high-level concepts of topics such as AI, machine learning, and statistics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-258/architecture-cnn-en.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=NRmkr50mkEE&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing: How NVIDIA Solved the Impossible!&#34;&gt;Ray Tracing: How NVIDIA Solved the Impossible!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents a history of light transport algorithms development&lt;/li&gt;
&lt;li&gt;shows a breakdown of each technique and improvements in each iteration&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-258/restir.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://godotengine.org/article/emulating-double-precision-gpu-render-large-worlds&#34; target=&#34;_blank&#34; id=&#34;Emulating Double Precision on the GPU to Render Large Worlds&#34;&gt;Emulating Double Precision on the GPU to Render Large Worlds&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents that the Godot engine supports compilation in double-precision mode&lt;/li&gt;
&lt;li&gt;shows how to emulate double precision calculation on GPUs that don&amp;rsquo;t support double by using two floats&lt;/li&gt;
&lt;li&gt;presents what limitations still exist with this solution&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-258/godot_double.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rg3.name/202210222107.html&#34; target=&#34;_blank&#34; id=&#34;My mesh shaders talk at XDC 2022&#34;&gt;My mesh shaders talk at XDC 2022&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides the text version of the mesh shader talk presented&lt;/li&gt;
&lt;li&gt;the presentation covers the issues with the classic graphics pipeline and how mesh shaders can address these&lt;/li&gt;
&lt;li&gt;presents how mesh shaders are authored, limitations, and hardware preference differences&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-258/xdc-2022-mesh-shaders-slide-01.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/keithoconor&#34; target=&#34;_blank&#34;&gt;Keith O&amp;rsquo;Conor&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 257 - October 16th, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-257/</link>
      <pubDate>Sun, 16 Oct 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-257/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://omar-shehata.medium.com/better-outline-rendering-using-surface-ids-with-webgl-e13cdab1fd94&#34; target=&#34;_blank&#34; id=&#34;Better outline rendering using surface IDs with WebGL&#34;&gt;Better outline rendering using surface IDs with WebGL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to improve an outline rendering technique by using surface IDs instead of normals&lt;/li&gt;
&lt;li&gt;discusses which issues the use of normals can cause and how surface Ids can improve&lt;/li&gt;
&lt;li&gt;presents what kind of data issues can occur and how to pre-process the data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-257/wegl_outlines.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221014231330/https://omar-shehata.medium.com/better-outline-rendering-using-surface-ids-with-webgl-e13cdab1fd94&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/improve-shader-performance-and-in-game-frame-rates-with-shader-execution-reordering/&#34; target=&#34;_blank&#34; id=&#34;Improve Shader Performance and In-Game Frame Rates with Shader Execution Reordering&#34;&gt;Improve Shader Performance and In-Game Frame Rates with Shader Execution Reordering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how the Nvidia hardware feature Shader Execution Reordering (SER) can be leveraged in D3D12 ray tracing workloads&lt;/li&gt;
&lt;li&gt;shows how to integrate the API and the necessary Root signature and shader changes&lt;/li&gt;
&lt;li&gt;presents how the new feature was integrated into UE5 Path Tracing and Lumen&lt;/li&gt;
&lt;li&gt;additionally mentions when the feature should be used and what kind of speedups can be expected&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-257/shader_execution_reordering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221013224117/https://developer.nvidia.com/blog/improve-shader-performance-and-in-game-frame-rates-with-shader-execution-reordering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://nedmakesgames.medium.com/transparent-and-crystal-clear-writing-unity-urp-shaders-with-code-part-3-f6ccd6686507&#34; target=&#34;_blank&#34; id=&#34;Transparent and Crystal Clear: Writing Unity URP Shaders with Code, Part 3&#34;&gt;Transparent and Crystal Clear: Writing Unity URP Shaders with Code, Part 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article (and video) explains how to author and integrate shaders with transparency support for use in Unity&lt;/li&gt;
&lt;li&gt;covers Alpha Blending, Alpha Cutouts, sorting as well as shadow integrations&lt;/li&gt;
&lt;li&gt;presents code examples for all stages with detailed explanations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-257/transparency_unity.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221012160348/https://nedmakesgames.medium.com/transparent-and-crystal-clear-writing-unity-urp-shaders-with-code-part-3-f6ccd6686507&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.threedy.io/assets/Ausschreibungen/threedy_assignment_stellenausschreibung_3d_engineer_en.pdf&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;3D Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Darmstadt/Germany (remote possible)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;As a 3D Engineer at Threedy, you develop our core system&amp;rsquo;s algorithms and data structures, always optimizing data representations for efficient and cutting-edge 3D data streaming and visual computing.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Threedy_instant3Dhub-Logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;threedy_week_257&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/directstorage-1-1-coming-soon/&#34; target=&#34;_blank&#34; id=&#34;DirectStorage 1.1 Coming Soon&#34;&gt;DirectStorage 1.1 Coming Soon&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents that the next DirectStorage release will start to support GPU-based GDeflate decompression&lt;/li&gt;
&lt;li&gt;drivers can provide optimized implementation, but a generic DirectCompute fallback will be provided&lt;/li&gt;
&lt;li&gt;lists what hardware and software will support the feature&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-257/direct_storage_1_1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221017005655/https://devblogs.microsoft.com/directx/directstorage-1-1-coming-soon/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=TCz-fKJS3wI&amp;amp;list=PL78XDi0TS4lGqHdLQGR2GHne85i9PebbN&amp;amp;index=2&#34; target=&#34;_blank&#34; id=&#34;[video] Sparkling Snow Shader - Advanced Materials - Episode 2&#34;&gt;[video] Sparkling Snow Shader - Advanced Materials - Episode 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial series covers how to build a complex rock shader&lt;/li&gt;
&lt;li&gt;this episode shows the implementation of a snow shader in both UE and Unity with view-dependent sparkles&lt;/li&gt;
&lt;li&gt;presents how to analyze source texture data and separate information so that smaller texture resolutions can be used without quality loss&lt;/li&gt;
&lt;li&gt;shows how to pack textures and manually unpack them from the shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-257/rock_shader_snow.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.intel.com/content/www/us/en/developer/articles/guide/real-time-ray-tracing-in-games.html&#34; target=&#34;_blank&#34; id=&#34;Intel® Arc™ Graphics Developer Guide for Real-Time Ray Tracing in Games&#34;&gt;Intel® Arc™ Graphics Developer Guide for Real-Time Ray Tracing in Games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Developer Guide provides a functional description of Intel’s hardware ray-tracing implementation&lt;/li&gt;
&lt;li&gt;additionally provides a list of guidelines for developers to allow them to maximize performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-257/arc-graphics-rt.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220928022933/https://www.intel.com/content/www/us/en/developer/articles/guide/real-time-ray-tracing-in-games.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://tellusim.com/upscale/&#34; target=&#34;_blank&#34; id=&#34;Upscale SDK comparison&#34;&gt;Upscale SDK comparison&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a comparison of DLSS 2.4, FSR 2.1.1, and Intel XeSS upscaling techniques&lt;/li&gt;
&lt;li&gt;provides uncompressed images of different scenes for better comparison&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-257/Scene_3_DLSS2_100.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221016055236/https://tellusim.com/upscale/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.doublefine.com/jobs&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;San Francisco, CA (remote work is an option)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Double Fine Productions is looking for a full time graphics programmer to join its San Francisco based development studio. Having recently shipped the award winning Psychonauts 2, we are looking to expand our graphics and systems programming team to support the development of our future titles.&lt;/p&gt;

&lt;p&gt;You will be responsible for developing rendering features, optimizing game performance and memory usage, and building low level systems on PC and Xbox.&lt;/p&gt;

&lt;p&gt;Applicants should have a strong preference for working in a highly creative, innovative, and nimble development environment, where collaborating with design, audio, art, animation, tech, and other disciplines is standard.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_double_fine.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;double_fine_week_257&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=pSiczcJgY1s&#34; target=&#34;_blank&#34; id=&#34;[video] What is NVIDIA DLSS 3? | The Performance Multiplier&#34;&gt;[video] What is NVIDIA DLSS 3? | The Performance Multiplier&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a high-level explanation of the DLSS 3 system&lt;/li&gt;
&lt;li&gt;covering the hardware and system components required for the functionality&lt;/li&gt;
&lt;li&gt;presents how motion vectors and optical flow are combined to generate intermediate frames&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-257/motion_flow.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/msgfx/LightingTest_UE5&#34; target=&#34;_blank&#34; id=&#34;Lighting Test for Unreal Engine 5&#34;&gt;Lighting Test for Unreal Engine 5&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of simple test scenes for light conditions in UE5 and NVIDIA Falcor 5.2 Mogwai path tracer&lt;/li&gt;
&lt;li&gt;contains Perfect Lambert Plane, Perfect Mirror Plane, Perfect Mirror Weak White Plane, as well as a Glossy Plane&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-257/falcor52_pathtracing_glossy_plane.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221011122755/https://github.com/msgfx/LightingTest_UE5&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/my-take-on-shaders-compute-shaders/&#34; target=&#34;_blank&#34; id=&#34;My take on shaders: Compute shaders&#34;&gt;My take on shaders: Compute shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to implement a compute shader that can be used to paint on vertex meshes in realtime&lt;/li&gt;
&lt;li&gt;explains the fundamentals of compute shaders&lt;/li&gt;
&lt;li&gt;shows how to integrate the system with code examples in Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-257/compute_shaders_tutorial.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221011081523/https://halisavakis.com/my-take-on-shaders-compute-shaders/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=rE7Sf2MqVOw&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] How to blend skeletal animations // Intermediate OpenGL Series&#34;&gt;[video] How to blend skeletal animations // Intermediate OpenGL Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how to implement blending between two skeletal animations&lt;/li&gt;
&lt;li&gt;shows what information the ASSIMP library provides and how the data is structured&lt;/li&gt;
&lt;li&gt;additionally presents how to update the OpenGL implementation to allow blending&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-257/skeletal_animation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.en.uwa4d.com/2022/10/11/post-processing-in-depth-camera-distortion-effects/&#34; target=&#34;_blank&#34; id=&#34;Post-Processing – In-Depth Camera Distortion Effects&#34;&gt;Post-Processing – In-Depth Camera Distortion Effects&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides examples of different camera distortion effects (with code examples)&lt;/li&gt;
&lt;li&gt;presents distortion, expansion/contraction, longitudinal/horizontal stretch as well as extrusion effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-257/camera_distortion.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221011070056/https://blog.en.uwa4d.com/2022/10/11/post-processing-in-depth-camera-distortion-effects/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-2210-10-preview/&#34; target=&#34;_blank&#34; id=&#34;PIX 2210.10-preview: Initial support for Preview Agility SDK v706&#34;&gt;PIX 2210.10-preview: Initial support for Preview Agility SDK v706&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;PIX adds a separate preview branch of the tool that supports the Preview Agility SDKs&lt;/li&gt;
&lt;li&gt;supports Enhanced Barriers, Independent Front/Back Stencil Refs and Masks, Triangle Fans&lt;/li&gt;
&lt;li&gt;lists known limitations and considerations when starting to use the preview tool&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-257/d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221012205754/https://devblogs.microsoft.com/pix/pix-2210-10-preview/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/keithoconor&#34; target=&#34;_blank&#34;&gt;Keith O&amp;rsquo;Conor&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 256 - October 9th, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-256/</link>
      <pubDate>Sun, 09 Oct 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-256/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=gsZiJeaMO48&#34; target=&#34;_blank&#34; id=&#34;[video] How Ray Tracing (Modern CGI) Works And How To Do It 600x Faster&#34;&gt;[video] How Ray Tracing (Modern CGI) Works And How To Do It 600x Faster&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a walkthrough of ray tracing fundamentals&lt;/li&gt;
&lt;li&gt;explaining the required concepts, such as BRDF and energy preservation, to understand the rendering equation&lt;/li&gt;
&lt;li&gt;discusses patterns that cause raytracing techniques to require a large number of calculations&lt;/li&gt;
&lt;li&gt;explains what the ReSTIR technique is and how it allows a significant reduction in the calculations required by taking advantage of spatial and temporal reuse&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-256/restir.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/download/publications/SA2022_ProgressiveMaterialCache.pdf&#34; target=&#34;_blank&#34; id=&#34;Progressive Material Caching&#34;&gt;Progressive Material Caching&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a progressive technique to cache material evaluations at runtime&lt;/li&gt;
&lt;li&gt;presents the implementation details of updating a fixed-size hash table on the GPU&lt;/li&gt;
&lt;li&gt;additionally shows the performance of the method and presents the effect of different cache sizes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-256/material_cache.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221005183550/https://gpuopen.com/download/publications/SA2022_ProgressiveMaterialCache.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://fgiesen.wordpress.com/2022/10/06/on-alphatensors-new-matrix-multiplication-algorithms/&#34; target=&#34;_blank&#34; id=&#34;On AlphaTensor’s new matrix multiplication algorithms&#34;&gt;On AlphaTensor’s new matrix multiplication algorithms&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses recent AlphaTensor’s discovery on matrix multiplication&lt;/li&gt;
&lt;li&gt;explains what the algorithm applies to and how it compares to existing techniques&lt;/li&gt;
&lt;li&gt;clarifies the performance results reported in articles&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-256/matrix_block_multiply.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221008063828/https://fgiesen.wordpress.com/2022/10/06/on-alphatensors-new-matrix-multiplication-algorithms/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://threadreaderapp.com/thread/1577590023888723970.html&#34; target=&#34;_blank&#34; id=&#34;Real-time distance field builder twitter thread&#34;&gt;Real-time distance field builder twitter thread&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Twitter thread summarises the real-time distance field generator used by AMD research work&lt;/li&gt;
&lt;li&gt;can maintain the scene representation in &amp;lt; 0.5 ms each frame&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-256/distance_field.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221011060928/https://threadreaderapp.com/thread/1577590023888723970.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.doublefine.com/jobs&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;San Francisco, CA (remote work is an option)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Double Fine Productions is looking for a full time graphics programmer to join its San Francisco based development studio. Having recently shipped the award winning Psychonauts 2, we are looking to expand our graphics and systems programming team to support the development of our future titles.&lt;/p&gt;

&lt;p&gt;You will be responsible for developing rendering features, optimizing game performance and memory usage, and building low level systems on PC and Xbox.&lt;/p&gt;

&lt;p&gt;Applicants should have a strong preference for working in a highly creative, innovative, and nimble development environment, where collaborating with design, audio, art, animation, tech, and other disciplines is standard.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_double_fine.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;double_fine_week_256&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/download/publications/GPUOpen2022_FusedLOD.pdf&#34; target=&#34;_blank&#34; id=&#34;Fused BVH to Ray Trace Level of Detail Meshes&#34;&gt;Fused BVH to Ray Trace Level of Detail Meshes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a method to extend a mesh BVH with additional data so that it can be shared between multiple LODs&lt;/li&gt;
&lt;li&gt;presents how to store the fused BVHs&lt;/li&gt;
&lt;li&gt;shows performance and memory impact of using a different number of LODs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-256/bvh_lods.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221005171000/https://gpuopen.com/download/publications/GPUOpen2022_FusedLOD.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/download/publications/SA2022_DistanceFieldRT.pdf&#34; target=&#34;_blank&#34; id=&#34;Combining GPU Tracing Methods within a Single Ray Query&#34;&gt;Combining GPU Tracing Methods within a Single Ray Query&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a method that combines distance field tracing with hardware ray tracing&lt;/li&gt;
&lt;li&gt;distance field generation is described in the &amp;ldquo;Real-time distance field builder Twitter thread&amp;rdquo; above&lt;/li&gt;
&lt;li&gt;describes when to choose between hardware ray tracing and where to fall back to distance field&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-256/combined_tracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221006171746/https://gpuopen.com/download/publications/SA2022_DistanceFieldRT.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-128-07-10-2022/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 128 (07.10.2022)&#34;&gt;Technically Art: Issue 128 (07.10.2022)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of Twitter posts about a large variety of tech artist topics&lt;/li&gt;
&lt;li&gt;breakdowns of techniques, tree animation breakdowns, and a showcase of effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-256/technically_art_template_128.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221007123206/https://halisavakis.com/technically-art-issue-128-07-10-2022/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://golden-mandolin-675.notion.site/Notes-about-Nanite-in-UE5-1-preview-1bd49cb5986a46629214b82f9ce58ae5&#34; target=&#34;_blank&#34; id=&#34;Notes about Nanite in UE5.1 preview&#34;&gt;Notes about Nanite in UE5.1 preview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of ongoing Nanite developments the developer noticed in the UE5.1 preview&lt;/li&gt;
&lt;li&gt;appears to start adding support for programmable pixel shader evaluation to allow masked materials&lt;/li&gt;
&lt;li&gt;additionally, initial support for vertex modifications and existing culling limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-256/nanite_51.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221010150252/https://golden-mandolin-675.notion.site/Notes-about-Nanite-in-UE5-1-preview-1bd49cb5986a46629214b82f9ce58ae5&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://nickmcd.me/2022/10/01/procedural-wind-and-clouds-using-gpu-accelerated-lattice-boltzmann-method&#34; target=&#34;_blank&#34; id=&#34;Simulating Wind on Procedural Terrain using GPU Accelerated Lattice Boltzmann Method&#34;&gt;Simulating Wind on Procedural Terrain using GPU Accelerated Lattice Boltzmann Method&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses a numerical method for fluid flow to simulate wind flow over terrain&lt;/li&gt;
&lt;li&gt;discusses the underlying theory and how to mathematically express the simulation&lt;/li&gt;
&lt;li&gt;shows how to implement the method using compute shaders in OpenGL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-256/canyon1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221009175707/https://nickmcd.me/2022/10/01/procedural-wind-and-clouds-using-gpu-accelerated-lattice-boltzmann-method/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://play.google.com/store/apps/developer?id=Piggybank+Software&#34; target=&#34;_blank&#34;&gt;Denis Gladkiy&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 255 - October 2nd, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-255/</link>
      <pubDate>Sun, 02 Oct 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-255/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2022/09/28/notes-on-screenspace-reflections-with-fidelityfx-sssr&#34; target=&#34;_blank&#34; id=&#34;Notes on screenspace reflections with FidelityFx SSSR&#34;&gt;Notes on screenspace reflections with FidelityFx SSSR&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the implementation underlying AMDs&amp;rsquo; FidelityFx screen space reflection technique&lt;/li&gt;
&lt;li&gt;discusses how the decision is made if to trace a screen space ray or to fallback to cubemap reflections&lt;/li&gt;
&lt;li&gt;presents performance optimizations done across the different stages&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-255/denoising_result.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220929080647/https://interplayoflight.wordpress.com/2022/09/28/notes-on-screenspace-reflections-with-fidelityfx-sssr/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=i4Evh4SJtUg&#34; target=&#34;_blank&#34; id=&#34;[video] Introduction to Raytracing with the Radeon Developer Tools Suite&#34;&gt;[video] Introduction to Raytracing with the Radeon Developer Tools Suite&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an introduction to the AMD raytracing tool&lt;/li&gt;
&lt;li&gt;shows how to use the tools to gather performance information about the raytracing passes&lt;/li&gt;
&lt;li&gt;video explanation of the &lt;a href=&#34;https://gpuopen.com/learn/improving-rt-perf-with-rra/&#34; target=&#34;_blank&#34;&gt;Improving raytracing performance with the Radeon™ Raytracing Analyzer (RRA)&lt;/a&gt; that was covered in the week &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-253/&#34; target=&#34;_blank&#34;&gt;253&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-255/triangle_tree_depth.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.en.uwa4d.com/2022/09/27/screen-post-processing-effects-gamma-space-and-linear-space/&#34; target=&#34;_blank&#34; id=&#34;Screen Post-processing Effects: Gamma Space and Linear Space&#34;&gt;Screen Post-processing Effects: Gamma Space and Linear Space&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a summary of two plots for the existence of gamma space related to CRT and human perception&lt;/li&gt;
&lt;li&gt;presents how the workflows are integrated into Unity and Unreal&lt;/li&gt;
&lt;li&gt;it additionally presents how rendering results are incorrect when done in the wrong space&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-255/linear_vs_gamma.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220927070109/https://blog.en.uwa4d.com/2022/09/27/screen-post-processing-effects-gamma-space-and-linear-space/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.doublefine.com/jobs&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;San Francisco, CA (remote work is an option)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Double Fine Productions is looking for a full time graphics programmer to join its San Francisco based development studio. Having recently shipped the award winning Psychonauts 2, we are looking to expand our graphics and systems programming team to support the development of our future titles.&lt;/p&gt;

&lt;p&gt;You will be responsible for developing rendering features, optimizing game performance and memory usage, and building low level systems on PC and Xbox.&lt;/p&gt;

&lt;p&gt;Applicants should have a strong preference for working in a highly creative, innovative, and nimble development environment, where collaborating with design, audio, art, animation, tech, and other disciplines is standard.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_double_fine.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;double_fine_week_255&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.en.uwa4d.com/2022/09/29/screen-post-processing-effects-color-models-and-color-grading/&#34; target=&#34;_blank&#34; id=&#34;Screen Post-processing Effects: Color Models and Color Grading&#34;&gt;Screen Post-processing Effects: Color Models and Color Grading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the RGB and HSV color spaces&lt;/li&gt;
&lt;li&gt;presents how to convert between the two spaces&lt;/li&gt;
&lt;li&gt;it additionally shows how to use the HSV model to implement fullscreen color adjustments effects such as desaturation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-255/color_grading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220929014329/https://blog.en.uwa4d.com/2022/09/29/screen-post-processing-effects-color-models-and-color-grading/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=YJB1QnEmlTs&#34; target=&#34;_blank&#34; id=&#34;[video] An In-Depth look at Lerp, Smoothstep, and Shaping Functions&#34;&gt;[video] An In-Depth look at Lerp, Smoothstep, and Shaping Functions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents visual explanations of lerp (linear interpolation)&lt;/li&gt;
&lt;li&gt;takes the knowledge to extend how to visualize and shape the curve for different effects&lt;/li&gt;
&lt;li&gt;presents standard functions and presents different use-cases&lt;/li&gt;
&lt;li&gt;it additionally shows cases where linear interpolation is not enough (camera movement, rotations, ..) and how to resolve them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-255/function_shaping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rtarun9.github.io/blogs/bindless_rendering/&#34; target=&#34;_blank&#34; id=&#34;Bindless Rendering in DirectX12 and SM6.6&#34;&gt;Bindless Rendering in DirectX12 and SM6.6&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an introduction level guide to using the D3D12 bindless model&lt;/li&gt;
&lt;li&gt;shows how RenderDoc and Nsight show the accessed resources for debugging purposes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-255/NsightHeapEntry.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221001030522/https://rtarun9.github.io/blogs/bindless_rendering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gorillasun.de/blog/an-algorithm-for-polygon-intersections&#34; target=&#34;_blank&#34; id=&#34;An Algorithm for Polygon Intersections&#34;&gt;An Algorithm for Polygon Intersections&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to calculate the intersection between axis-aligned rectangles&lt;/li&gt;
&lt;li&gt;extends the methods to cover rotated and more generic polygon shapes&lt;/li&gt;
&lt;li&gt;interactive code samples provided in javascript&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-255/rectangleIntersections.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221003001933/https://gorillasun.de/blog/an-algorithm-for-polygon-intersections&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=6pV93XhiC1Y&#34; target=&#34;_blank&#34; id=&#34;[video] Nvidia DLSS 3 on RTX 4090 - Exclusive First Look - 4K 120FPS and Beyond&#34;&gt;[video] Nvidia DLSS 3 on RTX 4090 - Exclusive First Look - 4K 120FPS and Beyond&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how DLSS uses motion vectors and optical flow fields to implement AI Frame Generation&lt;/li&gt;
&lt;li&gt;presents performance and quality comparison&lt;/li&gt;
&lt;li&gt;discusses the upsides and downsides of the new AI frame generation technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-255/dlss3_frame.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://vulkan.org/events/vulkanised-2023#call-for-submissions&#34; target=&#34;_blank&#34; id=&#34;Vulkanised conference - call for submissions&#34;&gt;Vulkanised conference - call for submissions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the 2023 Vulkanised conference has been announced for in-person in Munich in February&lt;/li&gt;
&lt;li&gt;organizes are currently looking for speakers for the event&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-255/Vulkanized-Europe-2023.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20221002143923/https://vulkan.org/events/vulkanised-2023&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/intel/xess&#34; target=&#34;_blank&#34; id=&#34;Intel(R) Xe Super Sampling (XeSS) SDK&#34;&gt;Intel(R) Xe Super Sampling (XeSS) SDK&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Intel has released the SDK for the XeSS upscaler&lt;/li&gt;
&lt;li&gt;closed source release that exposes the API for D3D12-based applications&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-255/xss.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220929165127/https://github.com/intel/xess&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Stephen Hill for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 254 - September 25, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-254/</link>
      <pubDate>Sun, 25 Sep 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-254/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0011/03/06/&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing of Signed Distance Function Grids&#34;&gt;Ray Tracing of Signed Distance Function Grids&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a comparison of traversal and voxel intersection testing of signed distance function grids&lt;/li&gt;
&lt;li&gt;compares the performance of the different methods&lt;/li&gt;
&lt;li&gt;it additionally introduces a new method for interpolating normals for smoother edges across voxel edges&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-254/sdf_filtering_helper.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220922061231/https://jcgt.org/published/0011/03/06/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.immersivecomputinglab.org/publication/color-perception-guided-display-power-reduction-for-virtual-reality/&#34; target=&#34;_blank&#34; id=&#34;Color-Perception-Guided Display Power Reduction for Virtual Reality&#34;&gt;Color-Perception-Guided Display Power Reduction for Virtual Reality&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a method designed for VR applications that adjust colors to reduce display color consumption&lt;/li&gt;
&lt;li&gt;shows how to develop a perceptual model to detect what color changes in the peripheral vision are acceptable without being noticeable&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-254/power_saving_tonemapping.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220924024004/https://www.immersivecomputinglab.org/publication/color-perception-guided-display-power-reduction-for-virtual-reality/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wickedengine.net/2022/09/23/animation-retargeting/&#34; target=&#34;_blank&#34; id=&#34;Animation Retargeting&#34;&gt;Animation Retargeting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a method to allow the retargeting of animations between models that share a common rig setup&lt;/li&gt;
&lt;li&gt;presented method is meant for offline (tool) processing of the 3D model files&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-254/animation_retarget.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220923160231/https://wickedengine.net/2022/09/23/animation-retargeting/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.threedy.io/assets/Ausschreibungen/threedy_assignment_stellenausschreibung-_unitydeveloper.pdf&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Software / Graphics Engineer Unity 3D (m/w/d)&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Darmstadt/Germany (partly remote possible)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Als Rendering-Geek bist du mit den komplexesten Konzepten der Unity3D-Engine (z.B. Scriptable Rendering Pipeline) bestens vertraut.&lt;/p&gt;

&lt;p&gt;Bei uns hast du die Möglichkeit Next-Level-3D-Datenstreaming innerhalb komplexer XR-Szenarien in enger Abstimmung mit unseren Kunden umzusetzen.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Threedy_instant3Dhub-Logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;threedy_week_253&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=k5mzB9PSg4o&#34; target=&#34;_blank&#34; id=&#34;[video] Post Process VHS Filter Part 3 - Shader Graph Basics - Episode 62&#34;&gt;[video] Post Process VHS Filter Part 3 - Shader Graph Basics - Episode 62&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents how to implement a noise that recreates the interference of unshielded cables&lt;/li&gt;
&lt;li&gt;shows how to generate white noise and animate it for movements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-254/vhs_noise.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://advances.realtimerendering.com/s2022/index.html&#34; target=&#34;_blank&#34; id=&#34;Advances in Real-Time Rendering in Games 2022&#34;&gt;Advances in Real-Time Rendering in Games 2022&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the slides for the Siggraph 2022 Advances in Real-Time Rendering course have been released&lt;/li&gt;
&lt;li&gt;covering runtime Catmull Clark Subdivision, Global Illumination and Ray Tracing in Unreal Engine 5, Unity hair system as well as water rendering in Horizon Forbidden West&lt;/li&gt;
&lt;li&gt;missing slides for Volumetric Clouds in Horizon Forbidden West as well as Cluster Path Tracing for Remote Rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-254/raytracing_ue5.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220919213644/http://advances.realtimerendering.com/s2022/index.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lordarkam.wordpress.com/2022/08/28/quaternions-a-geometrical-interpretation/&#34; target=&#34;_blank&#34; id=&#34;Quaternions: a geometrical interpretation.&#34;&gt;Quaternions: a geometrical interpretation.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a visual interpretation of Quaternion mathematics&lt;/li&gt;
&lt;li&gt;starting from 2D rotations and developing towards 3D rotations from there&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-254/quaternion.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220918093129/https://lordarkam.wordpress.com/2022/08/28/quaternions-a-geometrical-interpretation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.doublefine.com/jobs&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;San Francisco, CA (remote work is an option)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Double Fine Productions is looking for a full time graphics programmer to join its San Francisco based development studio. Having recently shipped the award winning Psychonauts 2, we are looking to expand our graphics and systems programming team to support the development of our future titles.&lt;/p&gt;

&lt;p&gt;You will be responsible for developing rendering features, optimizing game performance and memory usage, and building low level systems on PC and Xbox.&lt;/p&gt;

&lt;p&gt;Applicants should have a strong preference for working in a highly creative, innovative, and nimble development environment, where collaborating with design, audio, art, animation, tech, and other disciplines is standard.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_double_fine.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;double_fine_week_242&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Vg52-HZhrFc&#34; target=&#34;_blank&#34; id=&#34;[video] Easily Remaster Classic Games with NVIDIA RTX Remix&#34;&gt;[video] Easily Remaster Classic Games with NVIDIA RTX Remix&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video introduces the NVIDIA RTX Remix engine&lt;/li&gt;
&lt;li&gt;the runtime allows the interception of DX9 applications&lt;/li&gt;
&lt;li&gt;replaces the application renderer with the custom renderer&lt;/li&gt;
&lt;li&gt;it additionally allows all assets to be intercepted and exported into a USD format where the assets can be modified and reloaded into the original game&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-254/rtx_remix.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=NCptEJ1Uevg&#34; target=&#34;_blank&#34; id=&#34;[video] Soft Shadows - PCF &amp;amp; Random Sampling // OpenGL Advanced Rendering Series&#34;&gt;[video] Soft Shadows - PCF &amp;amp; Random Sampling // OpenGL Advanced Rendering Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to improve an OpenGL shadow mapping implementation to allow softer edges&lt;/li&gt;
&lt;li&gt;presents a Percentage Closer Filtering implementation, discussing weaknesses and limitations of the techniques&lt;/li&gt;
&lt;li&gt;it also shows how to implement a method to improve the edge filtering by varying the sample positions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-254/shadow_filtering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/leonardoetcheverry/&#34; target=&#34;_blank&#34;&gt;Leonardo Etcheverry&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 253 - September 18, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-253/</link>
      <pubDate>Sun, 18 Sep 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-253/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/improving-rt-perf-with-rra/&#34; target=&#34;_blank&#34; id=&#34;Improving raytracing performance with the Radeon Raytracing Analyzer (RRA)&#34;&gt;Improving raytracing performance with the Radeon Raytracing Analyzer (RRA)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post provides insights into ray tracing BVH performance&lt;/li&gt;
&lt;li&gt;shows how splitting BVHs, usage of instances, BVH splitting, and model creation can affect performance&lt;/li&gt;
&lt;li&gt;the effect of deformations on update vs. rebuild&lt;/li&gt;
&lt;li&gt;additionally presents a comparison of iterative and recursive ray tracing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-253/multiple_materials_single_vs_multiple_BLASes.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220916034931/https://gpuopen.com/learn/improving-rt-perf-with-rra/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://poniesandlight.co.uk/reflect/island_rendergraph_2/&#34; target=&#34;_blank&#34; id=&#34;Vulkan Render-Queues and how they Sync&#34;&gt;Vulkan Render-Queues and how they Sync&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how a render graph gets updated to handle exclusive resource ownership between multiple GPU queues&lt;/li&gt;
&lt;li&gt;examples are provided in Vulkan terms&lt;/li&gt;
&lt;li&gt;explain the difference between binary and timeline semaphores&lt;/li&gt;
&lt;li&gt;shows how to integrate swap chain synchronization into such a system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-253/multi_queue_submission.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220920031915/https://poniesandlight.co.uk/reflect/island_rendergraph_2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ok0EZ0fBCMA&#34; target=&#34;_blank&#34; id=&#34;[video] SIGGRAPH 2022 Talk - A Fast &amp;amp; Robust Solution for Cubic &amp;amp; Higher-Order Polynomials&#34;&gt;[video] SIGGRAPH 2022 Talk - A Fast &amp;amp; Robust Solution for Cubic &amp;amp; Higher-Order Polynomials&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presentation provides a walkthrough of methods to find the real roots of polynomials&lt;/li&gt;
&lt;li&gt;presents an example of how to use the technique for hair rendering to calculate hair strand intersections&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-253/siggraph_polynomials.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://sonnati.wordpress.com/2022/09/16/defeat-banding-part-ii/&#34; target=&#34;_blank&#34; id=&#34;Defeat Banding – Part II&#34;&gt;Defeat Banding – Part II&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses a method to detect artifacts in video&lt;/li&gt;
&lt;li&gt;applies the concept to detect banding artifacts and present a visual representation of the artifacts present over time&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-253/video_banding.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220916183017/https://sonnati.wordpress.com/2022/09/16/defeat-banding-part-ii/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.threedy.io/assets/Ausschreibungen/threedy_assignment_stellenausschreibung-_unitydeveloper.pdf&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Software / Graphics Engineer Unity 3D (m/w/d)&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Darmstadt/Germany (partly remote possible)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Als Rendering-Geek bist du mit den komplexesten Konzepten der Unity3D-Engine (z.B. Scriptable Rendering Pipeline) bestens vertraut.&lt;/p&gt;

&lt;p&gt;Bei uns hast du die Möglichkeit Next-Level-3D-Datenstreaming innerhalb komplexer XR-Szenarien in enger Abstimmung mit unseren Kunden umzusetzen.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Threedy_instant3Dhub-Logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;threedy_week_253&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=x95xhWCxBb4&#34; target=&#34;_blank&#34; id=&#34;[video] Pixelation Filter - Shader Graph Basics - Episode 61&#34;&gt;[video] Pixelation Filter - Shader Graph Basics - Episode 61&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents how to create a fullscreen post-screen effect that pixelates the screen&lt;/li&gt;
&lt;li&gt;provides a walkthrough of the implementation in Unity and Unreal using visual shader graphs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-253/pixelation_filter.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://johnaustin.io/articles/2022/fast-post-processing-on-the-oculus-quest&#34; target=&#34;_blank&#34; id=&#34;Fast Post-Processing on the Oculus Quest and Unity&#34;&gt;Fast Post-Processing on the Oculus Quest and Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a short article that shows an option to apply tone mapping in forward shading without wanting to use a separate fullscreen pass&lt;/li&gt;
&lt;li&gt;discusses the shortcomings of the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-253/The_Last_Clockwinder_Umgebung.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220919152148/https://johnaustin.io/articles/2022/fast-post-processing-on-the-oculus-quest&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.en.uwa4d.com/2022/09/15/screen-post-processing-effects-depth-of-field-dof-and-its-implementation/&#34; target=&#34;_blank&#34; id=&#34;Screen Post-processing Effects: Depth of Field (DOF) and Its Implementation&#34;&gt;Screen Post-processing Effects: Depth of Field (DOF) and Its Implementation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of depth of field effects&lt;/li&gt;
&lt;li&gt;shows the effect of different camera parameters on the visual results&lt;/li&gt;
&lt;li&gt;presents an implementation in Unity shader code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-253/depth_of_field.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220915021021/https://blog.en.uwa4d.com/2022/09/15/screen-post-processing-effects-depth-of-field-dof-and-its-implementation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=7JMehLi2vWk&#34; target=&#34;_blank&#34; id=&#34;[video] Practical Skeletal Animation // Intermediate OpenGL Series&#34;&gt;[video] Practical Skeletal Animation // Intermediate OpenGL Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial provides a walkthrough of issues in supporting animated models&lt;/li&gt;
&lt;li&gt;shows how to extend to larger support bone counts, dealing with zero bone influences as well as supporting multiple animations&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-253/practical_skeletal_animation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://miketuritzin.com&#34; target=&#34;_blank&#34;&gt;Mike Turitzin&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 252 - September 11, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-252/</link>
      <pubDate>Sun, 11 Sep 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-252/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://michaelmoroz.github.io/TracingGeodesics/&#34; target=&#34;_blank&#34; id=&#34;Visualizing General Relativity&#34;&gt;Visualizing General Relativity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains a method to simulate and render different warped space-times&lt;/li&gt;
&lt;li&gt;shows how to simulate the light to form a black hole&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-252/SpaceEngineBH.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220912120827/https://michaelmoroz.github.io/TracingGeodesics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.getlazarus.org/pool/balls/&#34; target=&#34;_blank&#34; id=&#34;Rendering my balls in a fragment shader&#34;&gt;Rendering my balls in a fragment shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a walkthrough of how to render 2D billiard balls in a pixel shader&lt;/li&gt;
&lt;li&gt;shows how to render a sphere, calculate normals, apply textures and specular lighting&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-252/ball07_.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220914004715/https://www.getlazarus.org/pool/balls/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://raphlinus.github.io/curves/2022/09/09/parallel-beziers.html&#34; target=&#34;_blank&#34; id=&#34;Parallel curves of cubic Béziers&#34;&gt;Parallel curves of cubic Béziers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes a method to generate a cubic Bézier curve that is parallel with a defined offset distance to another curve&lt;/li&gt;
&lt;li&gt;compares different methods and presents examples to experiment with the proposed techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-252/bezier_curve.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220911231457/https://raphlinus.github.io/curves/2022/09/09/parallel-beziers.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.collabora.com/news-and-blog/blog/2022/09/07/improving-vulkan-graphics-state-tracking-in-mesa/&#34; target=&#34;_blank&#34; id=&#34;Improving Vulkan graphics state tracking in Mesa&#34;&gt;Improving Vulkan graphics state tracking in Mesa&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses how API pipeline state maps onto different hardware types&lt;/li&gt;
&lt;li&gt;presents how the open source Mesa stack provides solutions to the problem that can take advantage of the underlying hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-252/MesaTracking.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220907163044/https://www.collabora.com/news-and-blog/blog/2022/09/07/improving-vulkan-graphics-state-tracking-in-mesa/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-124-9-09-2022/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 124 (9.09.2022)&#34;&gt;Technically Art: Issue 124 (9.09.2022)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of tweets about tech art, VFX, and related topics&lt;/li&gt;
&lt;li&gt;showcases in-progress developments and experiments&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-252/technical_art_template_124.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220909141023/https://halisavakis.com/technically-art-issue-124-9-09-2022/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2022/09/05/gradient-descent-optimized-recursive-filters-for-deconvolution-deblurring/&#34; target=&#34;_blank&#34; id=&#34;Gradient-descent optimized recursive filters for deconvolution / deblurring&#34;&gt;Gradient-descent optimized recursive filters for deconvolution / deblurring&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post discusses infinite impulse response (IIR filter)&lt;/li&gt;
&lt;li&gt;shows when one might want to use an IIR filter, discussing problems with the filters&lt;/li&gt;
&lt;li&gt;proposes a solution that uses a gradient descent optimization process to learn an IIR filter&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-252/filtering_trained.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220908163811/https://bartwronski.com/2022/09/05/gradient-descent-optimized-recursive-filters-for-deconvolution-deblurring/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Wyz1lDBrDzE&#34; target=&#34;_blank&#34; id=&#34;[video] Post Process VHS Filter Part 2 - Shader Graph Basics - Episode 60&#34;&gt;[video] Post Process VHS Filter Part 2 - Shader Graph Basics - Episode 60&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the second video of the series VHS filter series adds support for worn-out tape and tracking-out-of-phase effect&lt;/li&gt;
&lt;li&gt;implementation is done using Unity and Unreal shader graph system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-252/vhs_effect.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/gfxprogrammer&#34; target=&#34;_blank&#34;&gt;Ken Russell&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 251 - September 5, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-251/</link>
      <pubDate>Mon, 05 Sep 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-251/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=BNZtUB7yhX4&#34; target=&#34;_blank&#34; id=&#34;[video] Ray Marching, and making 3D Worlds with Math&#34;&gt;[video] Ray Marching, and making 3D Worlds with Math&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the short video provides a great visual introduction to distance functions and ray marching&lt;/li&gt;
&lt;li&gt;presents how to express shapes using implicit surfaces&lt;/li&gt;
&lt;li&gt;showing techniques to combine different shapes and animate them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-251/ray_marching.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.zyanidelab.com/lighting-participating-media-with-thousands-of-lights/&#34; target=&#34;_blank&#34; id=&#34;Lighting participating media with thousands of lights&#34;&gt;Lighting participating media with thousands of lights&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows the Grid-Based Reservoirs sampling technique for dynamic lights in participating media&lt;/li&gt;
&lt;li&gt;this enables the temporal reuse of samples among neighboring rays&lt;/li&gt;
&lt;li&gt;shows the different stages of the implementation and how different sampling and noise distributions change the results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-251/ReGirCover.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220830090358/http://www.zyanidelab.com/lighting-participating-media-with-thousands-of-lights/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/mesh-shading-for-vulkan&#34; target=&#34;_blank&#34; id=&#34;Mesh Shading for Vulkan&#34;&gt;Mesh Shading for Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;mesh shader support has been added to Vulkan through VK_EXT_mesh_shader&lt;/li&gt;
&lt;li&gt;the article compares the API against D3D12 and the previous Nvidia extension&lt;/li&gt;
&lt;li&gt;Khronos additionally provides several queryable attributes that developers can use to tune the algorithms for the hardware capabilities and requirements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-251/2022-blog-vulkan-Stanford-bunny-model.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220902200600/https://www.khronos.org/blog/mesh-shading-for-vulkan&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=J5eIOv-CrB8&#34; target=&#34;_blank&#34; id=&#34;[video] Intel Arc Graphics | Intel Arc A-Series Graphics Ray Tracing Technology Deep Dive&#34;&gt;[video] Intel Arc Graphics | Intel Arc A-Series Graphics Ray Tracing Technology Deep Dive&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video starts with a visual overview of rasterization, raytracing, and hybrid rendering techniques&lt;/li&gt;
&lt;li&gt;the talk focuses on how intel hardware is designed to efficiently support raytracing&lt;/li&gt;
&lt;li&gt;contains benchmark comparisons of expected performance compared to an RTX3060&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-251/hybrid_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2022/08/31/progressive-image-stippling-and-greedy-blue-noise-importance-sampling/&#34; target=&#34;_blank&#34; id=&#34;Progressive image stippling and greedy blue noise importance sampling&#34;&gt;Progressive image stippling and greedy blue noise importance sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a method to generate Progressive blue noise samples that follow the image content&lt;/li&gt;
&lt;li&gt;shows the implementation in python&lt;/li&gt;
&lt;li&gt;discusses the effects of different parameters and how they can be used for the required results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-251/blue_noise_progressive.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220831160012/https://bartwronski.com/2022/08/31/progressive-image-stippling-and-greedy-blue-noise-importance-sampling/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=_gO5Q-wFL1U&#34; target=&#34;_blank&#34; id=&#34;[video] Post Process VHS Filter - Shader Graph Basics - Episode 59&#34;&gt;[video] Post Process VHS Filter - Shader Graph Basics - Episode 59&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents how to implement two VHS effects, interlacing lines and YIQ color grading, in a post-processing effect&lt;/li&gt;
&lt;li&gt;walkthrough of the effect is provided in both Unreal and Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-251/vhs_effect.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://juretriglav.si/compressing-global-illumination-with-neural-networks/&#34; target=&#34;_blank&#34; id=&#34;Compressing global illumination with neural networks&#34;&gt;Compressing global illumination with neural networks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog presents the idea of using a simple neural network to encode diffuse indirect light for a scene&lt;/li&gt;
&lt;li&gt;discusses the various steps in the experiment&lt;/li&gt;
&lt;li&gt;presents the final results and discusses weaknesses of the approach&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-251/neural_network_gi_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220906075840/https://juretriglav.si/compressing-global-illumination-with-neural-networks/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=JtSJr-je8qY&#34; target=&#34;_blank&#34; id=&#34;[archive] Practical Aspects of Spectral Data in Digital Content Production - SIGGRAPH 2022&#34;&gt;[archive] Practical Aspects of Spectral Data in Digital Content Production - SIGGRAPH 2022&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;second year of the spectral rendering Siggraph course&lt;/li&gt;
&lt;li&gt;focusing on the practical aspects of spectral rendering&lt;/li&gt;
&lt;li&gt;shows the limitations of RGB and discusses the advantages of spectral rendering and workflows&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-251/spectral_colorgrading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-123-2-09-2022/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 123 (2.09.2022)&#34;&gt;Technically Art: Issue 123 (2.09.2022)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of tweets about tech art, VFX, and related topics&lt;/li&gt;
&lt;li&gt;showcases of in-progress developments and experiments&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-251/technical_art_123.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220902142125/https://halisavakis.com/technically-art-issue-123-2-09-2022/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/gmodarelli&#34; target=&#34;_blank&#34;&gt;Giuseppe Modarelli&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 250 - August 28, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-250/</link>
      <pubDate>Sun, 28 Aug 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-250/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0011/03/04/&#34; target=&#34;_blank&#34; id=&#34;Barycentric Quad Rasterization&#34;&gt;Barycentric Quad Rasterization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents why and when a quad is being drawn as two triangles can cause discontinuities along the edge&lt;/li&gt;
&lt;li&gt;the paper presents a geometry shader implementation of generalized barycentric coordinates for quads&lt;/li&gt;
&lt;li&gt;this concept was introduced in 2004 for CPU rasterization when hardware support was not available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-250/quad_icon.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220825131115/https://jcgt.org/published/0011/03/04/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0011/03/05/&#34; target=&#34;_blank&#34; id=&#34;Practical Real-Time Hex-Tiling&#34;&gt;Practical Real-Time Hex-Tiling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces an adaptation of the Heitz and Neyret texture tiling technique&lt;/li&gt;
&lt;li&gt;the original technique required offline preprocessing to enable histogram-preserving tiling&lt;/li&gt;
&lt;li&gt;the new method removes the requirement and presents the implementation in shader code only&lt;/li&gt;
&lt;li&gt;presents how to apply the technique for color and normal maps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-250/hex_tiling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220828205924/https://jcgt.org/published/0011/03/05/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rosenzweig.io/blog/asahi-gpu-part-6.html&#34; target=&#34;_blank&#34; id=&#34;Clip control on the Apple GPU&#34;&gt;Clip control on the Apple GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an insight into how the apple metal driver is separated into components&lt;/li&gt;
&lt;li&gt;shows how it&amp;rsquo;s possible to call internal APIs and reconstruct hardware behavior&lt;/li&gt;
&lt;li&gt;presents a discussion of OpenGL clip space mapping and limitations of different emulation behaviors&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-250/neverball_on_metal.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220827001438/https://rosenzweig.io/blog/asahi-gpu-part-6.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ehyMwVnnnTg&#34; target=&#34;_blank&#34; id=&#34;[video] Creating an Outline Effect as a Post-Process in Unity&#34;&gt;[video] Creating an Outline Effect as a Post-Process in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to implement an outline effect in Unity&lt;/li&gt;
&lt;li&gt;presents how to detect edges using the depth buffer, create an outline at the edges&lt;/li&gt;
&lt;li&gt;it additionally shows how to adjust the effect so that objects behind objects get a separate show-through-wall effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-250/ghosted_outling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=NRnj_lnpORU&#34; target=&#34;_blank&#34; id=&#34;HPG 2022 Keynote: The Journey to Nanite - Brian Karis, Epic Games&#34;&gt;HPG 2022 Keynote: The Journey to Nanite - Brian Karis, Epic Games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk discusses the issues artist encounter and how Nanite goals are designed to resolve them&lt;/li&gt;
&lt;li&gt;presents a large number of topics Brian Karis had researched along the way&lt;/li&gt;
&lt;li&gt;shows a brief overview of the techniques, shortcomings, and reasons why they failed&lt;/li&gt;
&lt;li&gt;discusses how to structure long-term research, focusing on challenges of the field and the importance of coding like a scientist&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-250/locked_boundaries.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://highperformancegraphics.org/slides22/Journey_to_Nanite.pdf&#34; style=&#34;color:white;&#34;&gt;slides &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20220825183633/https://highperformancegraphics.org/slides22/Journey_to_Nanite.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ea.com/seed/news/cog22-lod-reduction-supervised-learning&#34; target=&#34;_blank&#34; id=&#34;CoG 2022: Automatic Testing and Validation of LoD Reductions Through Supervised Learning&#34;&gt;CoG 2022: Automatic Testing and Validation of LoD Reductions Through Supervised Learning&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces two convolutional neural networks (CNN) based techniques that can detect LOD transitions and the quality of that transition&lt;/li&gt;
&lt;li&gt;two models are presented to solve these two issues separately&lt;/li&gt;
&lt;li&gt;discusses the issue with the current approaches and how the presented techniques could be used to support artists&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-250/lod_cnn.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220822153603/https://www.ea.com/seed/news/cog22-lod-reduction-supervised-learning&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.danielfortes.com&#34; target=&#34;_blank&#34;&gt;Daniel Fortes&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 249 - August 21, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-249/</link>
      <pubDate>Sun, 21 Aug 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-249/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://acko.net/blog/the-gpu-banana-stand/&#34; target=&#34;_blank&#34; id=&#34;The GPU Banana Stand&#34;&gt;The GPU Banana Stand&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of the composable declarative GPU authoring&lt;/li&gt;
&lt;li&gt;shows how chain compute dispatches, handles historical data as well as visualizes temporary results&lt;/li&gt;
&lt;li&gt;it additionally discusses how the tree representation allows internal composability and enables background optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-249/transformcontext.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://themaister.net/blog/2022/08/21/my-personal-hell-of-translating-dxil-to-spir-v-finale/&#34; target=&#34;_blank&#34; id=&#34;My personal hell of translating DXIL to SPIR-V – finale&#34;&gt;My personal hell of translating DXIL to SPIR-V – finale&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article continues the series of translating DXIL to SPIR-V for use with vkd3d-proton&lt;/li&gt;
&lt;li&gt;the part covers how to convert structured control flow. DXIL is unstructured and needs to be converted into structured SPIR-V&lt;/li&gt;
&lt;li&gt;discusses the limitations, oddities and solutions developed to make the conversion work and debuggable&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-249/structured_spirv.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220823070411/https://themaister.net/blog/2022/08/21/my-personal-hell-of-translating-dxil-to-spir-v-finale/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jeremyong.com/shaders/gpus/assembly/2022/08/19/exploring-shaders-with-compiler-explorer/&#34; target=&#34;_blank&#34; id=&#34;Exploring Shaders with Compiler Explorer&#34;&gt;Exploring Shaders with Compiler Explorer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to integrate new compilers into the compiler explorer infrastructure (which can be run locally)&lt;/li&gt;
&lt;li&gt;discusses the DXC and AMD Radeon™ GPU Analyzer integration&lt;/li&gt;
&lt;li&gt;shows the limitations of the existing integration&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-249/compiler_explorer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=1bm0McKAh9E&#34; target=&#34;_blank&#34; id=&#34;[video] Let There Be Light (And Shadow) | Writing Unity URP Code Shaders Tutorial [2/9]&#34;&gt;[video] Let There Be Light (And Shadow) | Writing Unity URP Code Shaders Tutorial [2/9]&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents how to write universal rendering pipeline shaders in HLSL&lt;/li&gt;
&lt;li&gt;shows how to implement simple diffuse &amp;amp; specular lighting, explaining the render pipeline as the author goes along&lt;/li&gt;
&lt;li&gt;it also shows how to integrate shadow rendering&lt;/li&gt;
&lt;li&gt;additionally presents the debugging tools available&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-249/unity_smoothness.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://blog.pkh.me/p/33-deconstructing-be%cc%81zier-curves.html&#34; target=&#34;_blank&#34; id=&#34;Deconstructing Bézier curves&#34;&gt;Deconstructing Bézier curves&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the underlying theory for Bézier curves and shows how the different component interacts&lt;/li&gt;
&lt;li&gt;presents how to express the curve mathematically so that intersections between a ray and the curve can be found&lt;/li&gt;
&lt;li&gt;shows how to use the information to detect if a pixel is inside or outside of a shape&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-249/bezier-labels.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220817065438/http://blog.pkh.me/p/33-deconstructing-be%cc%81zier-curves.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://knarkowicz.wordpress.com/2022/08/18/journey-to-lumen&#34; target=&#34;_blank&#34; id=&#34;Journey to Lumen&#34;&gt;Journey to Lumen&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the different approaches that were tried during the development of lumen&lt;/li&gt;
&lt;li&gt;presents tradeoffs of the different techniques and how the decision was made on which one to use&lt;/li&gt;
&lt;li&gt;it additionally shows how the arrival of Nanite changed several variables significantly and therefore made a new evaluation of approaches necessary&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-249/lumenprototyperesults.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220819164019/https://knarkowicz.wordpress.com/2022/08/18/journey-to-lumen/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=THEBuWtcuWQ&#34; target=&#34;_blank&#34; id=&#34;[video]  Resampled Importance Sampling: Foundations of ReSTIR&#34;&gt;[video]  Resampled Importance Sampling: Foundations of ReSTIR&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents the foundation how to general ReSTIR sampling&lt;/li&gt;
&lt;li&gt;this allows resampling with importance sampling for arbitrary domains&lt;/li&gt;
&lt;li&gt;continues to show how to apply these concepts to allow ReSTIR for path-tracers&lt;/li&gt;
&lt;li&gt;shows how to allow reuse across paths, discusses considerations and limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-249/path_shift.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=pmS-F6RJhAk&#34; target=&#34;_blank&#34; id=&#34;[video] Coding a crazy weave pattern&#34;&gt;[video] Coding a crazy weave pattern&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows how to implement a Truchet effect using shadertoy&lt;/li&gt;
&lt;li&gt;presents the whole implementation from start to finish, showing all intermediate steps&lt;/li&gt;
&lt;li&gt;it additionally discusses how to extend the concepts and possible future extensions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-249/art_of_code_weave_pattern.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0011/03/03/&#34; target=&#34;_blank&#34; id=&#34;Lightweight Multidimensional Adaptive Sampling for GPU Ray Tracing&#34;&gt;Lightweight Multidimensional Adaptive Sampling for GPU Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents how to adapt multidimensional adaptive sampling for interactive real-time ray tracing&lt;/li&gt;
&lt;li&gt;applies the technique to stochastic effects such as motion blur, depth of field, and indirect illumination&lt;/li&gt;
&lt;li&gt;presents a performance comparison against Halton sampling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-249/muti_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220815210513/https://jcgt.org/published/0011/03/03/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=BYbIs1C7rkM&#34; target=&#34;_blank&#34; id=&#34;[video] Fog Rendering - Part 2 // &amp;#39;ShaderX2 In Practice&amp;#39; series&#34;&gt;[video] Fog Rendering - Part 2 // &amp;#39;ShaderX2 In Practice&amp;#39; series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the OpenGL fog rendering series extends the previous works and implements Layered and animated fog&lt;/li&gt;
&lt;li&gt;explains the underlying theory before showing the implementation using GLS&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-249/layered_fog.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Wpsqfpxb55Y&#34; target=&#34;_blank&#34; id=&#34;[video] Post Process Cartoon Outlines - Shader Graph Basics - Episode 57&#34;&gt;[video] Post Process Cartoon Outlines - Shader Graph Basics - Episode 57&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows how to implement cartoon outlines in screen space&lt;/li&gt;
&lt;li&gt;discontinuities in scene depth and normals are used to detect edges&lt;/li&gt;
&lt;li&gt;the resulting filtered edge mask is used to apply outlines around objects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-249/toon_outline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 248 - August 14, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-248/</link>
      <pubDate>Sun, 14 Aug 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-248/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/nvidia-announces-full-open-source-of-material-definition-language-to-streamline-graphics-pipelines/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Announces Full Open Source of Material Definition Language to Streamline Graphics Pipelines&#34;&gt;NVIDIA Announces Full Open Source of Material Definition Language to Streamline Graphics Pipelines&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Nvidia open-sources MDL distiller and the GLSL backend&lt;/li&gt;
&lt;li&gt;MDL distiller is a system for automated shader simplifications&lt;/li&gt;
&lt;li&gt;the GLSL backend enables the usage of MDL for Vulkan applications&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-248/mdl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220812133308/https://developer.nvidia.com/blog/nvidia-announces-full-open-source-of-material-definition-language-to-streamline-graphics-pipelines/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://80.lv/articles/physically-based-a-database-of-pbr-values-for-real-world-materials/&#34; target=&#34;_blank&#34; id=&#34;Physically Based: a Database of PBR Values for Real-World Materials&#34;&gt;Physically Based: a Database of PBR Values for Real-World Materials&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A database of physically based values for CG artists (materials, Light Sources, Cameras)&lt;/li&gt;
&lt;li&gt;contains material information of familiar materials in a unified interface&lt;/li&gt;
&lt;li&gt;materialX, unity, and unreal shader graphs are available for the different materials&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-248/material_database.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220817053113/https://80.lv/articles/physically-based-a-database-of-pbr-values-for-real-world-materials/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-2208-10001/&#34; target=&#34;_blank&#34; id=&#34;PIX 2208.10: SM 6.7 support, GPU and Timing Capture Improvements&#34;&gt;PIX 2208.10: SM 6.7 support, GPU and Timing Capture Improvements&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new PIX release allows profiling to target different GPU clock rates (controlled by the hardware manufacturer)&lt;/li&gt;
&lt;li&gt;added the ability to export metrics to CSV&lt;/li&gt;
&lt;li&gt;additionally, added support trimming of captures&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-248/pix_profiling_modes.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220810212914/https://devblogs.microsoft.com/pix/pix-2208-10001/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/using-performance-budgets-in-the-timing-capture-metrics-view/&#34; target=&#34;_blank&#34; id=&#34;Using performance budgets in the Timing Capture metrics view&#34;&gt;Using performance budgets in the Timing Capture metrics view&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post explains how to set up budgets for pix metrics&lt;/li&gt;
&lt;li&gt;can be defined for the user or system metrics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-248/perf-budgets-in-timing-capture-metrics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220817053229/https://devblogs.microsoft.com/pix/using-performance-budgets-in-the-timing-capture-metrics-view/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.en.uwa4d.com/2022/08/11/screen-post-processing-effects-chapter-1-basic-algorithm-of-gaussian-blur-and-its-implementation&#34; target=&#34;_blank&#34; id=&#34;Screen Post Processing Effects Chapter 1 – Basic Algorithm of Gaussian Blur and Its Implementation&#34;&gt;Screen Post Processing Effects Chapter 1 – Basic Algorithm of Gaussian Blur and Its Implementation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the theory of a Gaussian blur algorithm&lt;/li&gt;
&lt;li&gt;shows how the filter is defined, sample weights calculated&lt;/li&gt;
&lt;li&gt;it additionally presents how to implement the technique using a Unity Pixel Shader&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-248/gaussian_blur_processing_guide.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220817053341/https://blog.en.uwa4d.com/2022/08/11/screen-post-processing-effects-chapter-1-basic-algorithm-of-gaussian-blur-and-its-implementation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jlekstrand.net/jason/blog/2022/08/descriptors-are-hard/&#34; target=&#34;_blank&#34; id=&#34;Descriptors are hard&#34;&gt;Descriptors are hard&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a description of the texture/buffer/sampler binding model supported by different hardware manufacturers&lt;/li&gt;
&lt;li&gt;discusses how Vulkan and D3D12 models map onto the hardware&lt;/li&gt;
&lt;li&gt;additionally discusses problems arising from the differences&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-248/descriptors.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220812074350/https://www.jlekstrand.net/jason/blog/2022/08/descriptors-are-hard/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.nvidia.com/publication/2022-07_real-time-path-tracing-and-beyond&#34; target=&#34;_blank&#34; id=&#34;Real-Time Path Tracing and Beyond&#34;&gt;Real-Time Path Tracing and Beyond&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation provides a brief overview of the implementation details for the Nvidia path tracer and the level of optimizations required to archive the performance&lt;/li&gt;
&lt;li&gt;presents open problems in data authoring, scene description, and material complexity&lt;/li&gt;
&lt;li&gt;shows ideas on how techniques can be developed together to deliver improved results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-248/beyond_path_tracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220817053508/https://research.nvidia.com/publication/2022-07_real-time-path-tracing-and-beyond&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.selfshadow.com/2022/08/13/siggraph-2022-links/&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2022 Links&#34;&gt;SIGGRAPH 2022 Links&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a growing collection of content from SIGGRAPH 2022&lt;/li&gt;
&lt;li&gt;presentations, slides, videos, and posters&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-248/s22_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220817053843/https://blog.selfshadow.com/2022/08/13/siggraph-2022-links/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.dgp.toronto.edu/~hertzman/sig22-perspective/&#34; target=&#34;_blank&#34; id=&#34;Beyond Linear Perspective: Art, Human Vision, and Computer Graphics&#34;&gt;Beyond Linear Perspective: Art, Human Vision, and Computer Graphics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses the limitations of linear perspective and how classical artists rarely used it&lt;/li&gt;
&lt;li&gt;present non-linear projection techniques and how they can be used&lt;/li&gt;
&lt;li&gt;starts a discussion on how to computationally model and apply these methods&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-248/rob-sketch.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220802191209/https://www.dgp.toronto.edu/~hertzman/sig22-perspective/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://tuket.github.io/posts/2022-08-05-explosion-decals/&#34; target=&#34;_blank&#34; id=&#34;Explosion Decals&#34;&gt;Explosion Decals&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a technique to generate explosion decals aimed at a 3D topdown game&lt;/li&gt;
&lt;li&gt;based around forward shading, a projected 3D sphere with procedural noise&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-248/explosion_demo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220814195457/https://tuket.github.io/posts/2022-08-05-explosion-decals/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=kRIUsIO16yI&#34; target=&#34;_blank&#34; id=&#34;[video] Bloom &amp;amp; Glow Post Process Effect - Shader Graph Basics - Episode 56&#34;&gt;[video] Bloom &amp;amp; Glow Post Process Effect - Shader Graph Basics - Episode 56&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video tutorial shows how to implement a bloom effect using Unreal and Unity shader graphs&lt;/li&gt;
&lt;li&gt;starts by showing visually how the effect works using photoshop before implementing the code&lt;/li&gt;
&lt;li&gt;followed by presenting a walkthrough of the total effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-248/bloom_effect.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/keithoconor&#34; target=&#34;_blank&#34;&gt;Keith O&amp;rsquo;Conor&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 247 - August 7, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-247/</link>
      <pubDate>Sun, 07 Aug 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-247/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.highperformancegraphics.org/2022/program/&#34; target=&#34;_blank&#34; id=&#34;High-Performance Graphics 2022&#34;&gt;High-Performance Graphics 2022&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the program has been updated with links to the recording of all talks&lt;/li&gt;
&lt;li&gt;not all papers are available yet; only the author-released copies are available at this time&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-247/hpg2022banner-1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220809093623/https://www.highperformancegraphics.org/2022/program/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://solidpixel.github.io/2022/07/21/vertexpacking.html&#34; target=&#34;_blank&#34; id=&#34;Vertex packing&#34;&gt;Vertex packing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes the trade-offs between storing vertex information in a single buffer compared to storing the data across multiple streams&lt;/li&gt;
&lt;li&gt;presents how splitting can have a positive impact on cache usage as well as reduced power consumption&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-247/interleaved-noninterleaved-buffers.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://metalbyexample.com/vertex-descriptors/&#34; style=&#34;color:white;&#34;&gt;image source &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220722094647/https://solidpixel.github.io/2022/07/21/vertexpacking.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.paperdigest.org/2022/07/siggraph-2022-highlights/&#34; target=&#34;_blank&#34; id=&#34;Paper Digest: SIGGRAPH 2022 Highlights&#34;&gt;Paper Digest: SIGGRAPH 2022 Highlights&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of papers presented at SIGGRAPH 2022 with a one-sentence summary&lt;/li&gt;
&lt;li&gt;provides links to the ACM entries that provide access to the papers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-247/siggraph-2022.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220730140726/https://www.paperdigest.org/2022/07/siggraph-2022-highlights/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cl.cam.ac.uk/research/rainbow/projects/sihdr_benchmark/&#34; target=&#34;_blank&#34; id=&#34;Comparison of single image HDR reconstruction methods — the caveats of quality assessment&#34;&gt;Comparison of single image HDR reconstruction methods — the caveats of quality assessment&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents that common image metrics are not a great metric to detect the subjective quality of HDR reconstruction methods&lt;/li&gt;
&lt;li&gt;shows that only significant changes in metric results are likely to be an improvement&lt;/li&gt;
&lt;li&gt;suggests that color shifts are more noticeable to the human perception system than most metrics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-247/si-hdr-representitive.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220807082445/https://www.cl.cam.ac.uk/research/rainbow/projects/sihdr_benchmark/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=gya7x9H3mV0&#34; target=&#34;_blank&#34; id=&#34;[video] Microfacet BRDF: Theory and Implementation of Basic PBR Materials [Shaders Monthly #9]&#34;&gt;[video] Microfacet BRDF: Theory and Implementation of Basic PBR Materials [Shaders Monthly #9]&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows how to implement the Cook-Torrance microfacet BRDF&lt;/li&gt;
&lt;li&gt;provides an overview of the theory first&lt;/li&gt;
&lt;li&gt;shows how to implement the technique with GLSL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-247/cook_torrance_brdf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://microsoft.github.io/DirectX-Specs/d3d/HLSL_ShaderModel6_7.html&#34; target=&#34;_blank&#34; id=&#34;HLSL Shader Model 6.7&#34;&gt;HLSL Shader Model 6.7&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the spec for the new features of shader model 6.7 has been released&lt;/li&gt;
&lt;li&gt;contains summaries and links to the detailed specification section for each feature&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-247/d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220806130807/https://microsoft.github.io/DirectX-Specs/d3d/HLSL_ShaderModel6_7.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mtldoc.com/metal/2022/08/04/shaders-explained-gradients.html&#34; target=&#34;_blank&#34; id=&#34;Shaders Explained: Gradients&#34;&gt;Shaders Explained: Gradients&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to write a metal shader to generate a 1D gradient&lt;/li&gt;
&lt;li&gt;this is taken as the basis and expanded to generate a 2D, radial, and angular gradients&lt;/li&gt;
&lt;li&gt;source code is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-247/gradient_example.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220805174009/https://mtldoc.com/metal/2022/08/04/shaders-explained-gradients.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://anki3d.org/porting-anki-to-android-again-after-8-years/&#34; target=&#34;_blank&#34; id=&#34;Porting AnKi to Android… again after ~8 years&#34;&gt;Porting AnKi to Android… again after ~8 years&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article contains a small overview of steps taken to port the AnKi engine to support Android&lt;/li&gt;
&lt;li&gt;discusses how the problem was broken down, issues encountered, and workarounds required&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-247/anki_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220803071023/https://anki3d.org/porting-anki-to-android-again-after-8-years/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=oQksg57qsRA&#34; target=&#34;_blank&#34; id=&#34;[video] Fog Rendering - Part 1 // ShaderX2 In Practice Series&#34;&gt;[video] Fog Rendering - Part 1 // ShaderX2 In Practice Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents how to implement 3 different methods of distance fogs from the ShaderX2 book (released in 2003)&lt;/li&gt;
&lt;li&gt;implementation is shown in OpenGL/GLSL&lt;/li&gt;
&lt;li&gt;presents a comparison of the three presented techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-247/shaderx2_fog.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://trevord.black&#34; target=&#34;_blank&#34;&gt;Trevor Black&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 246 - July 31, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-246/</link>
      <pubDate>Sun, 31 Jul 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-246/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=eDLilzy2mq0&#34; target=&#34;_blank&#34; id=&#34;[video] Compute Shaders || Lou Kramer || AMD&#34;&gt;[video] Compute Shaders || Lou Kramer || AMD&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation introduces compute-shaders, explaining the software and hardware concepts&lt;/li&gt;
&lt;li&gt;expands upon the basis to explain execution patterns, memory, and cache hierarchies&lt;/li&gt;
&lt;li&gt;texture reading/writing patterns as well as common mistakes&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-246/compute_pipeline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/announcing-radeon-raytracing-analyzer-1-0/&#34; target=&#34;_blank&#34; id=&#34;Introducing our brand new tool: Radeon™ Raytracing Analyzer 1.0&#34;&gt;Introducing our brand new tool: Radeon™ Raytracing Analyzer 1.0&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new tool from AMD to provide more insights into the performance of raytracing applications&lt;/li&gt;
&lt;li&gt;show much memory is used, if redundant information is stored, all geometric axis aligned, etc&lt;/li&gt;
&lt;li&gt;video presentation covering the information available is linked&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-246/fullsize_tlas_viewer_1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220802103228/https://gpuopen.com/announcing-radeon-raytracing-analyzer-1-0/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/synchronizing-present-calls-between-applications-on-distributed-systems-with-directx-12/&#34; target=&#34;_blank&#34; id=&#34;Synchronizing Present Calls Between Applications on Distributed Systems with DirectX 12&#34;&gt;Synchronizing Present Calls Between Applications on Distributed Systems with DirectX 12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an Nvidia API extension that allows multiple buffer swaps (between windows and applications) to be synchronized&lt;/li&gt;
&lt;li&gt;shows the D3D12 API and discusses the usage, conditions for correct usage as well as limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-246/sample_multi_swapchain.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220727074313/https://developer.nvidia.com/blog/synchronizing-present-calls-between-applications-on-distributed-systems-with-directx-12/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/best-practices-for-using-nvidia-rtx-ray-tracing-updated/&#34; target=&#34;_blank&#34; id=&#34;Best Practices for Using NVIDIA RTX Ray Tracing (Updated)&#34;&gt;Best Practices for Using NVIDIA RTX Ray Tracing (Updated)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Nvidia has updated the performance best practices for RTX usage&lt;/li&gt;
&lt;li&gt;contains new recommendations enabled with shader model 6.6, updated guidelines for inline ray tracing&lt;/li&gt;
&lt;li&gt;and many more minor updates across the categories&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-246/rt-resize.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220726092600/https://developer.nvidia.com/blog/best-practices-for-using-nvidia-rtx-ray-tracing-updated/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://therealmjp.github.io/posts/gpu-memory-pool/&#34; target=&#34;_blank&#34; id=&#34;GPU Memory Pools in D3D12&#34;&gt;GPU Memory Pools in D3D12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the detailed article explains the different memory pools available and how they differ between different types&lt;/li&gt;
&lt;li&gt;shows how D3D12 exposes the memory management&lt;/li&gt;
&lt;li&gt;discussing strategy for texture and buffer uploads&lt;/li&gt;
&lt;li&gt;presents performance numbers for CPU and GPU reads/writes and uploads to different memory types&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-246/background_streaming_fast_queue.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220731230734/https://therealmjp.github.io/posts/gpu-memory-pool/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://phaazon.net/blog/shades-edsl&#34; target=&#34;_blank&#34; id=&#34;A Rust shading language EDSL&#34;&gt;A Rust shading language EDSL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the Rust shades crate that allows writing Rust domain-specific language that can be used to generate GLSL code&lt;/li&gt;
&lt;li&gt;explains the motivation, implementation as well as open issues&lt;/li&gt;
&lt;li&gt;it additionally provides a comparison against other solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-246/rust_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220730152546/https://phaazon.net/blog/shades-edsl&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lisyarus.github.io/blog/graphics/2022/07/30/point-light-attenuation.html&#34; target=&#34;_blank&#34; id=&#34;A better point light attenuation function&#34;&gt;A better point light attenuation function&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a derivation of a light attenuation function to separately control the maximum intensity and radius&lt;/li&gt;
&lt;li&gt;function is designed to reach zero influence to be used with clustered shading&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-246/many_lights.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220730100530/https://lisyarus.github.io/blog/graphics/2022/07/30/point-light-attenuation.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/69768922&#34; target=&#34;_blank&#34; id=&#34;UVs and You&#34;&gt;UVs and You&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article aimed at beginners explains how images are applied to 3D objects&lt;/li&gt;
&lt;li&gt;presents what UV (Texture coordinates are) and how to visualize them&lt;/li&gt;
&lt;li&gt;shows how to explore the relationship between mesh and UV coordinates from Unity shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-246/screen_ui.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220730010125/https://www.patreon.com/posts/69768922&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wunkolo.github.io/post/2022/07/gl_ext_fragment_shader_barycentric-wireframe/&#34; target=&#34;_blank&#34; id=&#34;GL_EXT_fragment_shader_barycentric: Wireframe&#34;&gt;GL_EXT_fragment_shader_barycentric: Wireframe&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of barycentric coordinates&lt;/li&gt;
&lt;li&gt;shows that barycentric can be interpreted as a distance field&lt;/li&gt;
&lt;li&gt;derives how to render wireframe line rendering from these distances&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-246/carousel.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220802084758/https://wunkolo.github.io/post/2022/07/gl_ext_fragment_shader_barycentric-wireframe/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.warp.dev/blog/adventures-text-rendering-kerning-glyph-atlases&#34; target=&#34;_blank&#34; id=&#34;Adventures in Text Rendering: Kerning and Glyph Atlases&#34;&gt;Adventures in Text Rendering: Kerning and Glyph Atlases&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of font rendering&lt;/li&gt;
&lt;li&gt;looks at the different levels that cover glyph evaluation, line layouts, and antialiasing&lt;/li&gt;
&lt;li&gt;presents rasterization constraints, how to cache glyphs for efficient rendering&lt;/li&gt;
&lt;li&gt;additional covers how to deal with sub-pixel positioning&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-246/wand_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://d3d3g8mu99pzk9.cloudfront.net/JamesMcLaren/AdventuresWithDeferred_McLaren_James.pptx&#34; style=&#34;color:white;&#34;&gt;slides &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220802213607/https://www.warp.dev/blog/adventures-text-rendering-kerning-glyph-atlases&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=yIoPXGyT9qU&#34; target=&#34;_blank&#34; id=&#34;[video] Generation of simplified representations of the city, characters and vehicles for Cyberpunk 2077&#34;&gt;[video] Generation of simplified representations of the city, characters and vehicles for Cyberpunk 2077&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation video discusses the LOD generation used in Cyberpunk 2077 (3D models and materials)&lt;/li&gt;
&lt;li&gt;discusses the different algorithms that were used for different types of models and materials&lt;/li&gt;
&lt;li&gt;provides an overview of the pipeline and infrastructure integration&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-246/proxy_generation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.guerrilla-games.com/read/adventures-with-deferred-texturing-in-horizon-forbidden-west&#34; target=&#34;_blank&#34; id=&#34;Adventures with deferred texturing in horizon forbidden west&#34;&gt;Adventures with deferred texturing in horizon forbidden west&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;slides for the GDC presentation talking about the deferred texturing solution has been released&lt;/li&gt;
&lt;li&gt;summary in &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-231/&#34; target=&#34;_blank&#34;&gt;week 231&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-246/adventures-deferred-texturing-hfw.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220803184648/https://www.guerrilla-games.com/read/adventures-with-deferred-texturing-in-horizon-forbidden-west&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/michal-z/zig-gamedev&#34; target=&#34;_blank&#34; id=&#34;zig-gamedev project&#34;&gt;zig-gamedev project&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a growing collection of graphics samples and libraries for the zig programming language&lt;/li&gt;
&lt;li&gt;the provided samples cover how to use the released libraries&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-246/zig_lang_view.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to [Michael Hazani] for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 245 - July 24, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-245/</link>
      <pubDate>Sun, 24 Jul 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-245/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://toji.github.io/webgpu-gltf-case-study/&#34; target=&#34;_blank&#34; id=&#34;Efficently rendering glTF models&#34;&gt;Efficently rendering glTF models&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses how to load and process glTF models for efficient execution&lt;/li&gt;
&lt;li&gt;presented techniques aimed at WebGPU but mainly applicable to D3D12/Vulkan as well&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-245/gltf-header.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220720202251/https://toji.github.io/webgpu-gltf-case-study/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mamoniem.com/behind-the-pretty-frames-resident-evil/&#34; target=&#34;_blank&#34; id=&#34;Behind the Pretty Frames: Resident Evil&#34;&gt;Behind the Pretty Frames: Resident Evil&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a super detailed analysis of the RE Engine used by Resident Evil&lt;/li&gt;
&lt;li&gt;shows the passes, what data structures are used, and detailed breakdowns of the effects of the passes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-245/ResidentEvilPostFeaturedImage_banner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220723233840/https://mamoniem.com/behind-the-pretty-frames-resident-evil/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=x2FHHU50ktQ&#34; target=&#34;_blank&#34; id=&#34;[video] Shadow Mapping Unleashed! // Intermediate OpenGL Series&#34;&gt;[video] Shadow Mapping Unleashed! // Intermediate OpenGL Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains common shadow problems and why they occur&lt;/li&gt;
&lt;li&gt;proceeds to present different solutions to the issues and compare the methods&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-245/ogl_shadows.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.doublefine.com/jobs&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;San Francisco, CA (remote work is an option)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Double Fine Productions is looking for a full time graphics programmer to join its San Francisco based development studio. Having recently shipped the award winning Psychonauts 2, we are looking to expand our graphics and systems programming team to support the development of our future titles.&lt;/p&gt;

&lt;p&gt;You will be responsible for developing rendering features, optimizing game performance and memory usage, and building low level systems on PC and Xbox.&lt;/p&gt;

&lt;p&gt;Applicants should have a strong preference for working in a highly creative, innovative, and nimble development environment, where collaborating with design, audio, art, animation, tech, and other disciplines is standard.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_double_fine.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;double_fine_week_245&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://kesen.realtimerendering.com/hpg2022-Changelog.htm&#34; target=&#34;_blank&#34; id=&#34;High Performance Graphics 2022 papers on the web&#34;&gt;High Performance Graphics 2022 papers on the web&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;list of papers presented at High-Performance Graphics 2022&lt;/li&gt;
&lt;li&gt;contains links to the projects, papers, and youtube videos if available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-245/hpg2022banner-1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220725060840/http://kesen.realtimerendering.com/hpg2022-Changelog.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=jfXJYPTdyAg&#34; target=&#34;_blank&#34; id=&#34;[video] Rain Drips On The Lens Post-Process Effect - Shader Graph Basics - Episode 54&#34;&gt;[video] Rain Drips On The Lens Post-Process Effect - Shader Graph Basics - Episode 54&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents how to implement a fullscreen camera space rain effect&lt;/li&gt;
&lt;li&gt;implementation is done using Unity and Unreal visual shader system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-245/rain-effect.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=QhyMal6RY7M&#34; target=&#34;_blank&#34; id=&#34;[video] Spartan Engine Livestream #2: FSR 2.0 Integration&#34;&gt;[video] Spartan Engine Livestream #2: FSR 2.0 Integration&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the stream shows a practical example of how to implement FSR 2.0 into the authors&amp;rsquo; personal engine&lt;/li&gt;
&lt;li&gt;presents the complete process, including example project setup, engine integration, and testing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-245/fsr-integration.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2022/07/20/Swallowing-the-elephant-into-Blender/&#34; target=&#34;_blank&#34; id=&#34;Swallowing the elephant into Blender&#34;&gt;Swallowing the elephant into Blender&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collecting of optimizations done to reduce the Moana USD scene import time into Blender from 3 hours to 1.5 minutes&lt;/li&gt;
&lt;li&gt;includes generally applicable advice for performant CPU code implementations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-245/usd-moana-timepie.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220720141323/https://aras-p.info/blog/2022/07/20/Swallowing-the-elephant-into-Blender/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.realtimerendering.com/blog/some-siggraph-2022-info/&#34; target=&#34;_blank&#34; id=&#34;Some SIGGRAPH 2022 Info&#34;&gt;Some SIGGRAPH 2022 Info&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of advice for SIGGRAPH 2022 (virtual) attendees&lt;/li&gt;
&lt;li&gt;list of links and events around the event&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-245/1056472-siggraph-2022-vancouver-and-online.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220720214901/http://www.realtimerendering.com/blog/some-siggraph-2022-info/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/performance-boosts-and-enhanced-features-in-new-nsight-graphics-nsight-aftermath-releases/&#34; target=&#34;_blank&#34; id=&#34;Performance Boosts and Enhanced Features in New Nsight Graphics, Nsight Aftermath Releases&#34;&gt;Performance Boosts and Enhanced Features in New Nsight Graphics, Nsight Aftermath Releases&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;article presents improvements in the new Nsight and Aftermath releases&lt;/li&gt;
&lt;li&gt;improved Ray Tracing Acceleration Structure Viewer and VK_KHR_graphics_pipeline_library extension support for Nsight graphics&lt;/li&gt;
&lt;li&gt;Aftermath has better support for tracking page faults from data writes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-245/Nsight-Graphics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220725060515/https://developer.nvidia.com/blog/performance-boosts-and-enhanced-features-in-new-nsight-graphics-nsight-aftermath-releases/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/leonardoetcheverry/&#34; target=&#34;_blank&#34;&gt;Leonardo Etcheverry&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 244 - July 17, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-244/</link>
      <pubDate>Sun, 17 Jul 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-244/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Ibe1JBF5i5Y&#34; target=&#34;_blank&#34; id=&#34;[video] Procedural Grass in &amp;#39;Ghost of Tsushima&amp;#39;&#34;&gt;[video] Procedural Grass in &amp;#39;Ghost of Tsushima&amp;#39;&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the GDC presentation covers how the grass is procedurally generated in compute shaders&lt;/li&gt;
&lt;li&gt;how vertex shader animates the blades and wind influences the shapes&lt;/li&gt;
&lt;li&gt;presents the LOD transitions, how shadows are processed&lt;/li&gt;
&lt;li&gt;it additionally covers how artists can control the effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-244/grass_ghost_of_tsushima.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2022/07/10/order-independent-transparency-endgame/&#34; target=&#34;_blank&#34; id=&#34;Order independent transparency: endgame&#34;&gt;Order independent transparency: endgame&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a couple additional order-independent transparency algorithms&lt;/li&gt;
&lt;li&gt;provides a brief overview of Weighted Blended Order-Independent Transparency (WBOIT) as well as Moment based OIT (MBOIT)&lt;/li&gt;
&lt;li&gt;shows the influence of screen size, quality setting as well as render target formats on the performance of the techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-244/oit-image-9.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220710191330/https://interplayoflight.wordpress.com/2022/07/10/order-independent-transparency-endgame/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://projectzomboid.com/blog/jobs/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Animation Engineer / Code Supremo&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Remote working / Flexible hours&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;The Indie Stone, developers of Project Zomboid, are looking for AAA coders to join them on their quest for the ultimate zombie survival simulation.&lt;/p&gt;

&lt;p&gt;The applicant would be in charge of maintaining and developing our game’s animation system for Project Zomboid using a custom built OpenGL engine, while also working with the animator to improve our output, systems and toolset. Initial tasks would deal with root motion, blending and masking – later moving on to integration of inverse kinematics and ragdoll physics.&lt;/p&gt;

&lt;p&gt;The Zomboid team is small and have their fingers in a lot of pies, so there are many opportunities to get involved in other areas of the game too - depending on the applicant’s skillset.&lt;/p&gt;

&lt;p&gt;Competitive salary and a prominent role in a tight, passionate team. Remote and flexible working, anti-crunch mindset.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/TheIndieStoneLogo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;the_indie_stone_week_244&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-setstablepowerstate/&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: SetStablePowerState&#34;&gt;Advanced API Performance: SetStablePowerState&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Nvidia presents best practices to achieve stable performance results on NVIDIA hardware&lt;/li&gt;
&lt;li&gt;it recommends not only using SetStablePowerState as it doesn&amp;rsquo;t lock memory clocks&lt;/li&gt;
&lt;li&gt;instead recommends using the NVidia-smi utility&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-244/nvida-power-mode.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220715074346/https://developer.nvidia.com/blog/advanced-api-performance-setstablepowerstate/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=au4cPLuEpNM&#34; target=&#34;_blank&#34; id=&#34;[video] HPG 2022 Monday, Day 1 (enhanced)&#34;&gt;[video] HPG 2022 Monday, Day 1 (enhanced)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video recording of the first day of the
High-Performance Graphics conference&lt;/li&gt;
&lt;li&gt;covers temporally stable upscaling and denoising, variance-guided filtering for motion blur, as well as virtual blue noise lighting&lt;/li&gt;
&lt;li&gt;the recordings of the other days are available on youtube as well&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-244/hpg-opening.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.doublefine.com/jobs&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;San Francisco, CA (remote work is an option)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Double Fine Productions is looking for a full time graphics programmer to join its San Francisco based development studio. Having recently shipped the award winning Psychonauts 2, we are looking to expand our graphics and systems programming team to support the development of our future titles.&lt;/p&gt;

&lt;p&gt;You will be responsible for developing rendering features, optimizing game performance and memory usage, and building low level systems on PC and Xbox.&lt;/p&gt;

&lt;p&gt;Applicants should have a strong preference for working in a highly creative, innovative, and nimble development environment, where collaborating with design, audio, art, animation, tech, and other disciplines is standard.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_double_fine.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;double_fine_week_244&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/shader-model-6-7/&#34; target=&#34;_blank&#34; id=&#34;Agility SDK 1.606.3: Shader Model 6.7 is now publicly available!&#34;&gt;Agility SDK 1.606.3: Shader Model 6.7 is now publicly available!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article focuses on the new capabilities added in shader model 6.7&lt;/li&gt;
&lt;li&gt;now supports integer border colors, dynamic programmable offset, as well as new quad all/any operations&lt;/li&gt;
&lt;li&gt;adds support for writing to MSAA targets via UAV as well as more relaxed uint castable texture formats (same idea as Vulkan, creation time list of allowed formats)&lt;/li&gt;
&lt;li&gt;it additionally adds support for raw gather instructions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-244/qcat3b.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220714193235/https://devblogs.microsoft.com/directx/shader-model-6-7/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/preview-agility-sdk-1-706-3-preview-sm-6-7-enhanced-barriers-and-more/&#34; target=&#34;_blank&#34; id=&#34;Preview Agility SDK 1.706.3-preview: SM 6.7, Enhanced Barriers and more&#34;&gt;Preview Agility SDK 1.706.3-preview: SM 6.7, Enhanced Barriers and more&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a new preview of the Agility SDK improves the enhanced barrier API support, significantly better debugging support&lt;/li&gt;
&lt;li&gt;as well as it allows Independent Front/Back Stencil Refs and Masks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-244/agility-sdk.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220714192509/https://devblogs.microsoft.com/directx/preview-agility-sdk-1-706-3-preview-sm-6-7-enhanced-barriers-and-more/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/shader-model-6-7-agility-sdk/&#34; target=&#34;_blank&#34; id=&#34;AMD support for Shader Model 6.7 and enhanced barriers in the Agility SDK&#34;&gt;AMD support for Shader Model 6.7 and enhanced barriers in the Agility SDK&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a brief summary of the main features of shader model 6.7 and what is supported by the new AMD pre-release drivers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-244/featured_directx_black.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220714222750/https://gpuopen.com/shader-model-6-7-agility-sdk/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=sCbQv-6pvd8&#34; target=&#34;_blank&#34; id=&#34;[video] How do you use shaders to dissolve a sphere?&#34;&gt;[video] How do you use shaders to dissolve a sphere?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows how to implement a custom material into the Rust-based Bevvy engine&lt;/li&gt;
&lt;li&gt;presents the necessary Rust and Shader(WGSL) code required to achieve the effect of a dissolving object&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-244/dissolve_sphere.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alexanderameye.github.io/notes/path-tracer/&#34; target=&#34;_blank&#34; id=&#34;Creating a physically-based path tracer&#34;&gt;Creating a physically-based path tracer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a brief overview of techniques that can be used to upgrade a simple raytracer to generate results that converge quicker&lt;/li&gt;
&lt;li&gt;shows the effect of importance sampling and what possibilities exist&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-244/path_tracer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220711135107/https://alexanderameye.github.io/notes/path-tracer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphics.pixar.com/library/Cornrows/paper.pdf&#34; target=&#34;_blank&#34; id=&#34;Space Rangers with Cornrows&#34;&gt;Space Rangers with Cornrows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the short paper presents the Pixar technique for Modeling Braids and Curls&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-244/pixar_braids.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220716034558/https://graphics.pixar.com/library/Cornrows/paper.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://zincfox.red&#34; target=&#34;_blank&#34;&gt;Jonathan Tinkham&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 243 - July 10, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-243/</link>
      <pubDate>Sun, 10 Jul 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-243/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.oxidegames.com/2022/07/egsr-2022-presentation-generalized-decoupled-shading/&#34; target=&#34;_blank&#34; id=&#34;EGSR 2022 Presentation – Generalized Decoupled Shading&#34;&gt;EGSR 2022 Presentation – Generalized Decoupled Shading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper discusses a decoupled shading implementation that separates rasterization from shading by shading pixels before they are rasterized&lt;/li&gt;
&lt;li&gt;presents how it determines what pixels will need to be shaded&lt;/li&gt;
&lt;li&gt;what space to allocate for storing the shading results and how to execute the shading&lt;/li&gt;
&lt;li&gt;discusses strengths and weaknesses of the approach&lt;/li&gt;
&lt;li&gt;presents performance comparisons against a forward shading implementation&lt;/li&gt;
&lt;li&gt;it additionally covers numerous considerations that are required for a robust implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-243/decoupled_shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.youtube.com/watch?v=8HAXwJ_mCeU&amp;amp;feature=emb_title&#34; style=&#34;color:white;&#34;&gt;video &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220706020738/https://www.oxidegames.com/2022/07/egsr-2022-presentation-generalized-decoupled-shading/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://diglib.eg.org/handle/10.2312/sr20221161&#34; target=&#34;_blank&#34; id=&#34;Spatiotemporal Blue Noise Masks&#34;&gt;Spatiotemporal Blue Noise Masks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents how to generate multiple 2D blue noise textures so that the blue noise is both spatially and temporally  a blue noise pattern&lt;/li&gt;
&lt;li&gt;the presented solution is a drop-in replacement for applications that are already using independent blue noise textures&lt;/li&gt;
&lt;li&gt;discusses how to generate the textures and compare multiple methods&lt;/li&gt;
&lt;li&gt;it additionally presents a comparison of the technique in multiple test cases and compares against other methods&lt;/li&gt;
&lt;li&gt;take a look at the supplemental for more practical information for real-time use cases&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-243/blue_1frame_noise.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220708224042/https://diglib.eg.org/handle/10.2312/sr20221161&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://projectzomboid.com/blog/jobs/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Animation Engineer / Code Supremo&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Remote working / Flexible hours&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;The Indie Stone, developers of Project Zomboid, are looking for AAA coders to join them on their quest for the ultimate zombie survival simulation.&lt;/p&gt;

&lt;p&gt;The applicant would be in charge of maintaining and developing our game’s animation system for Project Zomboid using a custom built OpenGL engine, while also working with the animator to improve our output, systems and toolset. Initial tasks would deal with root motion, blending and masking – later moving on to integration of inverse kinematics and ragdoll physics.&lt;/p&gt;

&lt;p&gt;The Zomboid team is small and have their fingers in a lot of pies, so there are many opportunities to get involved in other areas of the game too - depending on the applicant’s skillset.&lt;/p&gt;

&lt;p&gt;Competitive salary and a prominent role in a tight, passionate team. Remote and flexible working, anti-crunch mindset.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/TheIndieStoneLogo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;the_indie_stone_week_243&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Ju4rXct6mPI&#34; target=&#34;_blank&#34; id=&#34;[video] Vulkan 1.3 explained&#34;&gt;[video] Vulkan 1.3 explained&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the 4-hour video stream discusses the evolution of the Vulkan API&lt;/li&gt;
&lt;li&gt;discusses the underlying concepts, issues, and how the changes in Vulkan 1.3 try to improve&lt;/li&gt;
&lt;li&gt;talking about pipeline management, render passes, new synchronization API&lt;/li&gt;
&lt;li&gt;it additionally also covers the other more minor extensions added to the core&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-243/vulkan_1_3_talk.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/HPG2022.html&#34; target=&#34;_blank&#34; id=&#34;Temporally Stable Real-Time Joint Neural Denoising and Supersampling&#34;&gt;Temporally Stable Real-Time Joint Neural Denoising and Supersampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a neural network architecture that allows both denoising and supersampling to be applied as part of a single network&lt;/li&gt;
&lt;li&gt;this is achieved by sharing a joint feature extractor&lt;/li&gt;
&lt;li&gt;discusses the different stages of the network, what inputs are required and how they interact&lt;/li&gt;
&lt;li&gt;presents a comparison against existing solutions and offers performance numbers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-243/denoise_upscale.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220710014546/https://momentsingraphics.de/HPG2022.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://diglib.eg.org/handle/10.2312/sr20221159&#34; target=&#34;_blank&#34; id=&#34;GPU-Driven Real-Time Mesh Contour Vectorization&#34;&gt;GPU-Driven Real-Time Mesh Contour Vectorization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new GPU-based method to generate 2D contour strokes from 3D meshes&lt;/li&gt;
&lt;li&gt;proposed solution uses a preprocessing step to analyze the adjacency and geometric information&lt;/li&gt;
&lt;li&gt;discusses the different steps of implementation&lt;/li&gt;
&lt;li&gt;it additionally shows how to further utilize the counter edge lines to support different patterns&lt;/li&gt;
&lt;li&gt;example implementation in Unity is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-243/contour_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://github.com/JiangWZW/Realtime-GPU-Contour-Curves-from-3D-Mesh&#34; style=&#34;color:white;&#34;&gt;code &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220709075541/http://diglib.eg.org/handle/10.2312/sr20221159&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.scratchapixel.com/lessons/3d-basic-rendering/volume-rendering-for-developers/volume-rendering-summary-equations&#34; target=&#34;_blank&#34; id=&#34;Volume Rendering for Developers: Foundations&#34;&gt;Volume Rendering for Developers: Foundations&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the lesson provides the foundations of ray marching through a volume&lt;/li&gt;
&lt;li&gt;explains how light interacts with a medium, introducing the required terms along the way&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-243/voldev-cylinder1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220708222526/https://www.scratchapixel.com/lessons/3d-basic-rendering/volume-rendering-for-developers/volume-rendering-summary-equations&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.doublefine.com/jobs&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;San Francisco, CA (remote work is an option)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Double Fine Productions is looking for a full time graphics programmer to join its San Francisco based development studio. Having recently shipped the award winning Psychonauts 2, we are looking to expand our graphics and systems programming team to support the development of our future titles.&lt;/p&gt;

&lt;p&gt;You will be responsible for developing rendering features, optimizing game performance and memory usage, and building low level systems on PC and Xbox.&lt;/p&gt;

&lt;p&gt;Applicants should have a strong preference for working in a highly creative, innovative, and nimble development environment, where collaborating with design, audio, art, animation, tech, and other disciplines is standard.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_double_fine.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;double_fine_week_243&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/research/&#34; target=&#34;_blank&#34; id=&#34;Advanced Rendering Research Group at AMD&#34;&gt;Advanced Rendering Research Group at AMD&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the new home for the AMD research team&lt;/li&gt;
&lt;li&gt;provides a collection of publications, projects, presentations as well as blog posts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-243/ARR_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220708110606/https://gpuopen.com/research/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://renderingpixels.com/2022/07/getting-started-with-directx-raytracing/&#34; target=&#34;_blank&#34; id=&#34;Getting Started With DirectX Raytracing&#34;&gt;Getting Started With DirectX Raytracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post provides a walkthrough of all the D3D12 elements that are involved in getting started with a raytracing workload&lt;/li&gt;
&lt;li&gt;discusses the different concepts and how they relate to each other&lt;/li&gt;
&lt;li&gt;shows how to author raytracing shaders&lt;/li&gt;
&lt;li&gt;it additionally shows how the integration in Microsoft Mini Engine has been achieved&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-243/DXR_Banner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220704223818/https://renderingpixels.com/2022/07/getting-started-with-directx-raytracing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://diglib.eg.org/handle/10.2312/sr20221152&#34; target=&#34;_blank&#34; id=&#34;Planetary Shadow-Aware Distance Sampling&#34;&gt;Planetary Shadow-Aware Distance Sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a visibility-aware transmittance sampling technique for rendering atmospheric scattering&lt;/li&gt;
&lt;li&gt;this is achieved by adjusting the sample locations along the view vector past the shadow boundary so that all samples contribute meaningful data&lt;/li&gt;
&lt;li&gt;compares the solutions against others and presents cases where the proposed solution is not able to improve&lt;/li&gt;
&lt;li&gt;it additionally provides an example of a CPU implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-243/planet_shadow_aware.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220704111806/https://diglib.eg.org/handle/10.2312/sr20221152&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://zincfox.red&#34; target=&#34;_blank&#34;&gt;Jonathan Tinkham&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 242 - July 03, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-242/</link>
      <pubDate>Sun, 03 Jul 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-242/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2022/07/02/order-independent-transparency-part-2/&#34; target=&#34;_blank&#34; id=&#34;Order independent transparency, part 2&#34;&gt;Order independent transparency, part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the second part of the blog series that talks about order independence transparency&lt;/li&gt;
&lt;li&gt;this week focuses on techniques that aim at solving transmittance contribution first and then applying the factors while shading&lt;/li&gt;
&lt;li&gt;shows how Rasteriser Order Views (ROVs) can be used to implement custom blending operations&lt;/li&gt;
&lt;li&gt;presents performance implications of the proposed techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-242/rov_blending.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220702164856/https://interplayoflight.wordpress.com/2022/07/02/order-independent-transparency-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://threadreaderapp.com/thread/1543170087338889216.html&#34; target=&#34;_blank&#34; id=&#34;Seperation of mesh types&#34;&gt;Seperation of mesh types&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Twitter thread discusses the terminology that applies to meshes&lt;/li&gt;
&lt;li&gt;presents the difference between static, dynamic, deformable, and procedural meshes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-242/mesh_gen_unity.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220705040420/https://threadreaderapp.com/thread/1543170087338889216.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=w-Z1Fx0LvDc&#34; target=&#34;_blank&#34; id=&#34;[video] Creating Portals in Unreal for Psychonauts 2&#34;&gt;[video] Creating Portals in Unreal for Psychonauts 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Xfest presentation discusses the portal implementation for Psychonauts 2&lt;/li&gt;
&lt;li&gt;covers how portals are represented in the world, how to render the portal world, discusses issues encountered and how they have been overcome&lt;/li&gt;
&lt;li&gt;it also presents essential performance optimizations&lt;/li&gt;
&lt;li&gt;it additionally covers how to calculate the required transformations and solve system interaction problems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-242/portal_buffer_propagation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.doublefine.com/jobs&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;San Francisco, CA (remote work is an option)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Double Fine Productions is looking for a full time graphics programmer to join its San Francisco based development studio. Having recently shipped the award winning Psychonauts 2, we are looking to expand our graphics and systems programming team to support the development of our future titles.&lt;/p&gt;

&lt;p&gt;You will be responsible for developing rendering features, optimizing game performance and memory usage, and building low level systems on PC and Xbox.&lt;/p&gt;

&lt;p&gt;Applicants should have a strong preference for working in a highly creative, innovative, and nimble development environment, where collaborating with design, audio, art, animation, tech, and other disciplines is standard.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_double_fine.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;double_fine_week_242&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.iliyan.com/publications/StratifiedResampling&#34; target=&#34;_blank&#34; id=&#34;Single-pass stratified importance resampling&#34;&gt;Single-pass stratified importance resampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new method for stratified resampling&lt;/li&gt;
&lt;li&gt;shows a single pass solution to inverse CDF sampling (similar to reservoir sampling)&lt;/li&gt;
&lt;li&gt;extends the presented solution to other domains and compares it against existing techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-242/stratified_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220702073520/http://www.iliyan.com/publications/StratifiedResampling&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=KPoeNZZ6H4s&#34; target=&#34;_blank&#34; id=&#34;[video] Giving Personality to Procedural Animations using Math&#34;&gt;[video] Giving Personality to Procedural Animations using Math&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents how to use second-order systems to allow dynamic motion control in procedural animation scenarios&lt;/li&gt;
&lt;li&gt;presents the mathematics and an example implementation in Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-242/procedural_animation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://kvachev.com/blog/posts/fog-for-topdown-games/&#34; target=&#34;_blank&#34; id=&#34;Fog for Top-Down Games&#34;&gt;Fog for Top-Down Games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to combine multiple tricks to create the appearance of volumetric fog&lt;/li&gt;
&lt;li&gt;combines a height map-based mesh with depth &amp;amp; translucency fading to create the illusion&lt;/li&gt;
&lt;li&gt;discusses the steps required and provides examples in C++ / Unreal visual script&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-242/depth_fog_mesh.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220701194102/https://kvachev.com/blog/posts/fog-for-topdown-games/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://grnh.se/3afab5e03us&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior/Lead Rendering Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Los Angeles, Vancouver, Montreal or San Mateo &lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;We have several project openings for a Senior/Principal or Lead Rendering Engineer to work on new/all original IP&amp;rsquo;s, which are being developed in Unreal 5 and are true cross-play multiplayer games on PC, Console &amp;amp; Mobile.&lt;/p&gt;

&lt;p&gt;You will work collaboratively with artists, designers and engineers to realize our beautiful, stylized visual target.&lt;/p&gt;

&lt;p&gt;The ideal candidates are broadly experienced with optimization &amp;amp; profiling CPU/GPU on multiple platforms, creating content workflows/pipelines and experienced with both R&amp;amp;D and production systems/features.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_phoenix_labs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;phoenix_labs_week_242&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://advances.realtimerendering.com/s2022/index.html&#34; target=&#34;_blank&#34; id=&#34;Advances in Real-Time Rendering in Games - 2022&#34;&gt;Advances in Real-Time Rendering in Games - 2022&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of the talks that will be presented at the Advances course as part of Siggraph 2022&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-242/unity_enemies_demo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220704011511/http://advances.realtimerendering.com/s2022/index.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-vulkan-clearing-and-presenting/&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: Vulkan Clearing and Presenting&#34;&gt;Advanced API Performance: Vulkan Clearing and Presenting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents Nvidia&amp;rsquo;s best practices for clearing textures and depth buffers&lt;/li&gt;
&lt;li&gt;clarifies what methods are preferred and how clear values can influence performance&lt;/li&gt;
&lt;li&gt;it additionally presents the tradeoffs between the different presentation modes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-242/vulkan_clear.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220702172930/https://developer.nvidia.com/blog/advanced-api-performance-vulkan-clearing-and-presenting/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=BNldzmlSvCA&#34; target=&#34;_blank&#34; id=&#34;[video] Underwater Post-Process Effect - Shader Graph Basics - Episode 52&#34;&gt;[video] Underwater Post-Process Effect - Shader Graph Basics - Episode 52&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents how to create a post-processing effect that simulates an underwater look&lt;/li&gt;
&lt;li&gt;covers depth-fog, distortion, lens distortion, and caustics&lt;/li&gt;
&lt;li&gt;presented using Unity and Unreal visual shading system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-242/under_water_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/procedural-meshes/icosphere/&#34; target=&#34;_blank&#34; id=&#34;Icosphere From Octahedron to Icosahedron&#34;&gt;Icosphere From Octahedron to Icosahedron&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to generate a procedural Icosahedron mesh&lt;/li&gt;
&lt;li&gt;shows and discusses the differences in point distribution compared to other sphere mesh structures&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-242/icosphere_image.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220629120354/https://catlikecoding.com/unity/tutorials/procedural-meshes/icosphere/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/boosting-application-performance-with-gpu-memory-access-tuning/&#34; target=&#34;_blank&#34; id=&#34;Boosting Application Performance with GPU Memory Access Tuning&#34;&gt;Boosting Application Performance with GPU Memory Access Tuning&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to improve compute shader performance when workloads are memory limited&lt;/li&gt;
&lt;li&gt;presents how to detect if a CUDA shader runs into register limits&lt;/li&gt;
&lt;li&gt;it additionally shows how CUDA launch bounds (promises on work sizes) can give the compiler more information for more aggressive optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-242/cuda-image-16x9-1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220630141708/https://developer.nvidia.com/blog/boosting-application-performance-with-gpu-memory-access-tuning/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/vivitsum&#34; target=&#34;_blank&#34;&gt;Vivitsu Maharaja&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 241 - June 26, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-241/</link>
      <pubDate>Sun, 26 Jun 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-241/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2022/06/25/order-independent-transparency-part-1/&#34; target=&#34;_blank&#34; id=&#34;Order independent transparency, Part 1&#34;&gt;Order independent transparency, Part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to use per-pixel linked lists to implement order-independent transparency&lt;/li&gt;
&lt;li&gt;presents performance and memory results of the solution&lt;/li&gt;
&lt;li&gt;it additionally discusses limitations and a look at alternatives to reduce memory overhead&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-241/oit_reference.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220625203425/https://interplayoflight.wordpress.com/2022/06/25/order-independent-transparency-part-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.realtimerendering.com/blog/physical-units-for-lights/&#34; target=&#34;_blank&#34; id=&#34;Physical Units for Lights&#34;&gt;Physical Units for Lights&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a discussion of the different physical Units used for light description&lt;/li&gt;
&lt;li&gt;provides explanations for each unit and the relationship between them&lt;/li&gt;
&lt;li&gt;it includes a handy summary graphic as a cheat sheet to remember the relationships&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-241/light_units.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220627062211/http://www.realtimerendering.com/blog/physical-units-for-lights/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2022/06/23/Comparing-BCn-texture-decoders/&#34; target=&#34;_blank&#34; id=&#34;Comparing BCn texture decoders&#34;&gt;Comparing BCn texture decoders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article compares BC decompression libraries&lt;/li&gt;
&lt;li&gt;compares the level of format support, decoding performance, and build complexity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-241/bcn-decode-win-clang14.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220623133515/https://aras-p.info/blog/2022/06/23/Comparing-BCn-texture-decoders/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://grnh.se/3afab5e03us&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior/Lead Rendering Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Los Angeles, Vancouver, Montreal or San Mateo &lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;We have several project openings for a Senior/Principal or Lead Rendering Engineer to work on new/all original IP&amp;rsquo;s, which are being developed in Unreal 5 and are true cross-play multiplayer games on PC, Console &amp;amp; Mobile.&lt;/p&gt;

&lt;p&gt;You will work collaboratively with artists, designers and engineers to realize our beautiful, stylized visual target.&lt;/p&gt;

&lt;p&gt;The ideal candidates are broadly experienced with optimization &amp;amp; profiling CPU/GPU on multiple platforms, creating content workflows/pipelines and experienced with both R&amp;amp;D and production systems/features.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_phoenix_labs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;phoenix_labs_week_241&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/windowsai/directml-plugin-for-tensorflow-2-is-here/&#34; target=&#34;_blank&#34; id=&#34;DirectML Plugin for TensorFlow 2 is here&#34;&gt;DirectML Plugin for TensorFlow 2 is here&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog posts announce the release of a first preview of the DirectML backend for the TensorFlow 2&lt;/li&gt;
&lt;li&gt;this allows workloads to be executed on generic D3D12 capable GPUs (AMD, Intel)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-241/TensorFlow-DirectML-Plugin.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220622184225/https://devblogs.microsoft.com/windowsai/directml-plugin-for-tensorflow-2-is-here/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/fsr2-source-available/&#34; target=&#34;_blank&#34; id=&#34;It’s time to see the FSR 2 source code!&#34;&gt;It’s time to see the FSR 2 source code!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD released FidelityFX™ Super Resolution 2 (FSR2) to the public&lt;/li&gt;
&lt;li&gt;source and documentation about the integration is available&lt;/li&gt;
&lt;li&gt;it additionally provides information about the different modes and provides comparison images in different scenes&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-241/FSR2-transparent-smaller.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220625152508/https://gpuopen.com/fsr2-source-available/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/KhronosGroup/Vulkan-Docs/issues/1423#issuecomment-1161955567&#34; target=&#34;_blank&#34; id=&#34;Khronos cross-vendor mesh shader extension update&#34;&gt;Khronos cross-vendor mesh shader extension update&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Khronos is sharing the first details about what the cross-vendor Vulkan mesh shader extension will look like&lt;/li&gt;
&lt;li&gt;presents what the differences to the VK_NV_mesh_shader will be and what to take into consideration when designing a solution today&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-241/khronos.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220627062515/https://github.com/KhronosGroup/Vulkan-Docs/issues/1423&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=imuarn1A6p8&#34; target=&#34;_blank&#34; id=&#34;[video] NVIDIA’s Ray Tracer: Wow, They Nailed It Again! &#34;&gt;[video] NVIDIA’s Ray Tracer: Wow, They Nailed It Again! &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an overview of the NVidia Fast Volume Rendering with Spatiotemporal Reservoir Resampling paper&lt;/li&gt;
&lt;li&gt;video compares against previous results and how ReSTIR techniques can help to reduce noise and require a large reduction in sample counts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-241/2minute_paper_volumetric.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Peter Kohaut for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 240 - June 19, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-240/</link>
      <pubDate>Sun, 19 Jun 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-240/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2022/06/15/how-to-build-a-bvh-part-9b-massive/&#34; target=&#34;_blank&#34; id=&#34;How to build a BVH – part 9b: Massive&#34;&gt;How to build a BVH – part 9b: Massive&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the last part of the series covers how to extend the ray-tracing onto the GPU using OpenCL&lt;/li&gt;
&lt;li&gt;presents the extensions necessary to render hundreds of Stanford Dragons with reflections and lighting&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-240/bvh9b.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220620062734/https://jacco.ompf2.com/2022/06/15/how-to-build-a-bvh-part-9b-massive/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=bTQMKvpDTYU&#34; target=&#34;_blank&#34; id=&#34;[video] What is &amp;#39;Filmic&amp;#39; and how to fix broken digital photography. Part 1.&#34;&gt;[video] What is &amp;#39;Filmic&amp;#39; and how to fix broken digital photography. Part 1.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video discusses the importance of color transformations to final images&lt;/li&gt;
&lt;li&gt;shows how color shifts can make for very unnatural behavior&lt;/li&gt;
&lt;li&gt;shows how filming tone mapping can resolve these issues&lt;/li&gt;
&lt;li&gt;it additionally presents an overview of how filmic tone mapping curve controls in the darkroom tool&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-240/filmic.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://acko.net/blog/the-case-for-use-gpu/&#34; target=&#34;_blank&#34; id=&#34;The Case for Use.GPU - Reinventing rendering one shader at a time&#34;&gt;The Case for Use.GPU - Reinventing rendering one shader at a time&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents work done to make GPU operations reactive, declarative, and composable and remove many of the tedious manual boilerplate work required&lt;/li&gt;
&lt;li&gt;presents the problems and motivation for the suggested solutions&lt;/li&gt;
&lt;li&gt;the code and demos using WebGPU are available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-240/plot.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220617064255/https://acko.net/blog/the-case-for-use-gpu/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://grnh.se/3afab5e03us&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior/Lead Rendering Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Los Angeles, Vancouver, Montreal or San Mateo &lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;We have several project openings for a Senior/Principal or Lead Rendering Engineer to work on new/all original IP&amp;rsquo;s, which are being developed in Unreal 5 and are true cross-play multiplayer games on PC, Console &amp;amp; Mobile.&lt;/p&gt;

&lt;p&gt;You will work collaboratively with artists, designers and engineers to realize our beautiful, stylized visual target.&lt;/p&gt;

&lt;p&gt;The ideal candidates are broadly experienced with optimization &amp;amp; profiling CPU/GPU on multiple platforms, creating content workflows/pipelines and experienced with both R&amp;amp;D and production systems/features.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_phoenix_labs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;phoenix_labs_week_240&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=q4rNoupGr8U&#34; target=&#34;_blank&#34; id=&#34;[video] 16 - Simulation on the GPU&#34;&gt;[video] 16 - Simulation on the GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how to implement a positional-based cloth simulation on the GPU&lt;/li&gt;
&lt;li&gt;presents how to use NVIDIA Warp to use Python to author the simulation code&lt;/li&gt;
&lt;li&gt;it mainly focuses on mapping the algorithm onto the GPU for efficient and valid execution&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-240/cloth_simulation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=HcMFgJas0yg&#34; target=&#34;_blank&#34; id=&#34;[video] Fullscreen Masks - Shader Graph Basics - Episode 50&#34;&gt;[video] Fullscreen Masks - Shader Graph Basics - Episode 50&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows to create 3 types of fullscreen masks (square-edge, round-edge, and distance)&lt;/li&gt;
&lt;li&gt;then presents how to use them to mask off areas where an effect should not be applied&lt;/li&gt;
&lt;li&gt;it additionally presents how to apply a vignette effect&lt;/li&gt;
&lt;li&gt;implementation is shown using the visual shader authoring system in both Unity and Unreal&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-240/shader_mask.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.magnum.graphics/backstage/pot-array-packing/&#34; target=&#34;_blank&#34; id=&#34;Zero-waste single-pass packing of power-of-two textures&#34;&gt;Zero-waste single-pass packing of power-of-two textures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a method to pack individual power-of-two textures into a texture array&lt;/li&gt;
&lt;li&gt;discusses the placement rules and how to pack them&lt;/li&gt;
&lt;li&gt;it additionally includes a brief code sample implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-240/texture_packing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220615170132/https://blog.magnum.graphics/backstage/pot-array-packing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=JiudfB4z1DM&#34; target=&#34;_blank&#34; id=&#34;[video] Shadow Mapping Strikes Back // Intermediate OpenGL Series&#34;&gt;[video] Shadow Mapping Strikes Back // Intermediate OpenGL Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to use an orthographic projection to implement directional light shadows&lt;/li&gt;
&lt;li&gt;explains the mathematical understanding behind orthographic projections and how to create a matrix for the projection&lt;/li&gt;
&lt;li&gt;it additionally shows the difference between left/right-handed coordinate systems&lt;/li&gt;
&lt;li&gt;presents the C++ and OpenGL implementation code required&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-240/opengl_shadow_casting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/vma-vulkan-sdk/&#34; target=&#34;_blank&#34; id=&#34;The latest Vulkan SDK now ships with Vulkan Memory Allocator (VMA)&#34;&gt;The latest Vulkan SDK now ships with Vulkan Memory Allocator (VMA)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Vulkan Memory Allocator is now included as an optional component in the Vulkan SDK&lt;/li&gt;
&lt;li&gt;can be installed directly from the SDK installer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-240/vma.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220615163821/https://gpuopen.com/vma-vulkan-sdk/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/rrika9&#34; target=&#34;_blank&#34;&gt;Erika&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 239 - June 12, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-239/</link>
      <pubDate>Sun, 12 Jun 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-239/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://c0de517e.blogspot.com/2022/06/real-time-rendering-past-present-and.html&#34; target=&#34;_blank&#34; id=&#34;Real-time rendering - past, present and a probable future.&#34;&gt;Real-time rendering - past, present and a probable future.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of the problems and solutions of real-time game graphics technology&lt;/li&gt;
&lt;li&gt;what aspects have been solved/standardized, and what open problems remain&lt;/li&gt;
&lt;li&gt;presents the author&amp;rsquo;s proposal for future directions for the industry&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-239/rendering_future.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220612020010/http://c0de517e.blogspot.com/2022/06/real-time-rendering-past-present-and.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alextardif.com/DX12Tutorial.html&#34; target=&#34;_blank&#34; id=&#34;A Gentle Introduction to D3D12 (2022)&#34;&gt;A Gentle Introduction to D3D12 (2022)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article introduces D3D12Lite, a library that is meant to streamline the introduction to D3D12&lt;/li&gt;
&lt;li&gt;the tutorial explains the necessary steps to get started, draw a triangle and advance to drawing a textured cube&lt;/li&gt;
&lt;li&gt;it additionally shows how to integrate ImGUI into the application&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-239/Mesh.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220610220148/https://alextardif.com/DX12Tutorial.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://apply.workable.com/foundry/j/E0390FA1B3/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Software Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;United Kingdom&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;If you&amp;rsquo;re looking to broaden out your existing knowledge of real-time GPU rendering, then this role is potentially a great fit.&lt;/p&gt;

&lt;p&gt;You&amp;rsquo;ll be joining a small centralised technology team, working closely with a real-time rendering Architect and graphics team lead to deliver GPU technology solutions to product teams across the Foundry portfolio.&lt;/p&gt;

&lt;p&gt;Good C++ and GPU graphics programming knowledge are essential to the role, but you will have access to domain experts to help you level up your expertise. Experience in software development lifecycle and knowledge of software engineering best practices in a commercial context are also key requirements.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_foundry.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;foundry_week_239&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ykozw.github.io/post/magicsquare.html&#34; target=&#34;_blank&#34; id=&#34;QMC(Magic square, Glois field, QMC)&#34;&gt;QMC(Magic square, Glois field, QMC)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a method to generate stratified samples of arbitrary dimensionality&lt;/li&gt;
&lt;li&gt;the method is based on Magic Square Sampler&lt;/li&gt;
&lt;li&gt;discusses the origin of the technique, how to implement it, and a brief comparison against other methods&lt;/li&gt;
&lt;li&gt;written in both English and Japanese&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-239/stratified_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220613024024/https://ykozw.github.io/post/magicsquare.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.apple.com/videos/play/wwdc2022/10066/&#34; target=&#34;_blank&#34; id=&#34;Discover Metal 3&#34;&gt;Discover Metal 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation provides a summary of new features in Metal 3&lt;/li&gt;
&lt;li&gt;new API to allow direct loading from file storage into GPU buffers using a command-based API&lt;/li&gt;
&lt;li&gt;allow binary shader generation at build time to remove runtime shader compilation&lt;/li&gt;
&lt;li&gt;introduction of mesh shaders, improved raytracing with indirect command buffer support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-239/metal3.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.apple.com/wwdc22/sessions/?q=metal&#34; target=&#34;_blank&#34; id=&#34;WWDC22 - Metal sessions&#34;&gt;WWDC22 - Metal sessions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;list of all metal sessions at WWDC22&lt;/li&gt;
&lt;li&gt;covering new metal features, HDR/EDR handling, bindless resource model, machine learning, optimizations, and more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-239/wwdc22.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220606202532/https://developer.apple.com/wwdc22/sessions/?q=metal&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://grnh.se/3afab5e03us&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior/Lead Rendering Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Los Angeles, Vancouver, Montreal or San Mateo &lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;We have several project openings for a Senior/Principal or Lead Rendering Engineer to work on new/all original IP&amp;rsquo;s, which are being developed in Unreal 5 and are true cross-play multiplayer games on PC, Console &amp;amp; Mobile.&lt;/p&gt;

&lt;p&gt;You will work collaboratively with artists, designers and engineers to realize our beautiful, stylized visual target.&lt;/p&gt;

&lt;p&gt;The ideal candidates are broadly experienced with optimization &amp;amp; profiling CPU/GPU on multiple platforms, creating content workflows/pipelines and experienced with both R&amp;amp;D and production systems/features.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_phoenix_labs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;phoenix_labs_week_239&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://nedmakesgames.medium.com/writing-unity-urp-shaders-with-code-part-1-the-graphics-pipeline-and-you-798cbc941cea&#34; target=&#34;_blank&#34; id=&#34;Writing Unity URP Shaders with Code Part 1: The Graphics Pipeline and You&#34;&gt;Writing Unity URP Shaders with Code Part 1: The Graphics Pipeline and You&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the text and video tutorial is the start of a new beginner-focused shader authoring tutorial for Unity&lt;/li&gt;
&lt;li&gt;the first part shows how to implement a text-based shader for the Universal Render Pipeline (URP)&lt;/li&gt;
&lt;li&gt;provides an overview of the pieces of the general rendering pipeline theory required to be able to render a textured sphere&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-239/unity_urp.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220606161308/https://nedmakesgames.medium.com/writing-unity-urp-shaders-with-code-part-1-the-graphics-pipeline-and-you-798cbc941cea&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ipKQt0BxQSA&#34; target=&#34;_blank&#34; id=&#34;[video] Basic Post-Processing Effects - Shader Graph Basics - Episode 49&#34;&gt;[video] Basic Post-Processing Effects - Shader Graph Basics - Episode 49&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows the steps required to set up to create post-processing shaders using shader graphs in both Unity and Unreal&lt;/li&gt;
&lt;li&gt;presents color tinting and screen warping examples in both engines&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-239/post_processing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ZNJT6i8zpHQ&#34; target=&#34;_blank&#34; id=&#34;[video] God of War PC: AMD FSR 2.0 vs Nvidia DLSS Image/ Motion Quality Face-Off&#34;&gt;[video] God of War PC: AMD FSR 2.0 vs Nvidia DLSS Image/ Motion Quality Face-Off&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Digitial Foundry video provides an in-depth comparison between FSR 2.0, native TAA as well as DLSS upscaling solutions for God of War&lt;/li&gt;
&lt;li&gt;shows how they handle camera movement, object movement, transparency as well as hair and vegetation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-239/god_of_war_fsr.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.collabora.com/news-and-blog/blog/2022/06/09/bridging-the-synchronization-gap-on-linux/&#34; target=&#34;_blank&#34; id=&#34;Bridging the synchronization gap on Linux&#34;&gt;Bridging the synchronization gap on Linux&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses why the explicit synchronization nature of Vulkan is a significant problem on Linux&lt;/li&gt;
&lt;li&gt;presents solutions possible today and what side effects they cause&lt;/li&gt;
&lt;li&gt;shows the more modern solution that is possible now and how it allows more efficient  explicit synchronization support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-239/collabora.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220609222023/https://www.collabora.com/news-and-blog/blog/2022/06/09/bridging-the-synchronization-gap-on-linux/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://hacksoflife.blogspot.com/2022/06/srgb-pre-multiplied-alpha-and.html&#34; target=&#34;_blank&#34; id=&#34;sRGB, Pre-Multiplied Alpha, and Compression&#34;&gt;sRGB, Pre-Multiplied Alpha, and Compression&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article clarifies the meaning of sRGB encoded textures&lt;/li&gt;
&lt;li&gt;presents how they interact with (pre-multiplied) blending&lt;/li&gt;
&lt;li&gt;it additionally presents issues that exist with the combination of block compressed textures&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-239/SmallLines-WithNumbers.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220613041203/http://hacksoflife.blogspot.com/2022/06/srgb-pre-multiplied-alpha-and.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/rrika9&#34; target=&#34;_blank&#34;&gt;Erika&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 238 - June 5, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-238/</link>
      <pubDate>Sun, 05 Jun 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-238/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/EmbarkStudios/kajiya/blob/main/docs/gi-overview.md&#34; target=&#34;_blank&#34; id=&#34;Overview of global illumination in kajiya renderer&#34;&gt;Overview of global illumination in kajiya renderer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a high-level description of the techniques used&lt;/li&gt;
&lt;li&gt;based on a meshless camera-aligned irradiance cache&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;heavily relying on ReSTIR for many of the techniques&lt;/li&gt;
&lt;li&gt;animations help to explain the processes involved&lt;/li&gt;
&lt;li&gt;discusses what situations are well suited for the technique as well as what are the limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-238/kajiya_render.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220604154250/https://github.com/EmbarkStudios/kajiya/blob/main/docs/gi-overview.md&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=YGmWqQ6oz3U&#34; target=&#34;_blank&#34; id=&#34;[video] SIGGRAPH 2022: Technical Papers Trailer&#34;&gt;[video] SIGGRAPH 2022: Technical Papers Trailer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video showing an overview of some of the papers to be presented at Siggraph 2022&lt;/li&gt;
&lt;li&gt;covering fluid simulation, sound generation, physics, learned locomotion, and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-238/siggraph_paper_preview.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2022/06/03/how-to-build-a-bvh-part-9a-to-the-gpu/&#34; target=&#34;_blank&#34; id=&#34;How to build a BVH – part 9a: To the GPU&#34;&gt;How to build a BVH – part 9a: To the GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the first part on how to convert a C++ raytracing kernel to OpenCL&lt;/li&gt;
&lt;li&gt;presents the differences between the language semantics and how to convert C++ code step by step&lt;/li&gt;
&lt;li&gt;it additionally provides a quick start guide to the provided OpenCL template code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-238/gputea.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220604014244/https://jacco.ompf2.com/2022/06/03/how-to-build-a-bvh-part-9a-to-the-gpu/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://twitter.com/RandomPedroJ/status/1532725156623286272/photo/1&#34; target=&#34;_blank&#34; id=&#34;[Twitter Thread] D3D12 - specialization constants&#34;&gt;[Twitter Thread] D3D12 - specialization constants&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Twitter thread discusses a restricted version of specialization constants for D3D12 usage&lt;/li&gt;
&lt;li&gt;presented method is based on patching DXIL and letting the native compiler optimize the instructions when converting to native instructions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-238/specialization_constants.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220603140614/https://twitter.com/RandomPedroJ/status/1532725156623286272&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://apply.workable.com/foundry/j/C370BA5242/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Research Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;United Kingdom&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;This role is a fantastic opportunity to work on the development of an exciting research project in Virtual Production as part of our Real-Time Research team.&lt;/p&gt;

&lt;p&gt;The role involves developing new tools and adapting existing Foundry technology for real-time workflows in Virtual Production and the visual-effects industry.&lt;/p&gt;

&lt;p&gt;The project will work closely with clients in film to bring the tools from concept through to market.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_foundry.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;foundry_week_238&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1758_an_idea_for_visualization_of_frame_times&#34; target=&#34;_blank&#34; id=&#34;An Idea for Visualization of Frame Times&#34;&gt;An Idea for Visualization of Frame Times&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a short article that discusses some ideas to represent frame time in graphs&lt;/li&gt;
&lt;li&gt;showing issues with different methods and suggesting rectangles proportional to frame time taken&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-238/visualizing_frame_time_my_less_FPS.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220531105021/https://asawicki.info/news_1758_an_idea_for_visualization_of_frame_times&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=BBRmZ1dZCro&#34; target=&#34;_blank&#34; id=&#34;[video] Hex Grid Normal Tiling - Shader Graph Basics - Episode 48&#34;&gt;[video] Hex Grid Normal Tiling - Shader Graph Basics - Episode 48&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows the issue when hex-tiling (as discussed in the previous part) is applied to normals&lt;/li&gt;
&lt;li&gt;presents how to resolve the normal map orientation mismatches&lt;/li&gt;
&lt;li&gt;implementation is shown using Unity and Unreal visual shader languages&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-238/unreal_material_normal_tiling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://learnopengl.com/Guest-Articles/2022/Compute-Shaders/Introduction&#34; target=&#34;_blank&#34; id=&#34;OpenGL Introduction - GPU Computing&#34;&gt;OpenGL Introduction - GPU Computing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a beginner level focused article that introduces OpenGL compute shaders&lt;/li&gt;
&lt;li&gt;shows how to fill a texture with a scrolling color gradient&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-238/opengl4_3_with_computeShaders.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220603150438/https://learnopengl.com/Guest-Articles/2022/Compute-Shaders/Introduction&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=MUDveGZIRaM&#34; target=&#34;_blank&#34; id=&#34;[video] NVIDIA Renders Millions of Light Sources!&#34;&gt;[video] NVIDIA Renders Millions of Light Sources!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video paper summary presents the ReSTIR introductory paper&lt;/li&gt;
&lt;li&gt;presents a comparison between previous techniques as well as the biased and unbiased version of ReSTIR&lt;/li&gt;
&lt;li&gt;it additionally presents how it interacts with upscaling techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-238/ReSTIR.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=__dSLc7-Cpo&#34; target=&#34;_blank&#34; id=&#34;[video] How to turn your 2d fractal into 3d!&#34;&gt;[video] How to turn your 2d fractal into 3d!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows how to extend a 2D Koch curve SDF into 3D using shadertoy&lt;/li&gt;
&lt;li&gt;presents a walkthrough of the implementation of 2 different methods&lt;/li&gt;
&lt;li&gt;implementation is done using shadertoy&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-238/art_of_code_koch_curve.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://metalbyexample.com/&#34; target=&#34;_blank&#34;&gt;Warren Moore&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 237 - May 29, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-237/</link>
      <pubDate>Sun, 29 May 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-237/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2022/05/29/accelerating-raytracing-using-software-vrs/&#34; target=&#34;_blank&#34; id=&#34;Accelerating raytracing using software vrs&#34;&gt;Accelerating raytracing using software vrs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to use compute-shader based Variable Rate shading techniques to reduce the cost of raytracing&lt;/li&gt;
&lt;li&gt;shows how to decide on the shading rate per-tile&lt;/li&gt;
&lt;li&gt;compares a thread based rejection efficiency against wave-based rejection&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-237/shadingrate16x8.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220529190644/https://interplayoflight.wordpress.com/2022/05/29/accelerating-raytracing-using-software-vrs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2022/05/27/how-to-build-a-bvh-part-8-whitted-style/&#34; target=&#34;_blank&#34; id=&#34;How to build a BVH – part 8: Whitted-Style&#34;&gt;How to build a BVH – part 8: Whitted-Style&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article extends the BVH constructed over the last couple of posts to implement a more complete raytracer using it&lt;/li&gt;
&lt;li&gt;shows how to extend the barycentric coordinates to implement texture sampling and generate per-pixel normals&lt;/li&gt;
&lt;li&gt;it additionally shows how to implement reflections and recursive raytracing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-237/head-bvh8.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220527142420/https://jacco.ompf2.com/2022/05/27/how-to-build-a-bvh-part-8-whitted-style/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2022/05/26/removing-blur-from-images-deconvolution-and-using-optimized-simple-filters/&#34; target=&#34;_blank&#34; id=&#34;Removing blur from images – deconvolution and using optimized simple filters&#34;&gt;Removing blur from images – deconvolution and using optimized simple filters&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the detailed post presents the basis knowledge required for a single image deconvolution (remove blur) filter&lt;/li&gt;
&lt;li&gt;it discusses the theory, algebraic, and frequency domain approaches&lt;/li&gt;
&lt;li&gt;it additionally shows how to combine all the elements to create filters for linear deconvolution&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-237/deconvolution_filter.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220527122102/https://bartwronski.com/2022/05/26/removing-blur-from-images-deconvolution-and-using-optimized-simple-filters/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-2205-24/&#34; target=&#34;_blank&#34; id=&#34;PIX 2205.24: Unlocking Arm and Qualcomm development&#34;&gt;PIX 2205.24: Unlocking Arm and Qualcomm development&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents that PIX is now supported on Arm devices&lt;/li&gt;
&lt;li&gt;additionally, Qualcomm added a plugin to allow hardware counter collection on many devices&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-237/qc-high-frequency-counters.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220524180224/https://devblogs.microsoft.com/pix/pix-2205-24/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=kCCsko29pv0&#34; target=&#34;_blank&#34; id=&#34;Basic Shadow Mapping // Intermediate OpenGL Series&#34;&gt;Basic Shadow Mapping // Intermediate OpenGL Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents how to implement shadow mapping using OpenGL&lt;/li&gt;
&lt;li&gt;shows the necessary theory underlying the technique&lt;/li&gt;
&lt;li&gt;then proceeds to show the different aspects of the implementation&lt;/li&gt;
&lt;li&gt;additionally, it presents common problems of the algorithm and how to resolve them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-237/opengl_shadow_casting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arbook.icg.tugraz.at/schmalstieg/Schmalstieg_405.pdf&#34; target=&#34;_blank&#34; id=&#34;Meshlets and How to Shade Them: A Study on Texture-Space Shading&#34;&gt;Meshlets and How to Shade Them: A Study on Texture-Space Shading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents the idea of the usage of a meshlet atlas for texture space shading&lt;/li&gt;
&lt;li&gt;the presented technique is based on meshlets and transforms per-meshlet information into texture space where shading for the samples will take place&lt;/li&gt;
&lt;li&gt;shows how to use meshlets as the basis for texture space management to use the available texture space efficently&lt;/li&gt;
&lt;li&gt;additionally compares quality and performance against other methods&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-237/meshlet_shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220526234149/https://arbook.icg.tugraz.at/schmalstieg/Schmalstieg_405.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://toji.github.io/webgpu-best-practices/buffer-uploads.html&#34; target=&#34;_blank&#34; id=&#34;WebGPU Buffer upload best practices&#34;&gt;WebGPU Buffer upload best practices&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes the different methods WebGPU offers to upload data from the CPU to the GPU&lt;/li&gt;
&lt;li&gt;shows different use patterns and what the advantages/disadvantages of each method are&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-237/webgpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220526023546/https://toji.github.io/webgpu-best-practices/buffer-uploads.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.mamoniem.com/behind-the-pretty-frames-elden-ring/&#34; target=&#34;_blank&#34; id=&#34;Behind the Pretty Frames: Elden Ring&#34;&gt;Behind the Pretty Frames: Elden Ring&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a frame breakdown of the PC version of Elden Ring&lt;/li&gt;
&lt;li&gt;shows the different passes, from color passes to post-processing, and finally UI composition&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-237/eldenRing_banner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220527191538/http://www.mamoniem.com/behind-the-pretty-frames-elden-ring/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/gfxprogrammer&#34; target=&#34;_blank&#34;&gt;Ken Russell&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 236 - May 22, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-236/</link>
      <pubDate>Sun, 22 May 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-236/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ZG0ct4V6c0k&#34; target=&#34;_blank&#34; id=&#34;[video] The Road to Vulkan: Teaching Modern Low-Level APIs in Introductory Graphics Courses | EG 2022, Reims&#34;&gt;[video] The Road to Vulkan: Teaching Modern Low-Level APIs in Introductory Graphics Courses | EG 2022, Reims&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a summary of the findings of teaching both OpenGL and Vulkan as part of the Introductory Graphics Courses&lt;/li&gt;
&lt;li&gt;compares the challenges and experiences of students, as well as the workload required&lt;/li&gt;
&lt;li&gt;it additionally provides pointers on how to teach Vulkan to beginners in the most efficient way&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-236/vulkan_teaching.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=aIdsrZDActM&#34; target=&#34;_blank&#34; id=&#34;[video] Rust Graphics Meetup 2&#34;&gt;[video] Rust Graphics Meetup 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the second edition of the Rust graphics developer meetup&lt;/li&gt;
&lt;li&gt;covers the WGPU implementation of resource lifetime tracking and barrier detection logic&lt;/li&gt;
&lt;li&gt;Additionally covers performance optimizations required to speed up these systems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-236/rust_meetup.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=F7UxUgow4yg&#34; target=&#34;_blank&#34; id=&#34;[video] Texture Tiling Without Repetition - Shader Graph Basics - Episode 47&#34;&gt;[video] Texture Tiling Without Repetition - Shader Graph Basics - Episode 47&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how to use hexagonal texture sampling/blending to create a shader that allows less noticeable texture tiling&lt;/li&gt;
&lt;li&gt;presents the logic, explaining step by step how to create the shader&lt;/li&gt;
&lt;li&gt;using visual shader graphs using Unity and Unreal&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-236/texture_tiling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.yosoygames.com.ar/wp/2022/05/directstorage-speculations-myths/&#34; target=&#34;_blank&#34; id=&#34;DirectStorage speculations &amp;amp; myths&#34;&gt;DirectStorage speculations &amp;amp; myths&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows what the DirectStorage API enables on PC&lt;/li&gt;
&lt;li&gt;presents what workloads can be accelerated by using the API and what API limitations exist&lt;/li&gt;
&lt;li&gt;additionally presents workloads outside of games that could benefit&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-236/DirectStorage.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220524173720/https://www.yosoygames.com.ar/wp/2022/05/directstorage-speculations-myths/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/I3D2022.html&#34; target=&#34;_blank&#34; id=&#34;Permutation Coding for Vertex-Blend Attribute Compression&#34;&gt;Permutation Coding for Vertex-Blend Attribute Compression&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;15 min video explaining the concept has been added&lt;/li&gt;
&lt;li&gt;discussed in more detail in &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-231/&#34; target=&#34;_blank&#34;&gt;week 231&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-236/animation_scene.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220524173807/https://momentsingraphics.de/I3D2022.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2022/05/20/how-to-build-a-bvh-part-7-consolidate/&#34; target=&#34;_blank&#34; id=&#34;How to build a BVH – part 7: Consolidate&#34;&gt;How to build a BVH – part 7: Consolidate&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article expands the the previous BVH implementation with the necessary logic to support UV and Normals&lt;/li&gt;
&lt;li&gt;shows how to calculate the intersection point Barycentrics coordinates and how to interpoliate vertex arguments&lt;/li&gt;
&lt;li&gt;additonally points out the importance of data seperation for good performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-236/tea.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220520234126/https://jacco.ompf2.com/2022/05/20/how-to-build-a-bvh-part-7-consolidate/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=d6eix0MyHmg&#34; target=&#34;_blank&#34; id=&#34;[video] I3D 2022 Day 1 — Tuesday, May 3&#34;&gt;[video] I3D 2022 Day 1 — Tuesday, May 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video recording of the I3D 2022 conference, all 3 days are available&lt;/li&gt;
&lt;li&gt;covering a large amount of topics, including soft shadows, vertex compression, interactive plume, machine learning for humanoid models, &amp;hellip;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-236/i3d_capture.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=GIh-e0wh0jA&#34; target=&#34;_blank&#34; id=&#34;[video] AMD&amp;#39;s Ray Tracing Research&#34;&gt;[video] AMD&amp;#39;s Ray Tracing Research&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a summary of AMD rayracing research&lt;/li&gt;
&lt;li&gt;covering global illumination sampling and multi-resolution geometric representation, stochastic light sampling&lt;/li&gt;
&lt;li&gt;additionally introduces the Orochi library to unify CUDA and AMD HIP gpu execution&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-236/amd_raytracing_research.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-variable-rate-shading/&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: Variable Rate Shading&#34;&gt;Advanced API Performance: Variable Rate Shading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a brief overview of VRS modes available&lt;/li&gt;
&lt;li&gt;performance advice for how it affects hardware limits&lt;/li&gt;
&lt;li&gt;additionally gives some recommendations on what workloads can benefit from VRS usage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-236/ray-tracing-featured.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220517180100/https://developer.nvidia.com/blog/advanced-api-performance-variable-rate-shading/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.danielfortes.com&#34; target=&#34;_blank&#34;&gt;Daniel Fortes&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 235 - May 15, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-235/</link>
      <pubDate>Sun, 15 May 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-235/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-clears/&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: Clears&#34;&gt;Advanced API Performance: Clears&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents performance advice from Nvidia for clear operations&lt;/li&gt;
&lt;li&gt;shows that the number of different fast clear colors per frame is hardware dependent&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-235/clear-texture-featured.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220512033815/https://developer.nvidia.com/blog/advanced-api-performance-clears/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/guest-posts/integrating-vrs-in-the-riftbreaker/&#34; target=&#34;_blank&#34; id=&#34;Integrating VRS in The Riftbreaker&#34;&gt;Integrating VRS in The Riftbreaker&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses how the AMD FidelityFX Variable Shading library was integrated into The Riftbreaker&lt;/li&gt;
&lt;li&gt;presents how the shading rate is selected per-tile&lt;/li&gt;
&lt;li&gt;it additionally suggests that classification variance cutoff values should be adjusted based on screen resolution&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-235/riftbreaker-vrs-video.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220513151123/https://gpuopen.com/learn/guest-posts/integrating-vrs-in-the-riftbreaker/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2022/05/14/comparing-obj-parse-libraries/&#34; target=&#34;_blank&#34; id=&#34;Comparing .obj parse libraries&#34;&gt;Comparing .obj parse libraries&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article compares several .obj parsers for loading speed and memory usage&lt;/li&gt;
&lt;li&gt;presents a comparison table of supported features&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-235/obj-libs-time-rungholt.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220517061908/https://aras-p.info/blog/2022/05/14/comparing-obj-parse-libraries/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://lousodrome.net/blog/light/2022/05/14/reading-list-on-restir/&#34; target=&#34;_blank&#34; id=&#34;Reading list on ReSTIR&#34;&gt;Reading list on ReSTIR&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post presents a list of articles/papers that discusses Reservoir-based Spatio-Temporal Importance Resampling&lt;/li&gt;
&lt;li&gt;starts from the introduction of the technique, applications of the technique to issues&lt;/li&gt;
&lt;li&gt;a collection of techniques that improve upon the original technique&lt;/li&gt;
&lt;li&gt;additionally presents remarks about the limitations of the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-235/Restir-featured.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220513230200/http://lousodrome.net/blog/light/2022/05/14/reading-list-on-restir/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2022/05/13/how-to-build-a-bvh-part-6-all-together-now/&#34; target=&#34;_blank&#34; id=&#34;How to build a BVH – part 6: All Together Now&#34;&gt;How to build a BVH – part 6: All Together Now&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article expands the capabilities of the BVH construction to support a more significant number of instances&lt;/li&gt;
&lt;li&gt;discusses an improved algorithm for the efficient updating of BVHs&lt;/li&gt;
&lt;li&gt;it closes with a look at performance and the next steps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-235/glorious-1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220514004735/https://jacco.ompf2.com/2022/05/13/how-to-build-a-bvh-part-6-all-together-now/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=3H-HGlsC0NY&#34; target=&#34;_blank&#34; id=&#34;[video] GPU Texture Compression&#34;&gt;[video] GPU Texture Compression&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows a summary of block compressed formats and why they are a good fit for GPUs&lt;/li&gt;
&lt;li&gt;discusses the different formats, showing strengths and weaknesses of the different BC[1-7] variations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-235/bc_compression_comparison.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://docs.google.com/presentation/d/1zCK_vhRnXaU_W4sDcPy36F1Tl8lScHWgeEVyoyUWkBY/edit#slide=id.p&#34; style=&#34;color:white;&#34;&gt;slides &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=GiKbGWI4M-Y&#34; target=&#34;_blank&#34; id=&#34;[video] Vulkan Synchronization | Understand Fences, Semaphores, Barriers,... | Vulkan Lecture Series Ep. 7&#34;&gt;[video] Vulkan Synchronization | Understand Fences, Semaphores, Barriers,... | Vulkan Lecture Series Ep. 7&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video lecture contains a detailed description of Vulkan Synchronization topics&lt;/li&gt;
&lt;li&gt;provides visual explanations of the different concepts to make understanding easier&lt;/li&gt;
&lt;li&gt;discusses limitations of binary semaphores and what timeline semaphores enable&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-235/command_recording.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.traverseresearch.nl/render-graph-101-f42646255636&#34; target=&#34;_blank&#34; id=&#34;Render Graph 101&#34;&gt;Render Graph 101&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes a how a system can derive execution order from rendered resource dependencies&lt;/li&gt;
&lt;li&gt;presents how the dependencies create a graph that can then be analyzed and used for barrier placements, memory reuse&lt;/li&gt;
&lt;li&gt;shows how to express the API in Rust&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-235/render_graph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220517062155/https://blog.traverseresearch.nl/render-graph-101-f42646255636?gi=e4c1ecf1c0f1&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=h15kTY3aWaY&#34; target=&#34;_blank&#34; id=&#34;[video] Toon Shading &amp;amp; Rim Lighting // OpenGL Beginners Series&#34;&gt;[video] Toon Shading &amp;amp; Rim Lighting // OpenGL Beginners Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains the theory of toon shading and rim lighting effects&lt;/li&gt;
&lt;li&gt;presents how to implement the effect using OpenGL and GLSL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-235/toon_shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/leonardoetcheverry/&#34; target=&#34;_blank&#34;&gt;Leonardo Etcheverry&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 234 - May 8, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-234/</link>
      <pubDate>Sun, 08 May 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-234/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wickedengine.net/2022/05/08/derivatives-in-compute-shader/&#34; target=&#34;_blank&#34; id=&#34;Derivatives in compute shader&#34;&gt;Derivatives in compute shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses how to calculate UV derivatives in compute-shaders&lt;/li&gt;
&lt;li&gt;presents issues that will occur at the geometry edges and how to resolve them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-234/bary_terrain.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220508155931/https://wickedengine.net/2022/05/08/derivatives-in-compute-shader/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pharr.org/matt/blog/2022/05/06/trowbridge-reitz&#34; target=&#34;_blank&#34; id=&#34;Let’s Stop Calling it GGX&#34;&gt;Let’s Stop Calling it GGX&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post raises the point that GGX was introduced in a 1975 paper by Trowbridge and Reitz&lt;/li&gt;
&lt;li&gt;discusses why we as a community should prefer to use the original term&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-234/microfacet.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220506191837/https://pharr.org/matt/blog/2022/05/06/trowbridge-reitz&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2022/05/07/how-to-build-a-bvh-part-5-tlas-blas/&#34; target=&#34;_blank&#34; id=&#34;How to build a BVH – part 5: TLAS &amp;amp; BLAS&#34;&gt;How to build a BVH – part 5: TLAS &amp;amp; BLAS&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to extend the BVH structure to allow multiple objects in the same structure (TLAS)&lt;/li&gt;
&lt;li&gt;explains the necessary knowledge of matrix (inverse) transformations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-234/tlasaction.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220510060623/https://jacco.ompf2.com/2022/05/07/how-to-build-a-bvh-part-5-tlas-blas/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.highperformancegraphics.org/2022/student-competition/&#34; target=&#34;_blank&#34; id=&#34;High Performance Graphics 2022 - Student Competition&#34;&gt;High Performance Graphics 2022 - Student Competition&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the High-Performance Graphics conference is running a student contest&lt;/li&gt;
&lt;li&gt;students are asked to implement the highest quality path-tracer within a performance limit&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-234/hpg2022banner-1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220503150359/https://www.highperformancegraphics.org/2022/student-competition/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://3dgraphics.guru/post/atmospheric-media/&#34; target=&#34;_blank&#34; id=&#34;Various analytic expressions for collimated light scattered in fog (participating media)&#34;&gt;Various analytic expressions for collimated light scattered in fog (participating media)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the underlying mathematical modeling commonly used to represent volumetric effects (such as the earth&amp;rsquo;s atmosphere)&lt;/li&gt;
&lt;li&gt;presents different approaches and derivations to model different effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-234/scattering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220510060316/http://3dgraphics.guru/post/atmospheric-media/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphics.cg.uni-saarland.de/publications/grittmann-sig2022.html&#34; target=&#34;_blank&#34; id=&#34;Efficiency-aware multiple importance sampling for bidirectional rendering algorithms&#34;&gt;Efficiency-aware multiple importance sampling for bidirectional rendering algorithms&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a method to adapt the set of sampling
techniques in multi importance sampling to an input scene automatically&lt;/li&gt;
&lt;li&gt;the aim is to remove the need for manual tweaking of distributions&lt;/li&gt;
&lt;li&gt;based on a scheme for estimating the second moments of different sample allocation strategies&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-234/grittmann-2022-eamis-teaser.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220504182811/https://graphics.cg.uni-saarland.de/publications/grittmann-sig2022.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alexanderameye.github.io/notes/sampling-the-hemisphere&#34; target=&#34;_blank&#34; id=&#34;Sampling the hemisphere&#34;&gt;Sampling the hemisphere&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post explains the derivations of importance sampling schemes for multiple functions&lt;/li&gt;
&lt;li&gt;covers uniform, Cosine-weighted, Power cosine-weighted, Microfacet-BRDF, Blinn-Phong, as well as Beckmann derivations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-234/brdf_importance_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220510060415/https://alexanderameye.github.io/notes/sampling-the-hemisphere/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.zyanidelab.com/restir-el-cheapo/&#34; target=&#34;_blank&#34; id=&#34;ReSTIR El-Cheapo&#34;&gt;ReSTIR El-Cheapo&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the idea of using ReSTIR for a checkerboard style pattern for shadow ray generation&lt;/li&gt;
&lt;li&gt;only every other pixel would sample new; others would reuse the reservoir of nearby pixels&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-234/Restir_el_cheapo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220504144947/http://www.zyanidelab.com/restir-el-cheapo/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2022/05/08/increasing-wave-coherence-with-ray-binning/&#34; target=&#34;_blank&#34; id=&#34;Increasing wave coherence with ray binning&#34;&gt;Increasing wave coherence with ray binning&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the implementation of a ray-binning technique&lt;/li&gt;
&lt;li&gt;the technique aims to improve performance by processing rays that are likely to hit similar objects together&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-234/variance_binned_16x8.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220510060923/https://interplayoflight.wordpress.com/2022/05/08/increasing-wave-coherence-with-ray-binning/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphics.cs.utah.edu/research/projects/gris/&#34; target=&#34;_blank&#34; id=&#34;Generalized Resampled Importance Sampling (GRIS)&#34;&gt;Generalized Resampled Importance Sampling (GRIS)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a generalized approach to resampled importance sampling for correlated samples with unknown PDFs&lt;/li&gt;
&lt;li&gt;presents the results in an interactive ReSTIR path tracer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-234/gris.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220504173544/https://graphics.cs.utah.edu/research/projects/gris/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=BJq-SqMd9FM&#34; target=&#34;_blank&#34; id=&#34;[video] Sprite Batching In OpenGL // Uniform Buffer Objects&#34;&gt;[video] Sprite Batching In OpenGL // Uniform Buffer Objects&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows how to pack sprites into a 2D texture atlas to reduce the number of draw calls required&lt;/li&gt;
&lt;li&gt;presents how to set up the vertex data and shader stages to unpack the data&lt;/li&gt;
&lt;li&gt;it additionally explains uniform buffer objects and presents the effects on performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-234/sprite_batching_opengl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Stephen Hill for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 233 - May 1, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-233/</link>
      <pubDate>Sun, 01 May 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-233/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.reddit.com/r/GraphicsProgramming/comments/uf4ykj/faster_visibility_bufferdeferred_material/&#34; target=&#34;_blank&#34; id=&#34;Faster Visibility Buffer/Deferred Material Rendering via Analytical Attribute Interpolation using Ray Differentials&#34;&gt;Faster Visibility Buffer/Deferred Material Rendering via Analytical Attribute Interpolation using Ray Differentials&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post presents a method for reducing the size of visibility output buffers and the effect on performance&lt;/li&gt;
&lt;li&gt;shows that it&amp;rsquo;s more efficient to recalculate ray differentials than it is to rely on hardware differentials to be stored in additional channels&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-233/gradients.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220430060348/https://www.reddit.com/r/GraphicsProgramming/comments/uf4ykj/faster_visibility_bufferdeferred_material/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2022/04/26/how-to-build-a-bvh-part-4-animation/&#34; target=&#34;_blank&#34; id=&#34;How to build a BVH – part 4: Animation&#34;&gt;How to build a BVH – part 4: Animation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to update a BVH tree for an animated mesh&lt;/li&gt;
&lt;li&gt;introduces the refitting technique to allow fast adjustments of an existing BVH tree for changing triangle data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-233/tower_swing.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220503054320/https://jacco.ompf2.com/2022/04/26/how-to-build-a-bvh-part-4-animation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/identifying-shader-limiters-with-the-shader-profiler-in-nvidia-nsight-graphics/&#34; target=&#34;_blank&#34; id=&#34;Identifying Shader Limiters with the Shader Profiler in NVIDIA Nsight Graphics&#34;&gt;Identifying Shader Limiters with the Shader Profiler in NVIDIA Nsight Graphics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a walkthrough of how to use GPU Trace Analysis and GPU Profiler to identify performance issues in a shader&lt;/li&gt;
&lt;li&gt;presents examples of cases that show different limits&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-233/shader-profiler-featured.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220426040102/https://developer.nvidia.com/blog/identifying-shader-limiters-with-the-shader-profiler-in-nvidia-nsight-graphics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0011/02/01/&#34; target=&#34;_blank&#34; id=&#34;A Dataset and Explorer for 3D Signed Distance Functions&#34;&gt;A Dataset and Explorer for 3D Signed Distance Functions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a database of 63 optimized and regularized SDF functions of varying complexity&lt;/li&gt;
&lt;li&gt;additionally, a tool for viewing and inspection is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-233/sdf-icon.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.basnieuwenhuizen.nl/a-driver-on-the-gpu/&#34; target=&#34;_blank&#34; id=&#34;A driver on the GPU&#34;&gt;A driver on the GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the complexities of implementing ExecuteIndirect from a driver&amp;rsquo;s perspective&lt;/li&gt;
&lt;li&gt;presents what kind of functionality is affected and how it affects driver maintainability&lt;/li&gt;
&lt;li&gt;presents a look at the capabilities of VK_NV_device_generated_commands&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-233/Vulkan_170px_Dec16.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220429004331/https://www.basnieuwenhuizen.nl/a-driver-on-the-gpu/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=lj5hx6pa_jE&#34; target=&#34;_blank&#34; id=&#34;[video] Using Ray Casting To Move 3D Objects&#34;&gt;[video] Using Ray Casting To Move 3D Objects&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video on how to implement ray-casting from the cursor position into a 3D world to allow the movement of objects&lt;/li&gt;
&lt;li&gt;discusses the necessary mathematical transformations&lt;/li&gt;
&lt;li&gt;presents how to implement the technique using OpenGL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-233/coodinate_system_transformation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/agility-sdk-1-602-0/&#34; target=&#34;_blank&#34; id=&#34;Agility SDK 1.602.0&#34;&gt;Agility SDK 1.602.0&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents the new capabilities of the agility SDK&lt;/li&gt;
&lt;li&gt;new optional features allow the reduction of alignment requirements&lt;/li&gt;
&lt;li&gt;it additionally clarifies the copy behavior between resources of different dimensionality&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-233/dx12.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220428142148/https://devblogs.microsoft.com/directx/agility-sdk-1-602-0/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://twitter.com/PikumaLondon/status/1518937063663587328&#34; target=&#34;_blank&#34; id=&#34;Twitter Thread: Games for the original #PS1 had a unique visual look&#34;&gt;Twitter Thread: Games for the original #PS1 had a unique visual look&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the thread explains the history of the PS1 hardware and how it defined the look of the games of the generation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-233/tomb_raider.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220428001024/https://twitter.com/PikumaLondon/status/1518937063663587328&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/windows-graphics-news-2022-q1/&#34; target=&#34;_blank&#34; id=&#34;Windows Graphics News – 2022 Q1&#34;&gt;Windows Graphics News – 2022 Q1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of news from the graphics windows development world&lt;/li&gt;
&lt;li&gt;covering PIX, OpenGL on ARM, Dynamic Refresh Rate, as well as win11 updates&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-233/dx12.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220502081008/https://devblogs.microsoft.com/directx/windows-graphics-news-2022-q1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/Omme&#34; target=&#34;_blank&#34;&gt;Dominik Lazarek&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 232 - April 24, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-232/</link>
      <pubDate>Sun, 24 Apr 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-232/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wickedengine.net/2022/04/23/shader-compiler-tools/&#34; target=&#34;_blank&#34; id=&#34;Shader compiler tools&#34;&gt;Shader compiler tools&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of the shader compilation pipeline in Wicked Engine&lt;/li&gt;
&lt;li&gt;presents how to track header dependencies when using the DXC shader compiler and how to detect changes to trigger recompilation&lt;/li&gt;
&lt;li&gt;presents pointers on how to unify Vulkan and D3D12 shaders as much as possible&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-232/wicked_shader_compiler_tools.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220423143327/https://wickedengine.net/2022/04/23/shader-compiler-tools/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.intel.com/content/www/us/en/newsroom/opinion/intel-graphics-step-up-research.html&#34; target=&#34;_blank&#34; id=&#34;A remake of the famous Sponza scene for open, collaborative and reproducible research&#34;&gt;A remake of the famous Sponza scene for open, collaborative and reproducible research&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Sponza rendering scene has been updated&lt;/li&gt;
&lt;li&gt;it now contains 4K PBR texture sets and high-resolution geometry&lt;/li&gt;
&lt;li&gt;optional packages such as curtains, ivy, trees, and emissive candles are available too&lt;/li&gt;
&lt;li&gt;additionally, a fully rigged and animated knight model has also been released&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-232/newsroom-intel-sponza-scene.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220421233707/https://www.intel.com/content/www/us/en/newsroom/opinion/intel-graphics-step-up-research.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gamehacker1999.github.io/posts/SSGI/&#34; target=&#34;_blank&#34; id=&#34;Dynamic, Noise Free, Screen Space Diffuse Global Illumination&#34;&gt;Dynamic, Noise Free, Screen Space Diffuse Global Illumination&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the screen space solution for Global Illumination&lt;/li&gt;
&lt;li&gt;presents the four steps of the process and how the individual results combine&lt;/li&gt;
&lt;li&gt;code examples for different steps are provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-232/denoised_indirect_light.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220422233639/https://gamehacker1999.github.io/posts/SSGI/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lisyarus.github.io/blog/graphics/2022/04/21/compute-blur.html&#34; target=&#34;_blank&#34; id=&#34;Compute shaders in graphics: Gaussian blur&#34;&gt;Compute shaders in graphics: Gaussian blur&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the authors&amp;rsquo; first experience with writing a compute shader to implement a Gaussian blur&lt;/li&gt;
&lt;li&gt;presents the different stages of the experiment, presenting performance numbers for different work sizes and execution patterns&lt;/li&gt;
&lt;li&gt;this shows how writing pixel shaders can outperform unoptimized compute shaders by a large margin&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-232/gaussian_blur.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220422185324/https://lisyarus.github.io/blog/graphics/2022/04/21/compute-blur.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2022/04/18/how-to-build-a-bvh-part-2-faster-rays/&#34; target=&#34;_blank&#34; id=&#34;How to build a BVH – part 2: Faster Rays&#34;&gt;How to build a BVH – part 2: Faster Rays&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to use a Surface Area Heuristic (SAH) to improve the quality of the BVH generation&lt;/li&gt;
&lt;li&gt;shows how much speedup can be achieved with the use of the heuristics&lt;/li&gt;
&lt;li&gt;it additionally covers additional performance optimizations through ordering changes and the usage of SSE&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-232/sahbanner.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220425003856/https://jacco.ompf2.com/2022/04/18/how-to-build-a-bvh-part-2-faster-rays/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/rgp-1-13-rdp-2-6/&#34; target=&#34;_blank&#34; id=&#34;Radeon™ GPU Profiler 1.13 and Radeon Developer Panel 2.6&#34;&gt;Radeon™ GPU Profiler 1.13 and Radeon Developer Panel 2.6&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents improvements to the new profiler version&lt;/li&gt;
&lt;li&gt;contains support for raytracing performance counters and inline raytracing&lt;/li&gt;
&lt;li&gt;additionally, searching in the ISA of the pipeline is directly supported now&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-232/raytracing_counters_selected_new.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220421172233/https://gpuopen.com/rgp-1-13-rdp-2-6/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2022/04/21/how-to-build-a-bvh-part-3-quick-builds/&#34; target=&#34;_blank&#34; id=&#34;How to build a BVH – part 3: Quick Builds&#34;&gt;How to build a BVH – part 3: Quick Builds&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to reduce the time required for the presented BVH build from seconds to milliseconds&lt;/li&gt;
&lt;li&gt;shows an alternative split plane and binning algorithms to speed up the process&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-232/randomheader.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220425003856/https://jacco.ompf2.com/2022/04/21/how-to-build-a-bvh-part-3-quick-builds/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=aLCgoI0oYUo&#34; target=&#34;_blank&#34; id=&#34;Moving, Rotating, and Scaling UVs - Shader Graph Basics - Episode 43&#34;&gt;Moving, Rotating, and Scaling UVs - Shader Graph Basics - Episode 43&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to modify UVs from a shader graph in both Unity and Unreal Engine 5&lt;/li&gt;
&lt;li&gt;explains the concepts step by step and presents the results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-232/uv_transform.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=DUOn9ek0bdI&#34; target=&#34;_blank&#34; id=&#34;Slang Shading Language Advances&#34;&gt;Slang Shading Language Advances&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk presents the Slang Shading language&lt;/li&gt;
&lt;li&gt;presents how generics and interfaces are implemented in an efficient way for GPU execution&lt;/li&gt;
&lt;li&gt;shows how the language has been deeply integrated into the Falcor material model&lt;/li&gt;
&lt;li&gt;explains the building blocks for cleaner parameter binding logic across APIs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-232/dynamic_dispatch_slang.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://i3dsymposium.org/2022/program.html&#34; target=&#34;_blank&#34; id=&#34;i3D 2022 - Program&#34;&gt;i3D 2022 - Program&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;program for the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games has been released&lt;/li&gt;
&lt;li&gt;the conference will take place Tuesday, May 3, through Thursday, May 5, in a virtual setting&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-232/logo2022.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=-x0orqFrHGA&#34; target=&#34;_blank&#34; id=&#34;Unreal Engine 5 Matrix City Sample PC Analysis: The Cost of Next-Gen Rendering&#34;&gt;Unreal Engine 5 Matrix City Sample PC Analysis: The Cost of Next-Gen Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Digital Foundry video analyses the performance of the UE5 Engine&lt;/li&gt;
&lt;li&gt;presents a comparison between hardware-accelerated and software only Lumen in terms of performance and quality&lt;/li&gt;
&lt;li&gt;shows how CPU limited the demo tends to be&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-232/ue5_cpu_performance.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=21gfE-zUym8&#34; target=&#34;_blank&#34; id=&#34;Modern OpenGL Tutorial - Tessellation Shaders&#34;&gt;Modern OpenGL Tutorial - Tessellation Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an overview of tessellation shader concepts&lt;/li&gt;
&lt;li&gt;shows how to implement a basic tesselation shader using OpenGL&lt;/li&gt;
&lt;li&gt;the example presented shows how to adjust the tessellation level of a plane dynamically around the curser&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-232/dynamic_tesselation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://themaister.net/blog/2022/04/24/my-personal-hell-of-translating-dxil-to-spir-v-part-5/&#34; target=&#34;_blank&#34; id=&#34;My personal hell of translating DXIL to SPIR-V – part 5&#34;&gt;My personal hell of translating DXIL to SPIR-V – part 5&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article introduces standard terms and concepts used in compiler literature&lt;/li&gt;
&lt;li&gt;applies the concept to start explaining the conversion from unstructured control flow into structured control flow&lt;/li&gt;
&lt;li&gt;discusses common patterns and issues found in the DXIL generated from DXC&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-232/dxil_cfg.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220424180307/https://themaister.net/blog/2022/04/24/my-personal-hell-of-translating-dxil-to-spir-v-part-5/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/leonardoetcheverry/&#34; target=&#34;_blank&#34;&gt;Leonardo Etcheverry&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 231 - April 17, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-231/</link>
      <pubDate>Sun, 17 Apr 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-231/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://kesen.realtimerendering.com/eg2022-Changelog.htm&#34; target=&#34;_blank&#34; id=&#34;Eurographics 2022 papers on the web&#34;&gt;Eurographics 2022 papers on the web&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of papers to be presented at Eurographics 2022&lt;/li&gt;
&lt;li&gt;a large number of topics are covered,  including terrain authoring, spherical harmonic lighting, radiance transfers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-231/eurographics2022-logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220418214901/http://kesen.realtimerendering.com/eg2022-Changelog.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.gdcvault.com/play/1027553/Adventures-with-Deferred-Texturing-in&#34; target=&#34;_blank&#34; id=&#34;Adventures with Deferred Texturing in &amp;#39;Horizon Forbidden West&amp;#39;&#34;&gt;Adventures with Deferred Texturing in &amp;#39;Horizon Forbidden West&amp;#39;&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the GDC presentations talk about the implementation of the Deferred Texturing&lt;/li&gt;
&lt;li&gt;developed to reduce the vegetation rendering cost&lt;/li&gt;
&lt;li&gt;a very detailed look at the different implementation stages&lt;/li&gt;
&lt;li&gt;how it integrates into the Decima rendering pipeline and a look at the performance improvements achieved&lt;/li&gt;
&lt;li&gt;it additionally presents how to implement a variable rate solution on hardware without native support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-231/horizon_west.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220418214932/https://www.gdcvault.com/play/1027553/Adventures-with-Deferred-Texturing-in&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/I3D2022.html&#34; target=&#34;_blank&#34; id=&#34;Permutation Coding for Vertex-Blend Attribute Compression&#34;&gt;Permutation Coding for Vertex-Blend Attribute Compression&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new approach to compressing vertex data at a fixed bit-rate&lt;/li&gt;
&lt;li&gt;the paper presents error analysis, compares against existing solutions in terms of prevision and performance&lt;/li&gt;
&lt;li&gt;up to 13 per-vertex skinning weights can be compressed into 64bits with included code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-231/compressed_weights_scene.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220418215045/https://momentsingraphics.de/I3D2022.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://themaister.net/blog/2022/04/11/my-personal-hell-of-translating-dxil-to-spir-v-part-4/&#34; target=&#34;_blank&#34; id=&#34;My personal hell of translating DXIL to SPIR-V – part 4&#34;&gt;My personal hell of translating DXIL to SPIR-V – part 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a detailed look at how different D3D12 ConstantBuffer patterns are mapped into SPIR-V&lt;/li&gt;
&lt;li&gt;shows how the patterns are mapped onto the hardware in RDNA2 ISA&lt;/li&gt;
&lt;li&gt;discusses how non-uniform resource influences the code generation&lt;/li&gt;
&lt;li&gt;additionally discusses quirks/limitations of ByteAddressBuffers and RWStructuredBuffer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-231/rdna2_isa.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220411194711/https://themaister.net/blog/2022/04/11/my-personal-hell-of-translating-dxil-to-spir-v-part-4/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://thenumbat.github.io/Exponential-Rotations/&#34; target=&#34;_blank&#34; id=&#34;Exponentially Better Rotations&#34;&gt;Exponentially Better Rotations&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a summary of different methods to express rotations&lt;/li&gt;
&lt;li&gt;presents interactive visualizations of the methods&lt;/li&gt;
&lt;li&gt;shows the behavior of linear interpolation, discussing the limitations of the methods&lt;/li&gt;
&lt;li&gt;it additionally shows the mathematical derivation of the methods&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-231/average_rotations.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220418215132/https://thenumbat.github.io/Exponential-Rotations/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=XDJdHKIY06E&#34; target=&#34;_blank&#34; id=&#34;[video] Taking the Slang Shading Language from Research to Production&#34;&gt;[video] Taking the Slang Shading Language from Research to Production&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents an overview of the challenges in shader development&lt;/li&gt;
&lt;li&gt;discussing how Slang can address these challenges&lt;/li&gt;
&lt;li&gt;shows the decisions made to adjust the project development  to prioritize adoption over publication from the start&lt;/li&gt;
&lt;li&gt;a brief look at how it matches into raytracing shaders and a look at upcoming developments&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-231/slang_targeting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/introducing-hiprt/&#34; target=&#34;_blank&#34; id=&#34;Introducing HIP RT – a ray tracing library in HIP&#34;&gt;Introducing HIP RT – a ray tracing library in HIP&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD released a library to enable applications that use Heterogeneous-Computing Interface for Portability (HIP) to access ray tracing hardware&lt;/li&gt;
&lt;li&gt;this enables general C++ GPGPU computing workloads to take advantage of raytracing shaders on Nvidia and AMD GPUs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-231/03_custom_intersection.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220412170236/https://gpuopen.com/learn/introducing-hiprt/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2022/04/13/how-to-build-a-bvh-part-1-basics/&#34; target=&#34;_blank&#34; id=&#34;How to build a BVH – Part 1: Basics&#34;&gt;How to build a BVH – Part 1: Basics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes how to construct a BVH from a collection of triangles&lt;/li&gt;
&lt;li&gt;axis-aligned bounding boxes are used as the foundation of the structure&lt;/li&gt;
&lt;li&gt;shows how to build and traverse the BVH&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-231/bvhbanner.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220413163159/https://jacco.ompf2.com/2022/04/13/how-to-build-a-bvh-part-1-basics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aakashkt.github.io/ltc_anisotropic.html&#34; target=&#34;_blank&#34; id=&#34;Bringing Linearly Transformed Cosines to Anisotropic GGX&#34;&gt;Bringing Linearly Transformed Cosines to Anisotropic GGX&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces an LTC (Linearly Transformed Cosines) approximation to anisotropic GGX using 4D lookup textures&lt;/li&gt;
&lt;li&gt;the demonstration video shows the importance of anisotropy for metal surfaces&lt;/li&gt;
&lt;li&gt;example code is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-231/anisotropic_ggx_i3d2022_teaser.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220413111110/https://aakashkt.github.io/ltc_anisotropic.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.zyanidelab.com/restir-gi-for-specular-bounces/&#34; target=&#34;_blank&#34; id=&#34;ReSTIR GI for Specular Bounces&#34;&gt;ReSTIR GI for Specular Bounces&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog posts demonstrate how to implement ReSTIR (Spatiotemporal reservoir resampling)&lt;/li&gt;
&lt;li&gt;presents the implementation for Lambertian diffuse&lt;/li&gt;
&lt;li&gt;shows how to extend the concepts also to support specular sampling&lt;/li&gt;
&lt;li&gt;additionally presents the author&amp;rsquo;s technique to combine the influences&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-231/restir_gi_spec_banner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220413003116/http://www.zyanidelab.com/restir-gi-for-specular-bounces/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gist.github.com/vassvik/f06a453c18eae03a9ad4dc8cc011d2dc&#34; target=&#34;_blank&#34; id=&#34;Realtime Fluid Simulation: Projection&#34;&gt;Realtime Fluid Simulation: Projection&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a showcase of the importance of a projection solver for a real-time fluids&lt;/li&gt;
&lt;li&gt;presents the Jacobi method and compares it against the Multigrid algorithm&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-231/fluid_graphs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220412131810/https://gist.github.com/vassvik/f06a453c18eae03a9ad4dc8cc011d2dc&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=LTzhxLEgldA&#34; target=&#34;_blank&#34; id=&#34;[video] Interactive Graphics 24 - Refractions, Transparency, Blending, &amp;amp; Alpha Testing&#34;&gt;[video] Interactive Graphics 24 - Refractions, Transparency, Blending, &amp;amp; Alpha Testing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains the concept of refraction and existing techniques to implement the effect&lt;/li&gt;
&lt;li&gt;covers how to draw transparent objects and how it&amp;rsquo;s expressed in the rendering pipeline&lt;/li&gt;
&lt;li&gt;shows the importance of drawing order when using rasterization and presents techniques for order-independent transparency&lt;/li&gt;
&lt;li&gt;presents alpha testing and limitations with mipmapping alpha testing&lt;/li&gt;
&lt;li&gt;it additionally covers solutions to ensure that objects look correctly under minification&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-231/alpha_testing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://duendegds.com/app-vortice#diagram&#34; target=&#34;_blank&#34; id=&#34;Graphics Pipeline, Techniques, &amp;amp; Algorithms in Vortice&#34;&gt;Graphics Pipeline, Techniques, &amp;amp; Algorithms in Vortice&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the visual graph provides a visual representation of the different passes from the fluid simulation of the iOS application&lt;/li&gt;
&lt;li&gt;provides short overviews of the implementation of the different passes&lt;/li&gt;
&lt;li&gt;it additionally provides a visual representation of the visible state of the textures involved at the different stages of the pipeline&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-231/fluids_data_flow.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220419145323/https://duendegds.com/app-vortice&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.reedbeta.com&#34; target=&#34;_blank&#34;&gt;Nathan Reed&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 230 - April 10, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-230/</link>
      <pubDate>Sun, 10 Apr 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-230/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=BFld4EBO2RE&#34; target=&#34;_blank&#34; id=&#34;[video] Painting a Landscape using Mathematics&#34;&gt;[video] Painting a Landscape using Mathematics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a complete walkthrough of the creation of a large outdoor environment using shadertoy&lt;/li&gt;
&lt;li&gt;presents how to implement a terrain using fractal surfaces, sun lighting, atmospheric scattering, clouds, grass, and trees&lt;/li&gt;
&lt;li&gt;it additionally shows how to apply color adjustments for artistic expression&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-230/shadertoy_scene.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2022/04/09/raytracing-a-4-year-retrospective/&#34; target=&#34;_blank&#34; id=&#34;Raytracing, a 4 year retrospective&#34;&gt;Raytracing, a 4 year retrospective&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a retrospective of raytracing experiments done using compute shader implementations&lt;/li&gt;
&lt;li&gt;shows an introduction for every experiment and how they present a continuous research space&lt;/li&gt;
&lt;li&gt;providing links to an article covering each experiment&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-230/ssrwithraytracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220409224333/https://interplayoflight.wordpress.com/2022/04/09/raytracing-a-4-year-retrospective/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.traverseresearch.nl/bindless-rendering-templates-8920ca41326f&#34; target=&#34;_blank&#34; id=&#34;Bindless rendering — Templates&#34;&gt;Bindless rendering — Templates&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an abstraction system to allow shaders to author bindings without having to be aware of binding details in an abstracted method&lt;/li&gt;
&lt;li&gt;shows how to emulate Shader Model 6.6 ResourceDescriptorHeap functionality in Vulkan where it&amp;rsquo;s not yet available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-230/vulkan_d3d12_binding.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220412020510/https://blog.traverseresearch.nl/bindless-rendering-templates-8920ca41326f?gi=3fc0318a8e36&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://fgiesen.wordpress.com/2022/04/04/entropy-decoding-in-oodle-data-huffman-decoding-on-the-jaguar/&#34; target=&#34;_blank&#34; id=&#34;Entropy decoding in Oodle Data: Huffman decoding on the Jaguar&#34;&gt;Entropy decoding in Oodle Data: Huffman decoding on the Jaguar&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an in-depth look at the core loop optimizations of the Oodle decoding step for AMD jaguar CPUs&lt;/li&gt;
&lt;li&gt;discussing hardware details of the CPU cores and how they define the decoder design&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-230/decoder_jaguar.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220406152356/https://fgiesen.wordpress.com/2022/04/04/entropy-decoding-in-oodle-data-huffman-decoding-on-the-jaguar/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=QXuHzH0IyRE&#34; target=&#34;_blank&#34; id=&#34;[video] Unreal Engine 5 Guided Tour | Feature Highlight | State of Unreal 2022&#34;&gt;[video] Unreal Engine 5 Guided Tour | Feature Highlight | State of Unreal 2022&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the 30min video provides a summary and examples of the new features in Unreal Engine 5 (UE5) to build an example scene&lt;/li&gt;
&lt;li&gt;covering things like Niagra particles, fluids, landscape modeling, object material blending, nanite, etc&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-230/blended_group_ue5.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=vje0x1BNpp8&#34; target=&#34;_blank&#34; id=&#34;[video] 10 Shaders in 10 Minutes - Unity Shader Graph&#34;&gt;[video] 10 Shaders in 10 Minutes - Unity Shader Graph&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows how to implement ten different effects using UnityShader graphs&lt;/li&gt;
&lt;li&gt;covering outline, dithered transparency, and vertex waves&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-230/dithered_transparency.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ycJ434Lh21w&#34; target=&#34;_blank&#34; id=&#34;[video] Tessellation and Displacement - Shader Graph Basics - Episode 41&#34;&gt;[video] Tessellation and Displacement - Shader Graph Basics - Episode 41&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shader tutorial shows how to use tessellation and displacement to create dynamically detailed meshes&lt;/li&gt;
&lt;li&gt;presents how to control the displacement amount from a height texture&lt;/li&gt;
&lt;li&gt;it additionally shows how to control the amount of tessellation only to add extra detail when needed on the silhouettes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-230/mesh_tesselation_displacement.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=zlM4bMwqtCk&#34; target=&#34;_blank&#34; id=&#34;[video] Interactive Graphics 22 - Global Illumination&#34;&gt;[video] Interactive Graphics 22 - Global Illumination&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a high-level overview of what Global Illumination is, the importance for the rendering results&lt;/li&gt;
&lt;li&gt;presents several techniques that exist for the calculation of GI&lt;/li&gt;
&lt;li&gt;these include radiometry, lightmapping, Path tracing, Voxel Cone Tracing as well, as Virtual Lights&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-230/global_illumination.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=teB-pbAd8JE&#34; target=&#34;_blank&#34; id=&#34;[video] Interactive Graphics 23 - Ambient Occlusion &amp;amp; Soft Shadows&#34;&gt;[video] Interactive Graphics 23 - Ambient Occlusion &amp;amp; Soft Shadows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses what Ambient Occlusion is, provides how it fits into the rendering equation and what it cannot express&lt;/li&gt;
&lt;li&gt;presents a high-level overview of an existing screen space technique to calculate the effect&lt;/li&gt;
&lt;li&gt;it additionally covers why in most cases, soft shadows are expected and techniques to approximate the effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-230/ambient_occlusion.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=EPaSmQ2vtek&#34; target=&#34;_blank&#34; id=&#34;[video] Procedurally Generating A Hexagon Grid in Unity&#34;&gt;[video] Procedurally Generating A Hexagon Grid in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows how to generate a procedural hexagon shape mesh&lt;/li&gt;
&lt;li&gt;extends the generation to logic to support 3D hexagon shapes and combine them into a grid&lt;/li&gt;
&lt;li&gt;implementation is shown using Unity C# code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-230/hex_grid.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://pharr.org/matt&#34; target=&#34;_blank&#34;&gt;Matt Pharr&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 229 - April 3, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-229/</link>
      <pubDate>Sun, 03 Apr 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-229/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/reducing-draw-time-hitching-with-vk-ext-graphics-pipeline-library&#34; target=&#34;_blank&#34; id=&#34;Reducing Draw Time Hitching with VK_EXT_graphics_pipeline_library&#34;&gt;Reducing Draw Time Hitching with VK_EXT_graphics_pipeline_library&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes the functionality of the new pipeline library extension and how to use it to reduce draw-time shader compilation stalls&lt;/li&gt;
&lt;li&gt;the extension breaks up PSO compilation into four distinct areas Vertex Input Interface, Pre-Rasterization Shaders, Fragment Shader, Fragment Output Interface&lt;/li&gt;
&lt;li&gt;these separate aspects can then be linked together to create the PSO&lt;/li&gt;
&lt;li&gt;link-time optimizations are optional to trade compilation time for runtime performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-229/Vulkan_170px_Dec16.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220401035710/https://www.khronos.org/blog/reducing-draw-time-hitching-with-vk-ext-graphics-pipeline-library&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cg.tuwien.ac.at/research/publications/2022/SCHUETZ-2022-PCC/&#34; target=&#34;_blank&#34; id=&#34;Software Rasterization of 2 Billion Points in Real Time&#34;&gt;Software Rasterization of 2 Billion Points in Real Time&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an improvement of compute shader-based point cloud rasterization&lt;/li&gt;
&lt;li&gt;presents LoD structures for point clouds&lt;/li&gt;
&lt;li&gt;introduces the concept of per-batch Adaptive Vertex Precision that allows each batch to use three different position precisions relative to the center of the batch&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-229/SCHUETZ-2022-PCC-teaser.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220401184345/https://www.cg.tuwien.ac.at/research/publications/2022/SCHUETZ-2022-PCC/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-2203-30/&#34; target=&#34;_blank&#34; id=&#34;PIX 2203.30: Export to C&amp;#43;&amp;#43;, UI changes and more!&#34;&gt;PIX 2203.30: Export to C&amp;#43;&amp;#43;, UI changes and more!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post details the changes in the new PIX version&lt;/li&gt;
&lt;li&gt;enables exporting captures into C++ so that users can simplify or experiment with making changes to the generated code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-229/pix_ui.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220402224138/https://devblogs.microsoft.com/pix/pix-2203-30/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.dropbox.com/s/ic0c6k0yzf2uk81/Authoring%20Efficient%20Shaders%20for%20Optimal%20Mobile%20Performance%20-%20GDC2022%20-Arm%20%26%20NaturalMotion.pdf?dl=0&#34; target=&#34;_blank&#34; id=&#34;Authoring Efficient Shaders for Optimal Mobile Performance&#34;&gt;Authoring Efficient Shaders for Optimal Mobile Performance&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the GDC talk presents the Mali Offline Compiler and how to use it to analyze shader performance at authoring time&lt;/li&gt;
&lt;li&gt;discusses the importance of understanding your target hardware to make informed decisions&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;presents how much instruction costs might vary between different hardware generations&lt;/li&gt;
&lt;li&gt;highlights the importance of choosing the correct variable precision&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-229/racing_bg.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.ph/rdq1I&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=HH-9nfceXFw&amp;amp;list=PLplnkTzzqsZS3R5DjmCQsqupu43oS9CFN&amp;amp;index=21&#34; target=&#34;_blank&#34; id=&#34;[video] Interactive Graphics 20 - Compute &amp;amp; Mesh Shaders&#34;&gt;[video] Interactive Graphics 20 - Compute &amp;amp; Mesh Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video lecture explains the concepts of compute shaders&lt;/li&gt;
&lt;li&gt;covering how to bind resources, compile and use shaders from OpenGL&lt;/li&gt;
&lt;li&gt;it also covers the execution model covering execution groups, threads, and how it matches onto hardware cores&lt;/li&gt;
&lt;li&gt;it additionally covers how mesh shaders fit into the graphics pipeline&lt;/li&gt;
&lt;li&gt;covering the high-level concepts and presenting demos of mesh shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-229/compute_shaders.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=B56z6st6U8E&#34; target=&#34;_blank&#34; id=&#34;[video] Toon Shader Specular Highlights - Shader Graph Basics - Episode 40&#34;&gt;[video] Toon Shader Specular Highlights - Shader Graph Basics - Episode 40&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows how to implement specular highlights for a toon shader&lt;/li&gt;
&lt;li&gt;extends the shaders from the previous part of the series&lt;/li&gt;
&lt;li&gt;implementation is shown in both Unity and UE4 visual shader editor&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-229/toon_shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=9_v8cvd-BSQ&amp;amp;list=PLplnkTzzqsZS3R5DjmCQsqupu43oS9CFN&#34; target=&#34;_blank&#34; id=&#34;[video] Interactive Graphics 21 - Deferred, Variable-Rate, &amp;amp; Adaptive Shading&#34;&gt;[video] Interactive Graphics 21 - Deferred, Variable-Rate, &amp;amp; Adaptive Shading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video lecture presents deferred shading, discussing the problems of forward shading and how deferred can help to overcome them&lt;/li&gt;
&lt;li&gt;it also covers a brief overview of anti-aliasing techniques&lt;/li&gt;
&lt;li&gt;it additionally covers how Variable Rate shading can be used to reduce the shading rate for a group of pixels to reduce shading cost further&lt;/li&gt;
&lt;li&gt;it additionally presents an overview of Deferred Adaptive Compute Shading&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-229/deferred_shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://solidpixel.github.io/2022/03/27/texture_sampling_tips.html&#34; target=&#34;_blank&#34; id=&#34;Texture sampling tips&#34;&gt;Texture sampling tips&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a collection of performance advice to consider with texture sampling&lt;/li&gt;
&lt;li&gt;discusses how helper lanes are required for MIP selection&lt;/li&gt;
&lt;li&gt;presents different ways that can allow reduced energy consumption on Mali GPUs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-229/anisotropic_filtering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220328234943/https://solidpixel.github.io/2022/03/27/texture_sampling_tips.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=71G-PVpaVk8&#34; target=&#34;_blank&#34; id=&#34;[video] How to Select 3D Objects With The Mouse Using OpenGL&#34;&gt;[video] How to Select 3D Objects With The Mouse Using OpenGL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how to use render-to-texture to enable object selection&lt;/li&gt;
&lt;li&gt;draws out an object id and primitive ID to a texture&lt;/li&gt;
&lt;li&gt;this texture is read back to the CPU to allow the detection of which object has been selected&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-229/select_object.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.microsoft.com/en-us/games/events/gdc/haloinfinite/&#34; target=&#34;_blank&#34; id=&#34;Discover 3D content optimization with Simplygon&#34;&gt;Discover 3D content optimization with Simplygon&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk provides an overview of different LOD concepts&lt;/li&gt;
&lt;li&gt;how different Level of Details modes can be used to achieve improved performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-229/hollow_shell.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220325233911/https://developer.microsoft.com/en-us/games/events/gdc/haloinfinite/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/leonardoetcheverry/&#34; target=&#34;_blank&#34;&gt;Leonardo Etcheverry&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 228 - March 27, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-228/</link>
      <pubDate>Sun, 27 Mar 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-228/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2022/03/26/raytraced-global-illumination-denoising/&#34; target=&#34;_blank&#34; id=&#34;Raytraced global illumination denoising&#34;&gt;Raytraced global illumination denoising&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of a denoising solution for raytraced global illumination based on the findings of Metro: Exodus&lt;/li&gt;
&lt;li&gt;presents how to improve temporal accumulation through blue noise and geometry aware blurs&lt;/li&gt;
&lt;li&gt;it additionally sounds how the ambient occlusion term can be used for further improvement&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-228/gi_final4.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220326195028/https://interplayoflight.wordpress.com/2022/03/26/raytraced-global-illumination-denoising/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alexanderameye.github.io/notes/realtime-caustics/&#34; target=&#34;_blank&#34; id=&#34;Rendering realtime caustics&#34;&gt;Rendering realtime caustics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses a method for a simple non-PBR method to implement underwater caustics&lt;/li&gt;
&lt;li&gt;implementation uses a projection volume for multiple tiling textures&lt;/li&gt;
&lt;li&gt;code examples are provided using Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-228/water_caustics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220326171509/https://alexanderameye.github.io/notes/realtime-caustics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://kelvinvanhoorn.com/2022/03/17/skybox-tutorial-part-1/&#34; target=&#34;_blank&#34; id=&#34;Skybox tutorial part 1&#34;&gt;Skybox tutorial part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a walkthrough of the implementation of a complete skybox model, including time of day, moon, sun, and stars&lt;/li&gt;
&lt;li&gt;it additionally shows how to integrate support for lunar and solar eclipses&lt;/li&gt;
&lt;li&gt;the implementation of the sky colors is implemented as a function of the sun position to sample multiple gradients&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-228/skybox.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220318112018/https://kelvinvanhoorn.com/2022/03/17/skybox-tutorial-part-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/announcing-vma3-d3d12ma2/&#34; target=&#34;_blank&#34; id=&#34;Announcing Vulkan Memory Allocator 3.0.0 and Direct3D 12 Memory Allocator 2.0.0&#34;&gt;Announcing Vulkan Memory Allocator 3.0.0 and Direct3D 12 Memory Allocator 2.0.0&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes a large number of changes and improvements made to the AMD and Vulkan Memory allocator&lt;/li&gt;
&lt;li&gt;the changes include new allocation algorithms, improved statics, support for custom pools as well as support for defragmentation&lt;/li&gt;
&lt;li&gt;additionally, the allocator can now be used when sub-allocating from a single large buffers resource&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-228/featured_vma_red.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220325161335/https://gpuopen.com/learn/announcing-vma3-d3d12ma2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/events/gdc-2022/&#34; target=&#34;_blank&#34; id=&#34;AMD - GDC2022&#34;&gt;AMD - GDC2022&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of slides and videos from AMDs talk at GDC 2020&lt;/li&gt;
&lt;li&gt;covering raytracing, FidelityFX Super Resolution 2.0, game rendering effects as well as CPU optimization advice&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-228/GDC_2022_banner.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220324223528/https://gpuopen.com/events/gdc-2022/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/news-insights/white-papers/1-3-vulkan-loader-improvements/&#34; target=&#34;_blank&#34; id=&#34;1.3 Vulkan Loader Improvements&#34;&gt;1.3 Vulkan Loader Improvements&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Vulkan loader has been improved with more debugging capabilities and improved documentation&lt;/li&gt;
&lt;li&gt;additionally improved the testing framework to ensure more consistent behavior across layers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-228/Vulkan-logo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.lunarg.com/wp-content/uploads/2022/03/1.3-Vulkan-Loader-Improvements-MAR2022.pdf&#34; style=&#34;color:white;&#34;&gt;whitepaper &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220325000811/https://www.lunarg.com/news-insights/white-papers/1-3-vulkan-loader-improvements/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cesium.com/open-metaverse-podcast/webgpu/&#34; target=&#34;_blank&#34; id=&#34;WebGPU and Graphics on the Web&#34;&gt;WebGPU and Graphics on the Web&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;podcast discussing the development and design of WebGPU&lt;/li&gt;
&lt;li&gt;talks about the restrictions, design goals, and how it fits into the broader graphics ecosystem&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-228/metaverse_podcast.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220325165009/https://cesium.com/open-metaverse-podcast/webgpu/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.intel.com/content/www/us/en/events/developer/gdc-march-2022.html&#34; target=&#34;_blank&#34; id=&#34;Intel at the 2022 Game Developers Conference&#34;&gt;Intel at the 2022 Game Developers Conference&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the page contains links to the presentations (slides and video) to the talks given by Intel at GDC 2022&lt;/li&gt;
&lt;li&gt;covering upscaling, optimizations, VRS, machine learning as well as optimization advice&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-228/gdc_intel.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220325080822/https://www.intel.com/content/www/us/en/events/developer/gdc-march-2022.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/nvidia-hopper-architecture-in-depth/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Hopper Architecture In-Depth&#34;&gt;NVIDIA Hopper Architecture In-Depth&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides in-depth details about the new Hopper GPU architecture for data center usage&lt;/li&gt;
&lt;li&gt;shows performance numbers, new capabilities, improvements as well as new&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-228/GTC2022_DL.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220327034224/https://developer.nvidia.com/blog/nvidia-hopper-architecture-in-depth/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=cM7RjEtZGHw&#34; target=&#34;_blank&#34; id=&#34;[video] Interactive Graphics 19 - Bump, Normal, Displacement, and Parallax Mapping&#34;&gt;[video] Interactive Graphics 19 - Bump, Normal, Displacement, and Parallax Mapping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents an overview of techniques to represent more geometric details without having to use high geometric tessellation levels&lt;/li&gt;
&lt;li&gt;explains the differences between the different techniques, how they are related explaining strengths and weakness&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-228/parallax_mapping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devlog.hexops.com/2022/mach-v0.1-zig-graphics-in-60s&#34; target=&#34;_blank&#34; id=&#34;Mach v0.1 - cross-platform Zig graphics in ~60 seconds&#34;&gt;Mach v0.1 - cross-platform Zig graphics in ~60 seconds&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog explains the graphics foundations of Mach, a zig graphics foundation layer&lt;/li&gt;
&lt;li&gt;provides an overview of the unified API abstractions that use WebGPU and WGSL internally&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-228/zig_gpu_interface.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220328000948/https://devlog.hexops.com/2022/mach-v0.1-zig-graphics-in-60s&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/JarkkoPFC/papers/blob/main/Fast3DFrame_v1.0.pdf&#34; target=&#34;_blank&#34; id=&#34;Fast Non-Uniform 3D Frame Representation&#34;&gt;Fast Non-Uniform 3D Frame Representation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a derivation of a representation for rotation and non-uniform scaling in a compact representation&lt;/li&gt;
&lt;li&gt;HLSL code for the implementation is provided&lt;/li&gt;
&lt;li&gt;contains a performance comparison against quaternions and matrix operations on RDNA2 hardware instruction costs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-228/transform_quaternion.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220330052200/https://github.com/JarkkoPFC/papers/blob/main/Fast3DFrame_v1.0.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Dirk Dörr for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 227 - March 20, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-227/</link>
      <pubDate>Sun, 20 Mar 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-227/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Wk145_jUsBk&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] HOW TO DEBUG Your OpenGL Code&#34;&gt;[video] HOW TO DEBUG Your OpenGL Code&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial provides a starting guide to OpenGL debugging&lt;/li&gt;
&lt;li&gt;starts by covering CPU side error detection and apitrace (capturing tool for all API calls)&lt;/li&gt;
&lt;li&gt;additionally provides a collection of helpful tips to apply when trying to debug GPU side issues&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-227/opengl_debugging.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2022/03/16/transforming-noise-and-random-variables-through-non-linearities/&#34; target=&#34;_blank&#34; id=&#34;Transforming “noise” and random variables through non-linearities&#34;&gt;Transforming “noise” and random variables through non-linearities&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article recaps the effects of linear transformations of random variables&lt;/li&gt;
&lt;li&gt;describes three different methods of estimating the effects of nonlinearities on mean and variance/standard deviation&lt;/li&gt;
&lt;li&gt;shows practically how color spaces can affect the behavior of operations such as blurs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-227/noise_error_appoximation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220321070905/https://bartwronski.com/2022/03/16/transforming-noise-and-random-variables-through-non-linearities/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=_7adGI2KQQU&#34; target=&#34;_blank&#34; id=&#34;[video] Live Coding an Alien Orb - God Rays &amp;amp; Translucency&#34;&gt;[video] Live Coding an Alien Orb - God Rays &amp;amp; Translucency&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video tutorial presents a walkthrough of implementing volumetric god rays and subsurface scattering into a shadertoy&lt;/li&gt;
&lt;li&gt;all presented techniques are based on SDF rendering of a 3D sphere orb-like structure&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-227/art_of_code_orb.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-support-for-directstorage/&#34; target=&#34;_blank&#34; id=&#34;PIX-2203.07: Support for DirectStorage&#34;&gt;PIX-2203.07: Support for DirectStorage&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the new release of Pix supports DirectStorage visualization on the timelines&lt;/li&gt;
&lt;li&gt;article shows what is supported and how it&amp;rsquo;s represented in the UI&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-227/directstorage-lanes.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220317013940/https://devblogs.microsoft.com/pix/pix-support-for-directstorage/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/directstorage-api-available-on-pc/&#34; target=&#34;_blank&#34; id=&#34;DirectStorage API Now Available on PC&#34;&gt;DirectStorage API Now Available on PC&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Microsft has released the first public version of DirectStorage&lt;/li&gt;
&lt;li&gt;the release contains the API and basic simples about the usage of the API&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-227/direct-storage-DS-asset-flow.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220320160730/https://devblogs.microsoft.com/directx/directstorage-api-available-on-pc/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.zyanidelab.com/how-to-add-thousands-of-lights-to-your-renderer/&#34; target=&#34;_blank&#34; id=&#34;How to add thousands of lights to your renderer and not die in the process&#34;&gt;How to add thousands of lights to your renderer and not die in the process&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an introduction into Reservoir-based Spatio-Temporal Importance Resampling&lt;/li&gt;
&lt;li&gt;shows the basics of the technique building on the ideas of Resampled Importance Sampling&lt;/li&gt;
&lt;li&gt;clarifies how reservoirs work and how reservoirs can be intelligently combined to allow the sampling of large light counts with bounded performance impact&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-227/shot2022-03-11_17-46-55.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220314191636/http://www.zyanidelab.com/how-to-add-thousands-of-lights-to-your-renderer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=5Ruv2H9lkGA&amp;amp;list=PLplnkTzzqsZS3R5DjmCQsqupu43oS9CFN&#34; target=&#34;_blank&#34; id=&#34;[video] Interactive Graphics 17 - Geometry Shaders&#34;&gt;[video] Interactive Graphics 17 - Geometry Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video course provides an understanding of the geometry shaders&amp;rsquo; capabilities&lt;/li&gt;
&lt;li&gt;reviews the OpenGL primitives and presents the new adjacency types added for primitive shaders&lt;/li&gt;
&lt;li&gt;shows how to use the GS from GLSL&lt;/li&gt;
&lt;li&gt;additionally shows examples of Geometry Shader usage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-227/geometry_shader_gl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=SOYNf4sYNzY&#34; target=&#34;_blank&#34; id=&#34;[video] Toon Shader Paint - Shader Graph Basics - Episode 38&#34;&gt;[video] Toon Shader Paint - Shader Graph Basics - Episode 38&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to implement toon shading&lt;/li&gt;
&lt;li&gt;presents multiple approaches on how to achieve the desired look&lt;/li&gt;
&lt;li&gt;technique implementation is shown using visual scripting in Unity and UE4&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-227/toon_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=OqRMNrvu6TE&#34; target=&#34;_blank&#34; id=&#34;[video] Interactive Graphics 18 - Tessellation Shaders&#34;&gt;[video] Interactive Graphics 18 - Tessellation Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial covering Tessellation shaders&lt;/li&gt;
&lt;li&gt;explains how vertex count can be the bottleneck of the GPU pipeline and how tessellation can solve the problem&lt;/li&gt;
&lt;li&gt;shows how tesselation shaders are integrated into the rendering pipeline and how they are used from GLSL and OpenGL&lt;/li&gt;
&lt;li&gt;additionally presents a few examples of tessellation shader usage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-227/tesselation_gl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://metalkit.org/&#34; target=&#34;_blank&#34;&gt;Marius Horga&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 226 - March 13, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-226/</link>
      <pubDate>Sun, 13 Mar 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-226/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2022/03/07/fast-gpu-friendly-antialiasing-downsampling-filter&#34; target=&#34;_blank&#34; id=&#34;Fast, GPU friendly, antialiasing downsampling filter&#34;&gt;Fast, GPU friendly, antialiasing downsampling filter&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article present how to derive a downsampling filter that uses eight bilinear samples&lt;/li&gt;
&lt;li&gt;shows the process how to create the desired response and optimize the weights&lt;/li&gt;
&lt;li&gt;includes a shadertoy implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-226/sample_pattern.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220307153705/https://bartwronski.com/2022/03/07/fast-gpu-friendly-antialiasing-downsampling-filter/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2022/03/11/Optimizing-Oklab-gradients&#34; target=&#34;_blank&#34; id=&#34;Optimizing Oklab gradients&#34;&gt;Optimizing Oklab gradients&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of sRGB, Linear, and Oklab gradient interpolation&lt;/li&gt;
&lt;li&gt;shows how to optimize the linear and Oklab calculations to get a lot closer in terms of performance compared to direct sRGB interpolation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-226/gradient-opt-srgb-oklab-linear.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220312231218/https://aras-p.info/blog/2022/03/11/Optimizing-Oklab-gradients/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2022/03/12/abstracting-the-api-for-a-toy-renderer/&#34; target=&#34;_blank&#34; id=&#34;Abstracting the graphics api for a toy renderer&#34;&gt;Abstracting the graphics api for a toy renderer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the authors&amp;rsquo; decision for a home renderer abstraction layer&lt;/li&gt;
&lt;li&gt;focusing on ease-of-use for experimentation over performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-226/d3d12_api_toy_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220313103900/https://interplayoflight.wordpress.com/2022/03/12/abstracting-the-api-for-a-toy-renderer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.traverseresearch.nl/bindless-rendering-setup-afeb678d77fc&#34; target=&#34;_blank&#34; id=&#34;Bindless rendering — Setup&#34;&gt;Bindless rendering — Setup&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the implementation of a bindless binding model using D3D12 and Vulkan&lt;/li&gt;
&lt;li&gt;discusses the decisions, trade-offset as well (API) implementation-specific details&lt;/li&gt;
&lt;li&gt;code examples are provided in Rust&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-226/traverse_research.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220315035040/https://blog.traverseresearch.nl/bindless-rendering-setup-afeb678d77fc?gi=4b06de4cd969&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://zone.dog/braindump/sdf_clustering_part_2&#34; target=&#34;_blank&#34; id=&#34;A Better Approach to SDF Decomposition&#34;&gt;A Better Approach to SDF Decomposition&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a compiler approach that takes an SDF representation and generates shaders for cheaper execution on parts of the mesh&lt;/li&gt;
&lt;li&gt;lists several recommendations to consider when implementing&lt;/li&gt;
&lt;li&gt;additionally provides a few use cases for the SDF Evaluator&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-226/gear_example.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220312235904/http://zone.dog/braindump/sdf_clustering_part_2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/download/publications/EG22_VolumeSlc.pdf&#34; target=&#34;_blank&#34; id=&#34;Stochastic Light Culling for Single Scattering in Participating Media&#34;&gt;Stochastic Light Culling for Single Scattering in Participating Media&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper extends the ideas of Stochastic Light Culling to compute single scattering in a homogeneous media&lt;/li&gt;
&lt;li&gt;presents how combining reservoir sampling with the introduced technique can improve performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-226/scattering_media.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220313075420/https://gpuopen.com/download/publications/EG22_VolumeSlc.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/download/publications/GPUOpen_BVHApproximation.pdf&#34; target=&#34;_blank&#34; id=&#34;Multi-Resolution Geometric Representation using Bounding Volume Hierarchy for Ray Tracing&#34;&gt;Multi-Resolution Geometric Representation using Bounding Volume Hierarchy for Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a technique to lower the cost of ray tracing by using approximated geometry for shadow rays&lt;/li&gt;
&lt;li&gt;additionally proposes a stochastic material sampling for material blending&lt;/li&gt;
&lt;li&gt;presents how to combine the techniques in a path-tracer implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-226/raytracing_bvh.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220310105734/https://gpuopen.com/download/publications/GPUOpen_BVHApproximation.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/arm-community-blogs/b/graphics-gaming-and-vr-blog/posts/mali-g710-developer-overview&#34; target=&#34;_blank&#34; id=&#34;Mali-G710: a developer overview&#34;&gt;Mali-G710: a developer overview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents hardware and shader compiler improvements for the new Malig G710 GPU&lt;/li&gt;
&lt;li&gt;provides details into how the improvements compared to previous generations&lt;/li&gt;
&lt;li&gt;additionally provides updated best-practices for best performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-226/valhall-csf-top-level-simplified.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220313042626/https://community.arm.com/arm-community-blogs/b/graphics-gaming-and-vr-blog/posts/mali-g710-developer-overview&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://discourse.llvm.org/t/rfc-adding-hlsl-and-directx-support-to-clang-llvm/60783&#34; target=&#34;_blank&#34; id=&#34;[RFC] Adding HLSL and DirectX support to Clang &amp;amp; LLVM&#34;&gt;[RFC] Adding HLSL and DirectX support to Clang &amp;amp; LLVM&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the forum post presents the proposal to integrate HLSL and DXIL support into clang/LLVM&lt;/li&gt;
&lt;li&gt;discussion presents insights into the tradeoffs in the compiler backend and difficulty with GPU architectures&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-226/clang_logo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220313010512/https://discourse.llvm.org/t/rfc-adding-hlsl-and-directx-support-to-clang-llvm/60783&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://surma.dev/things/webgpu/&#34; target=&#34;_blank&#34; id=&#34;WebGPU — All of the cores, none of the canvas&#34;&gt;WebGPU — All of the cores, none of the canvas&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an introduction to WebGPU for compute shader workloads&lt;/li&gt;
&lt;li&gt;starts from the basics and walks through all steps required to implement a simple 2D ball physics simulation&lt;/li&gt;
&lt;li&gt;shows how to upload readback data from the GPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-226/3d_workload.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220313204738/https://surma.dev/things/webgpu/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/amd-at-gdc-2022/&#34; target=&#34;_blank&#34; id=&#34;AMD at GDC 2022&#34;&gt;AMD at GDC 2022&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the page contains information and links to all the talks that AMD will present at GDC22&lt;/li&gt;
&lt;li&gt;lists what new tools and libraries are going to be announced&lt;/li&gt;
&lt;li&gt;number of talks will be freely accessible on GPUOpen&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-226/GDC_2022_banner.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220310200407/https://gpuopen.com/amd-at-gdc-2022/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/robert-wallis&#34; target=&#34;_blank&#34;&gt;Robert Wallis&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 225 - March 6, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-225/</link>
      <pubDate>Sun, 06 Mar 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-225/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2022/02/28/exposure-fusion-local-tonemapping-for-real-time-rendering/&#34; target=&#34;_blank&#34; id=&#34;Exposure Fusion – local tonemapping for real-time rendering&#34;&gt;Exposure Fusion – local tonemapping for real-time rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an explanation of common tone mapping issues, comparing multiple local tone mapping solutions&lt;/li&gt;
&lt;li&gt;discusses the Exposure fusion technique in detail&lt;/li&gt;
&lt;li&gt;the technique combines multiple exposed images with varying radii based on the frequency changes in the image&lt;/li&gt;
&lt;li&gt;present a WebGL demo implementation of the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-225/local_tonemapping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220302150427/https://bartwronski.com/2022/02/28/exposure-fusion-local-tonemapping-for-real-time-rendering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.microsoft.com/en-us/games/blog/variable-rate-compute-shaders-on-xbox-series-xs/&#34; target=&#34;_blank&#34; id=&#34;Variable Rate Compute Shaders on Xbox Series X|S&#34;&gt;Variable Rate Compute Shaders on Xbox Series X|S&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation talks about techniques to use VRS (Variable Rate Shading) to reduce the cost of lighting calculations for deferred shading&lt;/li&gt;
&lt;li&gt;presents implementation details for PC/Series X and presents performance comparisons of the techniques&lt;/li&gt;
&lt;li&gt;additionally introduces a technique to reduce block artifacts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-225/VariableRateComputeShadersBlogImage.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220224170933/https://developer.microsoft.com/en-us/games/blog/variable-rate-compute-shaders-on-xbox-series-xs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.microsoft.com/en-us/games/blog/variable-rate-shading,-tales-from-the-trenches-on-series-xs/&#34; target=&#34;_blank&#34; id=&#34;Variable Rate Shading, Tales from the Trenches on Series X|S&#34;&gt;Variable Rate Shading, Tales from the Trenches on Series X|S&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentations cover the experience of implementing VRS into Doom Eternal and Gears5&lt;/li&gt;
&lt;li&gt;contains lessons learned, performance expectations as well as implementation details&lt;/li&gt;
&lt;li&gt;additionally covers how VRS performance with UE5 Nanite pipelines&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-225/VRSBlogImage.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220228134850/https://developer.microsoft.com/en-us/games/blog/variable-rate-shading,-tales-from-the-trenches-on-series-xs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aaronhertzmann.com/2022/02/28/how-does-perspective-work.html&#34; target=&#34;_blank&#34; id=&#34;How Does Perspective Work in Pictures?&#34;&gt;How Does Perspective Work in Pictures?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the effect that human perception and images appear different&lt;/li&gt;
&lt;li&gt;presents shortcomings of linear perspective&lt;/li&gt;
&lt;li&gt;shows how different types of focal lengths and perspectives create different effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-225/high-street-by-turner.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220303192033/https://aaronhertzmann.com/2022/02/28/how-does-perspective-work.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2022/03/01/picking-fairly-from-a-list-of-unknown-size-with-reservoir-sampling/&#34; target=&#34;_blank&#34; id=&#34;Picking Fairly From a List of Unknown Size With Reservoir Sampling&#34;&gt;Picking Fairly From a List of Unknown Size With Reservoir Sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a collection of code samples that allow the selection of random samples from a list of items&lt;/li&gt;
&lt;li&gt;shows different cases from known/unknown sizes, weight vs. unweighted sampling&lt;/li&gt;
&lt;li&gt;additionally presents how to combine multiple lists into a coherent sampling strategy&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-225/weightedreservoirsampling-1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220301172129/https://blog.demofox.org/2022/03/01/picking-fairly-from-a-list-of-unknown-size-with-reservoir-sampling/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0011/01/05/&#34; target=&#34;_blank&#34; id=&#34;Improved Accuracy for Prism-Based Motion Blur&#34;&gt;Improved Accuracy for Prism-Based Motion Blur&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a method for improving the quality of motion blur on dynamic triangulated objects&lt;/li&gt;
&lt;li&gt;it approximates the nonlinear depth, normal, and UV functions&lt;/li&gt;
&lt;li&gt;the adaptive solution is based on prism volume and will adapt based on the motion and features&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-225/prism_motion_blur.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220307082650/https://jcgt.org/published/0011/01/05/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/vulkan-sc-overview&#34; target=&#34;_blank&#34; id=&#34;Vulkan SC: Overview - and how it is different from the Vulkan you already know&#34;&gt;Vulkan SC: Overview - and how it is different from the Vulkan you already know&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents Vulkan for Safety-Critical applications&lt;/li&gt;
&lt;li&gt;presents how Vulkan SC 1.0 differes from Vulkan 1.2&lt;/li&gt;
&lt;li&gt;main differences are pipeline lading and more rigid memory allocation requirements&lt;/li&gt;
&lt;li&gt;all pipelines need to be compiled ahead of time into caches. No runtime compilation is allowed&lt;/li&gt;
&lt;li&gt;provides tools to inspect the compiler cache outputs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-225/2022-blog-Vulkan-SC-Offline-Compiled-Pipelines.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220301152402/https://www.khronos.org/blog/vulkan-sc-overview&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=UARrOsNPviA&#34; target=&#34;_blank&#34; id=&#34;Beyond Sand &amp;amp; Spice: The VFX of Dune | DNEG Deep Dives&#34;&gt;Beyond Sand &amp;amp; Spice: The VFX of Dune | DNEG Deep Dives&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video panel discussion presents a look at the VFX development for Dune&lt;/li&gt;
&lt;li&gt;discussions about the processes, improvements and the effects of the sand screen compared against classical blue screen techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-225/dune_sand_worm.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pharr.org/matt/blog/2022/03/05/sampling-fp-unit-interval&#34; target=&#34;_blank&#34; id=&#34;Sampling in Floating Point (1/3): The Unit Interval&#34;&gt;Sampling in Floating Point (1/3): The Unit Interval&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a method to uniformly sample floats in the [0, 1) range&lt;/li&gt;
&lt;li&gt;shows how floating-point precision can introduce biasing from integer division&lt;/li&gt;
&lt;li&gt;shows alternative ways that improve the uniformity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-225/float_rnd_error.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220307082728/https://pharr.org/matt/blog/2022/03/05/sampling-fp-unit-interval&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Jhopq2lkzMQ&#34; target=&#34;_blank&#34; id=&#34;[video] Interactive Graphics 16 - Shadow Mapping&#34;&gt;[video] Interactive Graphics 16 - Shadow Mapping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains the concepts required for shadow mapping&lt;/li&gt;
&lt;li&gt;explains the foundational concepts, discussing transformations&lt;/li&gt;
&lt;li&gt;presents how to implement shadow mapping using OpenGL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-225/shadow_mapping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/unai_landa&#34; target=&#34;_blank&#34;&gt;Unai Landa&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 224 - February 27, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-224/</link>
      <pubDate>Sun, 27 Feb 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-224/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0011/01/02/&#34; target=&#34;_blank&#34; id=&#34;Tiling simplex noise and flow noise in two and three dimensions&#34;&gt;Tiling simplex noise and flow noise in two and three dimensions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a tileable implementation of simplex noise for 2D and 3D cases&lt;/li&gt;
&lt;li&gt;discusses quality considerations as well as performance&lt;/li&gt;
&lt;li&gt;code is provided&lt;/li&gt;
&lt;li&gt;additionally provides WebGL examples on how to use the noise to create desired results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-224/simplex_noise.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220222133046/https://jcgt.org/published/0011/01/02/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0011/01/01/&#34; target=&#34;_blank&#34; id=&#34;Real-time Shading with Free-form Planar Area Lights using Linearly Transformed Cosines&#34;&gt;Real-time Shading with Free-form Planar Area Lights using Linearly Transformed Cosines&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper proposed a real-time shading calculation for area lights defined by cubic Bezier curves&lt;/li&gt;
&lt;li&gt;extends the polygonal area lights via linearly transformed cosines techniques&lt;/li&gt;
&lt;li&gt;sample code is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-224/area_lights_cosine.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220218145051/https://jcgt.org/published/0011/01/01/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/using-semaphore-and-memory-sharing-extensions-for-vulkan-interop-with-opencl/&#34; target=&#34;_blank&#34; id=&#34;Using Semaphore and Memory Sharing Extensions for Vulkan Interop with NVIDIA OpenCL&#34;&gt;Using Semaphore and Memory Sharing Extensions for Vulkan Interop with NVIDIA OpenCL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a new set of OpenCL and Vulkan extensions to allow interaction between the APIs&lt;/li&gt;
&lt;li&gt;shows how to use the extensions to import semaphores, memory, and images between OpenCL and Vulkan&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-224/OpenCL-Vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220225141124/https://developer.nvidia.com/blog/using-semaphore-and-memory-sharing-extensions-for-vulkan-interop-with-opencl/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=J5Tqvs6RzGs&#34; target=&#34;_blank&#34; id=&#34;[video] Clipping and viewport mapping in OpenGL&#34;&gt;[video] Clipping and viewport mapping in OpenGL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains the process that vertices passthrough after vertex processing&lt;/li&gt;
&lt;li&gt;shows how vertices are projected onto the screen, clipped to the window&lt;/li&gt;
&lt;li&gt;additionally shows how the mapping onto the viewport is archived and how it can be used to have multiple viewports&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-224/viewport_clipping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.lunarg.com/wp-content/uploads/2022/02/FEB-2022-Sr.-Compiler-Software-Engineer-.pdf&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Compiler Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Fort Collins, Colorado, US, or remote&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;LunarG, a US-based, independent software consultancy, is looking for talented compiler engineers to help us deliver world-class, 3D-graphics solutions.&lt;/p&gt;

&lt;p&gt;Our compiler experts create optimizations and enhancements to compiler modules used in GPUs. You&amp;rsquo;ll be provided with the opportunity to work on an interesting variety of technologies. Our projects range from open source to custom development for a diverse group of clients across the Gaming, VR/AR, and Consumer Electronics markets. We pay competitively, offer strong bonuses, and foster a flexible and supportive work environment &amp;ndash; making LunarG a great place to work.&lt;/p&gt;

&lt;p&gt;If interested, contact Karen Ghavam at &lt;a href=&#34;mailto:jobs@lunarg.com&#34; target=&#34;_blank&#34;&gt;jobs@lunarg.com&lt;/a&gt;&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/LunarG.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;lunarg_week_223&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1755_untangling_direct3d_12_memory_heap_types_and_pools&#34; target=&#34;_blank&#34; id=&#34;Untangling Direct3D 12 Memory Heap Types and Pools&#34;&gt;Untangling Direct3D 12 Memory Heap Types and Pools&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how GPU memory is exposed to D3D12 application developers&lt;/li&gt;
&lt;li&gt;presents a detailed view into how heap types are only a convenient high-level summary and how they map onto heap properties&lt;/li&gt;
&lt;li&gt;shows how to get access to memory budgets, available memory and how it changes with integrated and external GPUs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-224/Untangling_Direct3D12_Memory.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220226082710/https://asawicki.info/news_1755_untangling_direct3d_12_memory_heap_types_and_pools&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.esper.io/android-dessert-bites-14-gpu-driver-updates-3819534/&#34; target=&#34;_blank&#34; id=&#34;Why you can’t update Android’s GPU drivers like on your PC&#34;&gt;Why you can’t update Android’s GPU drivers like on your PC&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of the Graphics driver development model on Android devices&lt;/li&gt;
&lt;li&gt;discusses Google and OEM initiatives to improve the situation and what problems need to be solved&lt;/li&gt;
&lt;li&gt;presents a look at how emulators can load custom user-mode drivers to resolve driver limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-224/ARM-Mali-G78-versus-Qualcomm-Adreno-660.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220225174233/https://blog.esper.io/android-dessert-bites-14-gpu-driver-updates-3819534/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.polymonster.co.uk/blog/bulding-new-engine-in-rust-2&#34; target=&#34;_blank&#34; id=&#34;Building a new graphics engine in Rust - Part 2&#34;&gt;Building a new graphics engine in Rust - Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the authors&amp;rsquo; API decisions while developing a D3D12 based graphics engine using Rust&lt;/li&gt;
&lt;li&gt;shows why API decisions are made as well as what difficulties were encountered during development&lt;/li&gt;
&lt;li&gt;shows that Rust developers still need to be very careful when interacting with unsafe D3D12 calls&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-224/wall-of-green.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220303083403/https://www.polymonster.co.uk/blog/bulding-new-engine-in-rust-2&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=5v6tvkb63XU&#34; target=&#34;_blank&#34; id=&#34;[video] Random Noise - Shader Graph Basics - Episode 35&#34;&gt;[video] Random Noise - Shader Graph Basics - Episode 35&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains the concept of a noise hash&lt;/li&gt;
&lt;li&gt;allows random number generations from other data sources&lt;/li&gt;
&lt;li&gt;applies the concept as part of an interior Mapping effect to allow randomized rooms inside of a building&lt;/li&gt;
&lt;li&gt;presents the concepts inside of UE4 and Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-224/interior_mapping_noise_hash.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=b0AayhCO7s8&#34; target=&#34;_blank&#34; id=&#34;[video] Live Coding and Alien Orb - Modeling &amp;amp; Shadows&#34;&gt;[video] Live Coding and Alien Orb - Modeling &amp;amp; Shadows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents a coding session of an extraterrestrial inspired Orb object&lt;/li&gt;
&lt;li&gt;shows the modeling and shadowing technique based on Signed Distance Fields&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-224/art_of_code_orb.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.bencloward.com/resources_books.shtml&#34; target=&#34;_blank&#34; id=&#34;Ben Cloward - book recommendations&#34;&gt;Ben Cloward - book recommendations&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents his list of recommended books for technical artists&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-224/book_pro7.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220227015231/https://www.bencloward.com/resources_books.shtml&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/robert-wallis&#34; target=&#34;_blank&#34;&gt;Robert Wallis&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 223 - February 20, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-223/</link>
      <pubDate>Sun, 20 Feb 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-223/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=wawf7Am6xy0&#34; target=&#34;_blank&#34; id=&#34;[video] Interactive Graphics 12 - The Rendering Equation&#34;&gt;[video] Interactive Graphics 12 - The Rendering Equation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video lectures cover the history and motivation of the rendering equation&lt;/li&gt;
&lt;li&gt;discusses all components that form the equation, the effects of the components&lt;/li&gt;
&lt;li&gt;additionally presents the generalized form that also covers Emissive material, BSDF, Sub-surface scattering, Refractions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-223/rendering_equation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://kvark.github.io/naga/shader/2022/02/17/shader-translation-benchmark.html&#34; target=&#34;_blank&#34; id=&#34;Shader translation benchmark&#34;&gt;Shader translation benchmark&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a performance benchmark of the naga shader translation system&lt;/li&gt;
&lt;li&gt;presents comparisons for translations between different shading languages and compares against other translators&lt;/li&gt;
&lt;li&gt;includes comparisons against tint, Glslang, and SPIRV-Cross&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-223/shader_translation_naga.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220219192227/https://kvark.github.io/naga/shader/2022/02/17/shader-translation-benchmark.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://jobs.lever.co/runway/0d82d0a2-6dec-45c0-ad12-d17ac3887d25&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Web Graphics Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;New York / Remote&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;We believe that the future of media creation is collaborative and accessible. We&amp;rsquo;re looking for a strong engineer with the right mindset of craftsmanship and experimentation to help us solve those challenges. You’ll be working closely with our frontend engineering and design teams to develop high-performance graphics primitives to power Runway’s video and image synthesis interfaces&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/runwayml.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;runwayml_week_223&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/procedural-meshes/cube-sphere/&#34; target=&#34;_blank&#34; id=&#34;Cube Sphere Going from Cube to Sphere&#34;&gt;Cube Sphere Going from Cube to Sphere&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses an alternative way to procedurally generate spheres from a cube base division&lt;/li&gt;
&lt;li&gt;presents how alternative distributions can improve the uniformity of the point distribution&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-223/sphere_quad.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220218122138/https://catlikecoding.com/unity/tutorials/procedural-meshes/cube-sphere/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/lunarg-releases-new-sdks/&#34; target=&#34;_blank&#34; id=&#34;LunarG Releases New Vulkan 1.3.204.0 SDKs with Profiles Toolset and New Extensions&#34;&gt;LunarG Releases New Vulkan 1.3.204.0 SDKs with Profiles Toolset and New Extensions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new Vulkan SDK updates allows application developers to create their own profiles&lt;/li&gt;
&lt;li&gt;can be used to define a standard set of extensions and capabilities that should be simulated&lt;/li&gt;
&lt;li&gt;could be used to restrict all developers to be able to test on min-spec hardware independent of the hardware in the machine&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-223/Vulkan-logo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220215172242/https://www.lunarg.com/lunarg-releases-new-sdks/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/events/a-vulkanised-webinar-march-2022&#34; target=&#34;_blank&#34; id=&#34;Exploring the Vulkan 1.3 Software Development Kit (SDK)&#34;&gt;Exploring the Vulkan 1.3 Software Development Kit (SDK)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Vulkan webinars about Vulkan 1.3 on March 10th&lt;/li&gt;
&lt;li&gt;covering Validation Layer Performance and Vulkan Profiles Toolset&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-223/Vulkanized-SDK-Event.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220216190821/https://www.khronos.org/events/a-vulkanised-webinar-march-2022&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alain.xyz/blog/a-review-of-shader-languages&#34; target=&#34;_blank&#34; id=&#34;A Review of Shader Languages&#34;&gt;A Review of Shader Languages&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the updated article presents a comparison of HLSL, GLSL, MSL, and WGSL&lt;/li&gt;
&lt;li&gt;compares the syntax, resource binding, and shader interface&lt;/li&gt;
&lt;li&gt;also shows how to compile shaders ahead of time, during runtime&lt;/li&gt;
&lt;li&gt;additionally shows how to transpile between the different languages&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-223/graphics_pipeline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220217040015/https://alain.xyz/blog/a-review-of-shader-languages&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.lunarg.com/wp-content/uploads/2022/02/FEB-2022-Sr.-Compiler-Software-Engineer-.pdf&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Compiler Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Fort Collins, Colorado, US, or remote&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;LunarG, a US-based, independent software consultancy, is looking for talented compiler engineers to help us deliver world-class, 3D-graphics solutions.&lt;/p&gt;

&lt;p&gt;Our compiler experts create optimizations and enhancements to compiler modules used in GPUs. You&amp;rsquo;ll be provided with the opportunity to work on an interesting variety of technologies. Our projects range from open source to custom development for a diverse group of clients across the Gaming, VR/AR, and Consumer Electronics markets. We pay competitively, offer strong bonuses, and foster a flexible and supportive work environment &amp;ndash; making LunarG a great place to work.&lt;/p&gt;

&lt;p&gt;If interested, contact Karen Ghavam at &lt;a href=&#34;mailto:jobs@lunarg.com&#34; target=&#34;_blank&#34;&gt;jobs@lunarg.com&lt;/a&gt;&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/LunarG.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;lunarg_week_223&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=nF4X9BIUzx0&#34; target=&#34;_blank&#34; id=&#34;[video] Modern OpenGL - Compute Shaders&#34;&gt;[video] Modern OpenGL - Compute Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains the necessary concepts to use compute-shaders with OpenGL&lt;/li&gt;
&lt;li&gt;starting with simple examples, it explains the logic, how to load and execute compute-shaders&lt;/li&gt;
&lt;li&gt;covers how to improve performance, communicate and store results in memory&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-223/compute_shader_patterns.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2022/02/15/light-transport-matrices-svd-spectral-analysis-and-matrix-completion/&#34; target=&#34;_blank&#34; id=&#34;Light transport matrices, SVD, spectral analysis, and matrix completion&#34;&gt;Light transport matrices, SVD, spectral analysis, and matrix completion&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents light transport matrices and how they relate to light transport concepts&lt;/li&gt;
&lt;li&gt;expressed this way, computing incident lighting becomes matrix-vector multiplication&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-223/singular_decomposition.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220216073137/https://bartwronski.com/2022/02/15/light-transport-matrices-svd-spectral-analysis-and-matrix-completion/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/updates-in-graphics-and-gaming/&#34; target=&#34;_blank&#34; id=&#34;Updates in Graphics and Gaming&#34;&gt;Updates in Graphics and Gaming&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a new windows insider feature that will allow DX10/DX11 games to take advantage of the DXGI flip-model&lt;/li&gt;
&lt;li&gt;feature is available by default on DX12 games, but older games can take advantage of it from a Windows level opt-in toggle&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-223/System-OWG-On.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220220173833/https://devblogs.microsoft.com/directx/updates-in-graphics-and-gaming/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/gfxprogrammer&#34; target=&#34;_blank&#34;&gt;Ken Russell&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 222 - February 13, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-222/</link>
      <pubDate>Sun, 13 Feb 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-222/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/in-the-works-hlsl-shader-model-6-7/&#34; target=&#34;_blank&#34; id=&#34;In the works: HLSL Shader Model 6.7&#34;&gt;In the works: HLSL Shader Model 6.7&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents the new features of shader model 6.7&lt;/li&gt;
&lt;li&gt;improved texture operations such as Raw Gather (unmodified retrieval of the 4 samples from bilinear sampling)&lt;/li&gt;
&lt;li&gt;writable MSAA textures, quad-level operations&lt;/li&gt;
&lt;li&gt;additionally introduces programmable offsets for load and store from runtime variables instead of compile-time constants&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-222/dx12.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220211093211/https://devblogs.microsoft.com/directx/in-the-works-hlsl-shader-model-6-7/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.landontownsend.com/single-post/super-imposter-shader-my-journey-to-make-a-high-quality-imposter-shader&#34; target=&#34;_blank&#34; id=&#34;Super Imposter shader: my journey to make a high quality imposter shader&#34;&gt;Super Imposter shader: my journey to make a high quality imposter shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the development process of using a texture-based imposter system using raymarching&lt;/li&gt;
&lt;li&gt;shows the different steps in the development process, quality improvements along the way&lt;/li&gt;
&lt;li&gt;additionally discusses what ideas the author tried, what did and didn&amp;rsquo;t work, and discusses why they didn&amp;rsquo;t work&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-222/imposters.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220211153115/https://www.landontownsend.com/single-post/super-imposter-shader-my-journey-to-make-a-high-quality-imposter-shader&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=12k_frqw7tM&#34; target=&#34;_blank&#34; id=&#34;[video] Real-Time Ray Tracing | RTX ON in Vulkan | Vulkan Lecture Series Ep. 6, Real-Time Rendering Course&#34;&gt;[video] Real-Time Ray Tracing | RTX ON in Vulkan | Vulkan Lecture Series Ep. 6, Real-Time Rendering Course&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Video lecture series of the real-time rendering course at TU Wien&lt;/li&gt;
&lt;li&gt;this part covers how to use hardware-accelerated ray tracing from Vulkan&lt;/li&gt;
&lt;li&gt;covers everything required to render a static scene, accelerations, ray traversal, shader bindings as well as processing hits&lt;/li&gt;
&lt;li&gt;additionally presents ray queries to allow ray tracing from any shader stage and discusses the limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-222/vulkan_lecture_tu_wien.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://the-witness.net/news/2022/02/a-shader-trick/&#34; target=&#34;_blank&#34; id=&#34;A Shader Trick&#34;&gt;A Shader Trick&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses a problem with effects caused by loss of floating-point precision when game-time is growing&lt;/li&gt;
&lt;li&gt;presents a method to reset periodic timers cleanly and still allow for continuous motion&lt;/li&gt;
&lt;li&gt;the suggested solution uses integer multipliers with required precision to make resetting motions natural from an effect tweaking perspective&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-222/wittness_header.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220211113320/http://the-witness.net/news/2022/02/a-shader-trick/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://rapidcompact.com/career/core-3d-software-engineer/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior 3D Software Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Darmstadt (GER), alternatively remote&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;You are helping our core team to develop cutting-edge 3D data optimization technology, being used in production pipelines to process millions of 3D data sets each year, fully-automatically. You are performing research on 3D mesh processing, texture baking, UV mapping, optimization algorithms and ML-based algorithms for 3D data optimization and QA.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Rapid_Compact_logo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;core3d_week_221&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-121-11-02-2022/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 121 (11.02.2022)&#34;&gt;Technically Art: Issue 121 (11.02.2022)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of tweets about tech art, VFX, and related topics&lt;/li&gt;
&lt;li&gt;showcases of in-progress developments and experiments&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-222/technically_art_template_121.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220212001342/https://halisavakis.com/technically-art-issue-121-11-02-2022/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=yrFo1_Izlk0&#34; target=&#34;_blank&#34; id=&#34;[video] How Shaders Work (in OpenGL) | How to Code Minecraft Ep. 3&#34;&gt;[video] How Shaders Work (in OpenGL) | How to Code Minecraft Ep. 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video introduction tutorial to shader programming with OpenGL&lt;/li&gt;
&lt;li&gt;provides a conceptual overview of how to author, load, and use shaders GLSL shaders from OpenGL&lt;/li&gt;
&lt;li&gt;discusses vertex transformations required project vertices onto the screen&lt;/li&gt;
&lt;li&gt;shows how to access information from the CPU in shaders&lt;/li&gt;
&lt;li&gt;presents multiple examples to show the practical usage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-222/opengl_shaders.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=bv7vS60qJxg&amp;amp;list=PLplnkTzzqsZS3R5DjmCQsqupu43oS9CFN&#34; target=&#34;_blank&#34; id=&#34;[video] Interactive Graphics 10 - Textures on the GPU&#34;&gt;[video] Interactive Graphics 10 - Textures on the GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video session explains Texture set up for usage from GPU shaders&lt;/li&gt;
&lt;li&gt;covering texture types, addressing, tiling, texture filtering&lt;/li&gt;
&lt;li&gt;shows how to access the data from the GPU and the necessary OpenGL setup steps&lt;/li&gt;
&lt;li&gt;additionally provides an overview of the Mesh Color technique and how to represent it as texture maps&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-222/textures_on_gpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.alexisbreust.fr/2022-ray-tracing-in-10ms-ambient-occlusion.html&#34; target=&#34;_blank&#34; id=&#34;Ray-tracing in 10ms: Ambient occlusion&#34;&gt;Ray-tracing in 10ms: Ambient occlusion&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of using raytracing to generate ambient occlusion&lt;/li&gt;
&lt;li&gt;recaps of ambient occlusion techniques for rasterization, high-level representation of raytracing based implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-222/slow-ray-count-impact.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220204174803/http://www.alexisbreust.fr/2022-ray-tracing-in-10ms-ambient-occlusion.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://omar-shehata.medium.com/webgpu-january-2022-meetup-takeaways-4cbe03d088b1&#34; target=&#34;_blank&#34; id=&#34;WebGPU January 2022 meetup — takeaways&#34;&gt;WebGPU January 2022 meetup — takeaways&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a roundup of WebGPU topics discussed at the January meetup&lt;/li&gt;
&lt;li&gt;contains references to best practices, new extensions as well as community work showcases&lt;/li&gt;
&lt;li&gt;additionally contains information about the state of support across browsers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-222/web_gpu_overview.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220202212334/https://omar-shehata.medium.com/webgpu-january-2022-meetup-takeaways-4cbe03d088b1&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://miketuritzin.com&#34; target=&#34;_blank&#34;&gt;Mike Turitzin&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 221 - February 06, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-221/</link>
      <pubDate>Sun, 06 Feb 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-221/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2022/02/03/Speeding-up-Blender-.obj-export/&#34; target=&#34;_blank&#34; id=&#34;Speeding up Blender .obj export&#34;&gt;Speeding up Blender .obj export&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a walkthrough of the process that leads to the blender obj exporting being sped up by 10x&lt;/li&gt;
&lt;li&gt;shows how to use the Superluminal profiler to spot the problems and iteratively improve the exporter&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-221/obj-export-30splash.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220207124847/https://aras-p.info/blog/2022/02/03/Speeding-up-Blender-.obj-export/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.rastergrid.com/blog/gpu-tech/2022/02/simd-in-the-gpu-world/&#34; target=&#34;_blank&#34; id=&#34;SIMD in the GPU world&#34;&gt;SIMD in the GPU world&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of how SIMD execution models evolved over GPU generations&lt;/li&gt;
&lt;li&gt;presenting how the changes in architecture affect the way shaders would be authored to provide better performance mapping onto the hardware&lt;/li&gt;
&lt;li&gt;defines the standard terms such as swizzling/component masking and wave operations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-221/MultiPrecisionPackedSIMD.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220206142120/https://www.rastergrid.com/blog/gpu-tech/2022/02/simd-in-the-gpu-world/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.yosoygames.com.ar/wp/2022/01/the-road-to-16-bit-floats-gpu-is-paved-with-our-blood/&#34; target=&#34;_blank&#34; id=&#34;The road to 16-bit floats GPU is paved with our blood&#34;&gt;The road to 16-bit floats GPU is paved with our blood&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the state of 16-bit floating-point support in drivers, compilers tools, and hardware&lt;/li&gt;
&lt;li&gt;discusses how to take advantage of the hardware feature&lt;/li&gt;
&lt;li&gt;shows effects and tradeoffs to consider when moving shaders to use 16-bit floats&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-221/BugsEverywhere.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220201001054/https://www.yosoygames.com.ar/wp/2022/01/the-road-to-16-bit-floats-gpu-is-paved-with-our-blood/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2022/02/01/two-low-discrepancy-grids-plus-shaped-sampling-ldg-and-r2-ldg/&#34; target=&#34;_blank&#34; id=&#34;Two Low Discrepancy Grids: Plus Shaped Sampling LDG, and R2 LDG&#34;&gt;Two Low Discrepancy Grids: Plus Shaped Sampling LDG, and R2 LDG&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses more noise distributions functions, presents grid-based noise definitions based on pixel positions alone&lt;/li&gt;
&lt;li&gt;shows the derivation of the noise function&lt;/li&gt;
&lt;li&gt;compares the function against White, Blue, Bayer, and more noise functions&lt;/li&gt;
&lt;li&gt;presents strengths and weaknesses of the distribution&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-221/noisesbig-3.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220207125827/https://blog.demofox.org/2022/02/01/two-low-discrepancy-grids-plus-shaped-sampling-ldg-and-r2-ldg/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://psgraphics.blogspot.com/2022/01/direct-light-2-integrating-shadow-rays.html&#34; target=&#34;_blank&#34; id=&#34;Direct Light 2: integrating shadow rays into a path tracer&#34;&gt;Direct Light 2: integrating shadow rays into a path tracer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents why direct lighting computation should be separated from emitted light&lt;/li&gt;
&lt;li&gt;an approach to separate light emitters from other objects without tracking additional ray logic booleans is presented in the comments&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-221/direct-light-2-shadow-rays.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220131210901/http://psgraphics.blogspot.com/2022/01/direct-light-2-integrating-shadow-rays.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://rapidcompact.com/career/core-3d-software-engineer/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior 3D Software Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Darmstadt (GER), alternatively remote&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;You are helping our core team to develop cutting-edge 3D data optimization technology, being used in production pipelines to process millions of 3D data sets each year, fully-automatically. You are performing research on 3D mesh processing, texture baking, UV mapping, optimization algorithms and ML-based algorithms for 3D data optimization and QA.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Rapid_Compact_logo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;core3d_week_221&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://psgraphics.blogspot.com/2022/02/direct-light-3-what-goes-in-direct.html&#34; target=&#34;_blank&#34; id=&#34;Direct Light 3: what goes in the direct light function?&#34;&gt;Direct Light 3: what goes in the direct light function?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents components are defining the direct lighting component&lt;/li&gt;
&lt;li&gt;shows the integral that needs to be solved, a brief explanation of the different aspects&lt;/li&gt;
&lt;li&gt;discusses problems with the presented technique&lt;/li&gt;
&lt;li&gt;additionally provides suggestions on how to deal with multiple lights&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-221/direct-light-components.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220201162935/http://psgraphics.blogspot.com/2022/02/direct-light-3-what-goes-in-direct.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/2021-vulkan-ecosystem-survey-results-are-in/&#34; target=&#34;_blank&#34; id=&#34;2021 Vulkan Ecosystem Survey Results are in!&#34;&gt;2021 Vulkan Ecosystem Survey Results are in!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Vulkan survey presents a summary of the results and presents what next steps will be taken to address the feedback&lt;/li&gt;
&lt;li&gt;more investment into the Validation layer, macOSX support,  more complete learning materials, and dropping VS2015 support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-221/Vulkan-logo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220203115913/https://www.lunarg.com/wp-content/uploads/2022/01/DEC2021-Vulkan-Ecosystem-Survey-Public-Report-31JAN2022.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=vl4H73MWBn0&#34; target=&#34;_blank&#34; id=&#34;[video] Star Citizen Live: Graphics Engineering Q&amp;amp;A&#34;&gt;[video] Star Citizen Live: Graphics Engineering Q&amp;amp;A&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the developer interview answers a large number of user questions&lt;/li&gt;
&lt;li&gt;discussing the status of the new Vulkan based renderer, dealing with the constant evolution of graphics requirements and effects on the art pipeline,&lt;/li&gt;
&lt;li&gt;many more topics, such as HDR motion blur, are covered&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-221/star_citizen.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=esC1HnyD9Bk&amp;amp;list=PLplnkTzzqsZS3R5DjmCQsqupu43oS9CFN&#34; target=&#34;_blank&#34; id=&#34;[video] Interactive Graphics 08 - Lights &amp;amp; Shading&#34;&gt;[video] Interactive Graphics 08 - Lights &amp;amp; Shading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video lecture presents an introduction explaining how surfaces are light from lights&lt;/li&gt;
&lt;li&gt;shows the components that affect the calculation&lt;/li&gt;
&lt;li&gt;covers the Lambertian, Phong, and Blinn material model&lt;/li&gt;
&lt;li&gt;explains the transformations required to move between spaces, explaining how normals need special treatment&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-221/blinn_phong.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=gnnoPaStVzg&#34; target=&#34;_blank&#34; id=&#34;[video] Skeletal Animation In OpenGL using Assimp - Part 5&#34;&gt;[video] Skeletal Animation In OpenGL using Assimp - Part 5&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the final video of the skeletal animation series using OpenGL and Assimp&lt;/li&gt;
&lt;li&gt;the tutorial series explained the whole process required to load information from the file format, interpret the data, and apply the necessary transformations to get animations in an OpenGL example application&lt;/li&gt;
&lt;li&gt;the last part discusses how to integrate the animation updating into the runtime&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-221/skeletal_animation_series.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://twitter.com/Miamiamia0103/status/1490355292487487494&#34; target=&#34;_blank&#34; id=&#34;FXAA, SSAA, MSAA, and TXAA comic summary&#34;&gt;FXAA, SSAA, MSAA, and TXAA comic summary&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;4 slides for a brief summary of the 4 common anti-aliasing techniques&lt;/li&gt;
&lt;li&gt;presenting the technique summary, discussing strengths and weaknesses&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-221/txaa-summary.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220206215105/https://twitter.com/Miamiamia0103/status/1490355292487487494&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://panagiotis.tsiapkolis.com&#34; target=&#34;_blank&#34;&gt;Panagiotis Tsiapkolis&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 220 - January 30, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-220/</link>
      <pubDate>Sun, 30 Jan 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-220/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1754_direct3d_12_long_way_to_access_data&#34; target=&#34;_blank&#34; id=&#34;Direct3D 12: Long Way to Access Data&#34;&gt;Direct3D 12: Long Way to Access Data&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the flow of data when a CPU generated value is accessed from an HLSL shader&lt;/li&gt;
&lt;li&gt;explaining the differences between the available approaches as well as the implications on memory lifetime&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-220/DX12_Long_way_to_access_data.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220130093321/https://asawicki.info/news_1754_direct3d_12_long_way_to_access_data&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.en.uwa4d.com/2022/01/25/ue5-lumen-implementation-analysis/&#34; target=&#34;_blank&#34; id=&#34;UE5 Lumen Implementation Analysis&#34;&gt;UE5 Lumen Implementation Analysis&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a summary of the Lumen implementation found in UE5 (Unreal Engine 5)&lt;/li&gt;
&lt;li&gt;discusses the offline and runtime stages of Lumen (dynamic GI solution)&lt;/li&gt;
&lt;li&gt;shows the Acceleration Structure tracing approach as well as probe placement&lt;/li&gt;
&lt;li&gt;presents how the scene is represented using MeshCard (Proxy) approximations and distance fields&lt;/li&gt;
&lt;li&gt;additionally shows a detailed walkthrough of all the logical stages that compose the system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-220/lumen_cover.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220130234050/https://blog.en.uwa4d.com/2022/01/25/ue5-lumen-implementation-analysis/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/vulkan-1.3-and-roadmap-2022&#34; target=&#34;_blank&#34; id=&#34;Vulkan 1.3 and Roadmap 2022&#34;&gt;Vulkan 1.3 and Roadmap 2022&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a summary of the features that are mandatory  in Vulkan 1.3&lt;/li&gt;
&lt;li&gt;(removing requirement of render passe, better pipeline creation control, as well as direct buffer addressing support and more )&lt;/li&gt;
&lt;li&gt;additionally introduces the new Vulkan roadmap, this will provide guidance on what hardware/software support the group will focus on&lt;/li&gt;
&lt;li&gt;the 2022 roadmap will require bindless support as well as more consistent subgroup operation support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-220/Vulkan-1.3-White-BG-sml_.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220127053128/https://www.khronos.org/blog/vulkan-1.3-and-roadmap-2022&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://rapidcompact.com/career/core-3d-software-engineer/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Core 3D Software Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Darmstadt (GER), alternatively remote&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;You are helping our core team to develop cutting-edge 3D data optimization technology, being used in production pipelines to process millions of 3D data sets each year, fully-automatically. You are performing research on 3D mesh processing, texture baking, UV mapping, optimization algorithms and ML-based algorithms for 3D data optimization and QA.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Rapid_Compact_logo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;core3d_week_219&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jlekstrand.net/jason/blog/2022/01/in-defense-of-nir/&#34; target=&#34;_blank&#34; id=&#34;In defense of NIR&#34;&gt;In defense of NIR&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the history and evolution of the mesa shader compiler (internal representation) NIR&lt;/li&gt;
&lt;li&gt;discusses the historical reasons and experience of using it instead of LLVM&lt;/li&gt;
&lt;li&gt;presents problems and advantages over a CPU focused IR system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-220/NIR.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220130054128/https://www.jlekstrand.net/jason/blog/2022/01/in-defense-of-nir/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-kernel-profiling-with-the-latest-nsight-compute/&#34; target=&#34;_blank&#34; id=&#34;Advanced Kernel Profiling with the Latest Nsight Compute&#34;&gt;Advanced Kernel Profiling with the Latest Nsight Compute&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the new version of the Nsight Compute allows a better understanding of memory traffic and cache eviction decisions&lt;/li&gt;
&lt;li&gt;additionally adds new guided optimization support that detects unfused floating-point operations as well as uncoalesced memory access&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-220/Nsight-Compute-Figure-4.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/*/https://developer.nvidia.com/blog/advanced-kernel-profiling-with-the-latest-nsight-compute/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://psgraphics.blogspot.com/2022/01/what-is-direct-lighting-next-event.html&#34; target=&#34;_blank&#34; id=&#34;What is direct lighting (next event estimation) in a ray tracer?&#34;&gt;What is direct lighting (next event estimation) in a ray tracer?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article why randomly tracing rays leads to noisy results&lt;/li&gt;
&lt;li&gt;presents the mental model to improve this in a simple scene&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-220/next_event_estimation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220130202218/https://psgraphics.blogspot.com/2022/01/what-is-direct-lighting-next-event.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://docs.google.com/presentation/d/1Q-RCJrZhw9nlZ5py7QxUVgKSyq61awHr2TyIjXxBmI0/edit#slide=id.p&#34; target=&#34;_blank&#34; id=&#34;WebGPU Best Practices&#34;&gt;WebGPU Best Practices&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation contains a collection of best practices when working with WebGPU&lt;/li&gt;
&lt;li&gt;covering compressed textures, debug label usage, data uploading, pipeline creation as well as bind group usage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-220/web_gpu_cover.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=j155J5x6Pq0&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Useful functions for game designers - Cosine Interpolation&#34;&gt;[video] Useful functions for game designers - Cosine Interpolation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains the derivation of Cosine Interpolation&lt;/li&gt;
&lt;li&gt;discusses how the individual components are derived and how they are connected for the final result&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-220/derivation_cosine.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://metalkit.org/&#34; target=&#34;_blank&#34;&gt;Marius Horga&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 219 - January 23, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-219/</link>
      <pubDate>Sun, 23 Jan 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-219/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2022/01/22/shader-tips-and-tricks/&#34; target=&#34;_blank&#34; id=&#34;Shader tips and tricks&#34;&gt;Shader tips and tricks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article contains a collection of 53 tips &amp;amp; tricks to consider when writing shaders&lt;/li&gt;
&lt;li&gt;contains performance advice, common pitfalls, as well as optimization advice&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-219/longtail_full_fixed.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220122195318/https://interplayoflight.wordpress.com/2022/01/22/shader-tips-and-tricks/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pixelmager.github.io/linelight/banding&#34; target=&#34;_blank&#34; id=&#34;Removing Banding in Linelight&#34;&gt;Removing Banding in Linelight&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses how noise can help to reduce banding in light gradients&lt;/li&gt;
&lt;li&gt;presents the effects of noise on the visual perceptions&lt;/li&gt;
&lt;li&gt;shows how to implement the required noise operations in a Unity shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-219/02after_enhance.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220124154444/https://pixelmager.github.io/linelight/banding&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=0me3guauqOU&#34; target=&#34;_blank&#34; id=&#34;[video] The Unreasonable Effectiveness of JPEG: A Signal Processing Approach&#34;&gt;[video] The Unreasonable Effectiveness of JPEG: A Signal Processing Approach&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a great introduction to image compression topics&lt;/li&gt;
&lt;li&gt;covering Discrete Cosine Transform (DCT), YCbCr Color space as well as Run-length/Huffman Encoding&lt;/li&gt;
&lt;li&gt;explained in the context of jpeg but applicable to other data compression problems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-219/jpeg_encoding.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://rapidcompact.com/career/core-3d-software-engineer/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Core 3D Software Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Darmstadt (GER), alternatively remote&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;You are helping our core team to develop cutting-edge 3D data optimization technology, being used in production pipelines to process millions of 3D data sets each year, fully-automatically. You are performing research on 3D mesh processing, texture baking, UV mapping, optimization algorithms and ML-based algorithms for 3D data optimization and QA.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Rapid_Compact_logo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;core3d_week_219&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.mamoniem.com/behind-the-pretty-frames-god-of-war/&#34; target=&#34;_blank&#34; id=&#34;Behind the Pretty Frames: God of War&#34;&gt;Behind the Pretty Frames: God of War&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the WIP article presents a walkthrough of a frame of God of War (PC version)&lt;/li&gt;
&lt;li&gt;explaining wind and GPU particle simulation&lt;/li&gt;
&lt;li&gt;shows how snow deformation has been achieved in more detail&lt;/li&gt;
&lt;li&gt;additionally presents a view at how UI rendering is mainly implemented with grey-scaled source textures&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-219/gbuffer_pass.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220119125615/http://www.mamoniem.com/behind-the-pretty-frames-god-of-war/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/visualizing-vgpr-pressure-with-rga-2-6/&#34; target=&#34;_blank&#34; id=&#34;Visualizing VGPR Pressure with Radeon™ GPU Analyzer 2.6&#34;&gt;Visualizing VGPR Pressure with Radeon™ GPU Analyzer 2.6&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the new VGPR Pressure Visualization view&lt;/li&gt;
&lt;li&gt;the tool can show how many VGPRs are used on each line and how usage needs to be reduced to see a benefit&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-219/disassembly_view_column.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220124153059/https://gpuopen.com/learn/visualizing-vgpr-pressure-with-rga-2-6/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://noiseposti.ng/posts/2022-01-16-The-Perlin-Problem-Moving-Past-Square-Noise.html&#34; target=&#34;_blank&#34; id=&#34;The Perlin Problem: Moving Past Square Noise&#34;&gt;The Perlin Problem: Moving Past Square Noise&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the shortcomings of Perlin noise and what causes these&lt;/li&gt;
&lt;li&gt;shows how to implement simplex noise that can archive better results&lt;/li&gt;
&lt;li&gt;additionally discusses how to improve the information that is shared with the community at large to improve teaching and information sharing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-219/grid_rotated.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220117234044/https://noiseposti.ng/posts/2022-01-16-The-Perlin-Problem-Moving-Past-Square-Noise.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=c3voyiojWl4&#34; target=&#34;_blank&#34; id=&#34;[video] Tech Focus: Nvidia DLDSR - What Does AI Downsampling Actually Do?&#34;&gt;[video] Tech Focus: Nvidia DLDSR - What Does AI Downsampling Actually Do?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents super sampling techniques&lt;/li&gt;
&lt;li&gt;showing the issues introduced if super-sampling is done with a scaling factor that is not evenly dividable to the downsample target&lt;/li&gt;
&lt;li&gt;presents how the NVidia DLDSR improves upon image quality&lt;/li&gt;
&lt;li&gt;shows the comparison of different settings against native 4x downsampling as well native 1080p images&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-219/kratos_scaling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=_qa5iWdfNKg&#34; target=&#34;_blank&#34; id=&#34;[video] Talk - Practical Pigment Mixing for Digital Painting&#34;&gt;[video] Talk - Practical Pigment Mixing for Digital Painting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents the novel mixbox model for natural color mixing that matches the painting of oil colors&lt;/li&gt;
&lt;li&gt;explains how color mixing in digital software behaves&lt;/li&gt;
&lt;li&gt;presents why previous models were impractical to be implemented and how it was improved&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-219/color_mixing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/radeon-gpu-profiler-1-12-released/&#34; target=&#34;_blank&#34; id=&#34;Radeon™ GPU Profiler 1.12 released&#34;&gt;Radeon™ GPU Profiler 1.12 released&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the new debug views that can visualize the wavefront execution patterns&lt;/li&gt;
&lt;li&gt;able to show execution latencies for each instruction&lt;/li&gt;
&lt;li&gt;show how many cycles of latency could be hidden by SALU and VALU work&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-219/rgp_instruction_timing_1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220124153412/https://gpuopen.com/learn/radeon-gpu-profiler-1-12-released/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/rmv-directx-named-resources/&#34; target=&#34;_blank&#34; id=&#34;Viewing DirectX® 12 Named Resources with Radeon™ Memory Visualizer 1.3&#34;&gt;Viewing DirectX® 12 Named Resources with Radeon™ Memory Visualizer 1.3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to show resource name usage in the AMD memory visualization&lt;/li&gt;
&lt;li&gt;additionally contains a Troubleshooting section as Event Tracing for Windows (ETW) is required to collect the necessary information&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-219/RMV_Memory_Leak_Detector_in_Snapshot.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220124153241/https://gpuopen.com/learn/rmv-directx-named-resources/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/robert-wallis&#34; target=&#34;_blank&#34;&gt;Robert Wallis&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 218 - January 16, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-218/</link>
      <pubDate>Sun, 16 Jan 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-218/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.reedbeta.com/blog/texture-gathers-and-coordinate-precision/&#34; target=&#34;_blank&#34; id=&#34;Texture Gathers and Coordinate Precision&#34;&gt;Texture Gathers and Coordinate Precision&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a deep dive into a gather related artifact&lt;/li&gt;
&lt;li&gt;discusses texture filtering, how fixed point is involved and how many bits of sub-pixel precision is used on different GPU vendors&lt;/li&gt;
&lt;li&gt;shows the necessary parts in the Vulkan and D3D spec to understand why an offset is required to match the hardware behavior&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-218/gather-and-frac.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220116112600/https://www.reedbeta.com/blog/texture-gathers-and-coordinate-precision/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://nvlabs.github.io/instant-ngp/&#34; target=&#34;_blank&#34; id=&#34;Instant Neural Graphics Primitives with a Multiresolution Hash Encoding&#34;&gt;Instant Neural Graphics Primitives with a Multiresolution Hash Encoding&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a multi-resolution hash table of trainable feature vectors&lt;/li&gt;
&lt;li&gt;the presented system focuses on the task-independent encoding of relevant details and can be applied to a variety of tasks&lt;/li&gt;
&lt;li&gt;shows the ideas applied Gigapixel images, Neural SDF, NeRF, as well as Neural volumes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-218/training-encoding.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220116032628/https://nvlabs.github.io/instant-ngp/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=tsE7Tqlv8DQ&#34; target=&#34;_blank&#34; id=&#34;[video] Triplanar Projection Improvements - Shader Graph Basics - Episode 29&#34;&gt;[video] Triplanar Projection Improvements - Shader Graph Basics - Episode 29&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video improves the tri-planar projection shader (allows texture mapping without UVs)&lt;/li&gt;
&lt;li&gt;shows how to make sure that texture directions are correct on all sides of the projection&lt;/li&gt;
&lt;li&gt;additionally shows how to convert the node graphs into a single node to make it usable from other shaders more easily&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-218/triplanar-projection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=UVCuWQV_-Es&#34; target=&#34;_blank&#34; id=&#34;[video] Interactive Graphics 01 - Introduction&#34;&gt;[video] Interactive Graphics 01 - Introduction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduction to a university course that covers the fundamental concepts of real-time rendering on the GPU&lt;/li&gt;
&lt;li&gt;the course is project-based, explaining the concepts and applying them in OpenGL examples&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-218/interactive_computer_graphics_course.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=4S6G-zenbFM&#34; target=&#34;_blank&#34; id=&#34;[video] Useful functions for game designers - Lagrange Interpolation&#34;&gt;[video] Useful functions for game designers - Lagrange Interpolation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how to derive the Lagrange Interpolation functions&lt;/li&gt;
&lt;li&gt;presents how to use desmos to visualize the derivation process&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-218/laplace_curve.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-119-14-01-2022/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 119 (14.01.2022)&#34;&gt;Technically Art: Issue 119 (14.01.2022)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an extensive collection of a large variety of tech art tweets collected into a single post&lt;/li&gt;
&lt;li&gt;contains VFX, demos, art showcases, and a large number of exciting demonstrations&lt;/li&gt;
&lt;li&gt;also contains an example that visualizes GPU execution patterns&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-218/technically_art_template_119.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=mY2ozPHn0w4&#34; target=&#34;_blank&#34; id=&#34;[video] New Weather Simulator: Almost Perfect!&#34;&gt;[video] New Weather Simulator: Almost Perfect!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Two Minute Papers video summary of the Weatherscapes: Nowcasting Heat Transfer and Water Continuity paper&lt;/li&gt;
&lt;li&gt;shows a new model to simulate weather effects using the microphysics of water&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-218/weather_simulation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lesleylai.info/en/vk-khr-dynamic-rendering/&#34; target=&#34;_blank&#34; id=&#34;VK_KHR_dynamic_rendering tutorial&#34;&gt;VK_KHR_dynamic_rendering tutorial&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial shows how to use the VK_KHR_dynamic_rendering extension in Vulkan&lt;/li&gt;
&lt;li&gt;shows the steps required to load the extension, use it, and how it affects related components such as pipeline creation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-218/renderpass_in_trash.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://m.twitch.tv/videos/1259390369&#34; target=&#34;_blank&#34; id=&#34;[video] Shader Coding for Beginners 2022 [Part 1]&#34;&gt;[video] Shader Coding for Beginners 2022 [Part 1]&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the first part of a shader coding course (6 hours!) focusing on textual shaders using Unity&lt;/li&gt;
&lt;li&gt;explaining the fundamentals of the rendering pipeline, focusing on applicable knowledge across engines&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-218/shader_course.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://panagiotis.tsiapkolis.com&#34; target=&#34;_blank&#34;&gt;Panagiotis Tsiapkolis&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 217 - January 9, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-217/</link>
      <pubDate>Sun, 09 Jan 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-217/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=un-lvuZpeMM&#34; target=&#34;_blank&#34; id=&#34;[video] PhD Thesis Fast Forward 2021&#34;&gt;[video] PhD Thesis Fast Forward 2021&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video contains the summary and overviews of Siggraph PhD thesis&lt;/li&gt;
&lt;li&gt;covering a large spectrum of resources from collision sounds, AR prototyping, Subsurface scattering and more&lt;/li&gt;
&lt;li&gt;each summary is less than 3 minutes long&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-217/ar_siggraph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://thisistian.github.io/publication/cache-and-bandwidth-aware-real-time-subsurface-scattering/&#34; target=&#34;_blank&#34; id=&#34;Cache and Bandwidth Aware Real-time Subsurface Scattering&#34;&gt;Cache and Bandwidth Aware Real-time Subsurface Scattering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the PhD thesis provides an overview of Subsurface scattering techniques and proposes a taxonomy of techniques&lt;/li&gt;
&lt;li&gt;the thesis introduces a real-time adaptive sampling algorithm for Monte Carlo sampling using temporal reuse&lt;/li&gt;
&lt;li&gt;additionally shows how to counteract oversampling in dynamic scenes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-217/MetaHuman.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://youtu.be/un-lvuZpeMM?t=942&#34; style=&#34;color:white;&#34;&gt;video-summary &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220109235434/https://thisistian.github.io/publication/cache-and-bandwidth-aware-real-time-subsurface-scattering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@jcaballol94/sphere-scene-in-unity-urp-627a71a5fa4e&#34; target=&#34;_blank&#34; id=&#34;Sphere Scene in Unity URP&#34;&gt;Sphere Scene in Unity URP&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to set up an effect that allows meshes to appear cut at the boundaries of a sphere&lt;/li&gt;
&lt;li&gt;shows how to not render pixels outside the sphere and deal with special effects for the inside of objects&lt;/li&gt;
&lt;li&gt;code implementation is done using Unity
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-217/sphere_world.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220105095816/https://medium.com/@jcaballol94/sphere-scene-in-unity-urp-627a71a5fa4e&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=7YPPFIqUN84&#34; target=&#34;_blank&#34; id=&#34;[video] You Might Be Thinking About Shader Performance Wrong&#34;&gt;[video] You Might Be Thinking About Shader Performance Wrong&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video focuses on visualizations of GPU performance considerations&lt;/li&gt;
&lt;li&gt;focusing on memory latency hiding and memory access optimizations in the context of a water simulation system&lt;/li&gt;
&lt;li&gt;one small correction, the author says cache coherency but actually means cache locality&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-217/gpu_performance.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.arm.com/solutions/graphics-and-gaming/arm-mali-gpu-training&#34; target=&#34;_blank&#34; id=&#34;Mali GPU Training&#34;&gt;Mali GPU Training&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of video resources for GPU development&lt;/li&gt;
&lt;li&gt;contains generic resources such as an explanation of GPU rendering pipeline, and best practices&lt;/li&gt;
&lt;li&gt;provides information about the Mali tools and optimizations that are hardware-specific
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-217/mali_gpu_training.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220107161542/https://developer.arm.com/solutions/graphics-and-gaming/arm-mali-gpu-training&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=pb6KZPaDBBY&#34; target=&#34;_blank&#34; id=&#34;[video] Skeletal Animation In OpenGL using Assimp - Part 2&#34;&gt;[video] Skeletal Animation In OpenGL using Assimp - Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the second part of the series explains the mapping between vertices and bones&lt;/li&gt;
&lt;li&gt;focuses on explaining a step to step approach that visualizes the data to allow functionality confirmation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-217/skeletal_animation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2022/01/04/insider-guide-to-tech-interviews/&#34; target=&#34;_blank&#34; id=&#34;Insider guide to tech interviews&#34;&gt;Insider guide to tech interviews&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an in-depth discussion of the interview process for more experienced developers&lt;/li&gt;
&lt;li&gt;discussing the different interview styles, kinds of questions, tasks&lt;/li&gt;
&lt;li&gt;additionally provides an insight into how to discuss previous work, interview process, and clear communication about expectations
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-217/interview.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220105095140/https://bartwronski.com/2022/01/04/insider-guide-to-tech-interviews/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.danielfortes.com&#34; target=&#34;_blank&#34;&gt;Daniel Fortes&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 216 - January 2, 2022</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-216/</link>
      <pubDate>Sun, 02 Jan 2022 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-216/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.elopezr.com/temporal-aa-and-the-quest-for-the-holy-trail/&#34; target=&#34;_blank&#34; id=&#34;Temporal AA and the quest for the Holy Trail&#34;&gt;Temporal AA and the quest for the Holy Trail&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a very detailed look at temporal anti-aliasing&lt;/li&gt;
&lt;li&gt;shows each component of the technique visually and explains how it solves the problem&lt;/li&gt;
&lt;li&gt;provides alternative solutions and presents a link to the sources of the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-216/motion_vectors_taa.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220102143650/https://www.elopezr.com/temporal-aa-and-the-quest-for-the-holy-trail/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jendrikillner.com/post/d3d12-learning-plan/&#34; target=&#34;_blank&#34; id=&#34;Reader Question Answered 1 - Learning D3D12&#34;&gt;Reader Question Answered 1 - Learning D3D12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a high-level learning guide for getting started with  D3D12&lt;/li&gt;
&lt;li&gt;providing a starting point for getting started quickly as well as detailed learning articles&lt;/li&gt;
&lt;li&gt;contains sources for performance advice from the different manufacturers&lt;/li&gt;
&lt;li&gt;additionally contains information where to find the official D3D12 specification to clarify uncertainties&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-216/d3d12_article.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220101233135/https://www.jendrikillner.com/post/d3d12-learning-plan/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://alextardif.com/LearningGraphics.html&#34; target=&#34;_blank&#34; id=&#34;Finding Your Home in Game Graphics Programming&#34;&gt;Finding Your Home in Game Graphics Programming&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a high-level view of the graphics programming world&lt;/li&gt;
&lt;li&gt;shows that the specialization has separated into multiple distinct sub-categories&lt;/li&gt;
&lt;li&gt;presents resources for getting started in the different specializations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-216/LearningGraphics.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220102042617/http://alextardif.com/LearningGraphics.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2022/01/01/interleaved-gradient-noise-a-different-kind-of-low-discrepancy-sequence/&#34; target=&#34;_blank&#34; id=&#34;Interleaved Gradient Noise: A Different Kind of Low Discrepancy Sequence&#34;&gt;Interleaved Gradient Noise: A Different Kind of Low Discrepancy Sequence&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the characteristics of IGN(Interleaved Gradient Noise) that make it a good fit for TAA (Temporal Antialiasing Techniques)&lt;/li&gt;
&lt;li&gt;compares against Bayer, white and blue noise&lt;/li&gt;
&lt;li&gt;showing visual explanations to show the Low Discrepancy properties&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-216/noisesbig.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20220101171227/https://blog.demofox.org/2022/01/01/interleaved-gradient-noise-a-different-kind-of-low-discrepancy-sequence/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2021/12/28/notes-on-occlusion-and-directionality-in-image-based-lighting/&#34; target=&#34;_blank&#34; id=&#34;Notes on occlusion and directionality in image based lighting&#34;&gt;Notes on occlusion and directionality in image based lighting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the findings of the importance of directionality and occlusion for IBL(Image-based lighting)&lt;/li&gt;
&lt;li&gt;presents comparisons between ray-tracing ground truth, as well as various versions of screen space GTAO( Ground Truth Ambient Occlusion)&lt;/li&gt;
&lt;li&gt;shows how to bake the directional aspect into Spherical harmonics&lt;/li&gt;
&lt;li&gt;additionally contains a follow-up post about the technical implementation details&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-216/env4_4_envmap_bent_ao_sh.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211228154527/https://interplayoflight.wordpress.com/2021/12/28/notes-on-occlusion-and-directionality-in-image-based-lighting/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://psgraphics.blogspot.com/2021/12/what-is-uber-shader.html&#34; target=&#34;_blank&#34; id=&#34;What is an uber shader?&#34;&gt;What is an uber shader?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a look back at the emergence of the term uber shader&lt;/li&gt;
&lt;li&gt;showing how a single shader that supported a flexible BRDF evaluation instead of pre-defined categories&lt;/li&gt;
&lt;li&gt;the comments contain an insightful discussion about the further historical developments of the term&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-216/uber_all.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211230175127/http://psgraphics.blogspot.com/2021/12/what-is-uber-shader.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2021/12/27/not-all-blue-noise-is-created-equal-part-2/&#34; target=&#34;_blank&#34; id=&#34;Not All Blue Noise is Created Equal Part 2&#34;&gt;Not All Blue Noise is Created Equal Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article compares different techniques to generate blue noise&lt;/li&gt;
&lt;li&gt;presents the quality of the generated noise&lt;/li&gt;
&lt;li&gt;providing ideas for future development&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-216/dft2dxy.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211227222526/https://blog.demofox.org/2021/12/27/not-all-blue-noise-is-created-equal-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pikuma.com/blog/game-console-history-for-programmers&#34; target=&#34;_blank&#34; id=&#34;The History of Retro Game Consoles for Programmers&#34;&gt;The History of Retro Game Consoles for Programmers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a history of game consoles in the First Generation 1972 to modern-day consoles&lt;/li&gt;
&lt;li&gt;presents what new hardware was added with each generation and how constraints and programming environment evolved&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-216/retro_consoles.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/2021*/https://pikuma.com/blog/game-console-history-for-programmers&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@jasonbooth_86226/branching-on-a-gpu-18bfc83694f2&#34; target=&#34;_blank&#34; id=&#34;Branching on a GPU&#34;&gt;Branching on a GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents branching on GPUs, clearing up that the cost of a branch depends on the kind&lt;/li&gt;
&lt;li&gt;shows shader code helpers that allow the visualization of the branching patterns&lt;/li&gt;
&lt;li&gt;additionally presents that extra care is required if branching around texture reads&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-216/branch_debugging.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211227071319/https://medium.com/@jasonbooth_86226/branching-on-a-gpu-18bfc83694f2&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@jasonbooth_86226/stalling-a-gpu-7faac66b11b9&#34; target=&#34;_blank&#34; id=&#34;Stalling a GPU&#34;&gt;Stalling a GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog discusses dependent texture reads and the impact on GPU performance&lt;/li&gt;
&lt;li&gt;shows why it affects performance and discusses tradeoffs to consider&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-216/gpu_branches.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211230152125/https://medium.com/@jasonbooth_86226/stalling-a-gpu-7faac66b11b9&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://eprints.maths.manchester.ac.uk/2841/&#34; target=&#34;_blank&#34; id=&#34;Mixed Precision Algorithms in Numerical Linear Algebra&#34;&gt;Mixed Precision Algorithms in Numerical Linear Algebra&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a look at the half/single/double and quad precision for floating-point calculations&lt;/li&gt;
&lt;li&gt;provides an analysis of different linear algebra tasks to derive precision&lt;/li&gt;
&lt;li&gt;suggesting which types of tasks might be more suitable to reduced precision&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-216/float_precision.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211229162705/http://eprints.maths.manchester.ac.uk/2841/1/paper_eprint.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=sh6s17WnWBM&#34; target=&#34;_blank&#34; id=&#34;[video] The small detail behind Breath of the Wild&amp;#39;s Thousands of Trees - Quick Answer #shorts&#34;&gt;[video] The small detail behind Breath of the Wild&amp;#39;s Thousands of Trees - Quick Answer #shorts&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;one-minute long video shows the impostors used for far away vegetation in Zelda Breath of the Wild&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-216/tree_impostors.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://itscai.us/blog/post/ue-view-extensions/&#34; target=&#34;_blank&#34; id=&#34;Global shaders in Unreal without engine modification&#34;&gt;Global shaders in Unreal without engine modification&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how custom shader effects can be integrated into the UE4 pipeline&lt;/li&gt;
&lt;li&gt;presents a method that doesn&amp;rsquo;t require engine modification but uses undocumented private classes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-216/ue_custom_global_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211229004954/https://itscai.us/blog/post/ue-view-extensions/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ML0YC77bSOc&#34; target=&#34;_blank&#34; id=&#34;Digital Dragons 2021: Adam Sawicki - Efficient Use of GPU Memory in Modern Games&#34;&gt;Digital Dragons 2021: Adam Sawicki - Efficient Use of GPU Memory in Modern Games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;talk discusses the available memory types in D3D12/Vulkan&lt;/li&gt;
&lt;li&gt;discussing ways to upload data to the GPU, including the new hardware Smart Access Memory (Resizable BAR)&lt;/li&gt;
&lt;li&gt;shows performance advice for usage patterns for the different memory types to achieve optimal performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-216/digitial_dragon_gpu_memory.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jeremyong.com/graphics/2021/12/27/debugging-for-graphics-programmers/&#34; target=&#34;_blank&#34; id=&#34;Debugging For Graphics Programmers&#34;&gt;Debugging For Graphics Programmers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a collection of advice to help with debugging GPU issues&lt;/li&gt;
&lt;li&gt;broken down into sub-categories based on the appearance of the bug&lt;/li&gt;
&lt;li&gt;additionally contains a list of helpful debug infrastructure elements that should be set up to accelerate the process&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-216/gpu_debugging.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211228124203/https://www.jeremyong.com/graphics/2021/12/27/debugging-for-graphics-programmers/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://lesleylai.info&#34; target=&#34;_blank&#34;&gt;Lesley Lai&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 215 - December 26, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-215/</link>
      <pubDate>Sun, 26 Dec 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-215/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.imaginationtech.com/blog/christmas-decoration-for-graphics-engineers&#34; target=&#34;_blank&#34; id=&#34;Christmas Decoration for Graphics Engineers&#34;&gt;Christmas Decoration for Graphics Engineers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes a setup to use a software rasterizer to create winter decorations for tiny projectors to make Christmas decorations&lt;/li&gt;
&lt;li&gt;happy christmas :)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-215/projected_snow_tree.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211224141749/https://www.imaginationtech.com/blog/christmas-decoration-for-graphics-engineers/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pharr.org/matt/blog/2021/12/19/debugging-renderers-end-to-end-tests&#34; target=&#34;_blank&#34; id=&#34;Debugging Your Renderer (4/n): End-to-end tests (or, why did that image change?)&#34;&gt;Debugging Your Renderer (4/n): End-to-end tests (or, why did that image change?)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post presents the importance of testing images that allow the testing of a renderer&lt;/li&gt;
&lt;li&gt;discusses the different kinds of test images, how to gather them and compare if they remain unchanged&lt;/li&gt;
&lt;li&gt;presents heuristics to judge if changes that introduce image changes are valid or problematic
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-215/anti_alias_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211219200818/https://pharr.org/matt/blog/2021/12/19/debugging-renderers-end-to-end-tests&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pharr.org/matt/blog/2021/12/24/debugging-renderers-rendering-deterministically&#34; target=&#34;_blank&#34; id=&#34;Debugging Your Renderer (5/n): Rendering Deterministically&#34;&gt;Debugging Your Renderer (5/n): Rendering Deterministically&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses sources of nondeterministic rendering in PBRT-3&lt;/li&gt;
&lt;li&gt;presents how the renderer was made deterministic&lt;/li&gt;
&lt;li&gt;additionally presents what advantages and debugging abilities determinism enables&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-215/thread_access_debugging.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211224170719/https://pharr.org/matt/blog/2021/12/24/debugging-renderers-rendering-deterministically&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/embarkstudios/homegrown-rendering-with-rust-1e39068e56a7&#34; target=&#34;_blank&#34; id=&#34;Homegrown rendering with Rust&#34;&gt;Homegrown rendering with Rust&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the release of the kajiya experimental renderer written in Rust&lt;/li&gt;
&lt;li&gt;discusses the design and implementation choices, targetting the Vulkan API and Rust for shader authoring&lt;/li&gt;
&lt;li&gt;additionally presents a look at the future direction of the project&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-215/embark_rust_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211223021223/https://medium.com/embarkstudios/homegrown-rendering-with-rust-1e39068e56a7&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=sjpszGetM40&#34; target=&#34;_blank&#34; id=&#34;[video] Triplanar Projection - Shader Graph Basics - Episode 28&#34;&gt;[video] Triplanar Projection - Shader Graph Basics - Episode 28&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The shader video tutorial shows how to create a shader that projects textures from the top, front, and side (Triplanar projection) without UV coordinates&lt;/li&gt;
&lt;li&gt;implementation is shown in both Unity and Unreal visual shader authoring system
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-215/base_triplana_projection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@jasonbooth_86226/improved-triplanar-projections-b990a49637f9&#34; target=&#34;_blank&#34; id=&#34;Improved Triplanar projections&#34;&gt;Improved Triplanar projections&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to use barycentric coordinates to improve triplanar projections&lt;/li&gt;
&lt;li&gt;done by blending between smoothed and flat normals&lt;/li&gt;
&lt;li&gt;presents how to use virtual triangles to generate barycentric coordinates for terrains if not available on the target system
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-215/improved_triplanar.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211224200023/https://medium.com/@jasonbooth_86226/improved-triplanar-projections-b990a49637f9&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=lB04hKMTZ_M&#34; target=&#34;_blank&#34; id=&#34;[video] Digital Foundry&amp;#39;s Best Game Graphics of 2021 - PC, Xbox, PlayStation - Another Amazing Year!&#34;&gt;[video] Digital Foundry&amp;#39;s Best Game Graphics of 2021 - PC, Xbox, PlayStation - Another Amazing Year!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video discussing the best graphical releases of the year&lt;/li&gt;
&lt;li&gt;presenting the most prominent innovations of the year, showing how the expectations of next-generation have evolved&lt;/li&gt;
&lt;li&gt;additionally discussing oddities of the year
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-215/df_best_graphics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.yosoygames.com.ar/wp/2021/12/vulkan-why-some-gpus-expose-a-dozen-of-identical-memory-types/&#34; target=&#34;_blank&#34; id=&#34;Vulkan: Why some GPUs expose a dozen of identical memory types?&#34;&gt;Vulkan: Why some GPUs expose a dozen of identical memory types?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses why Vulkan drivers expose a single heap with multiple memory types&lt;/li&gt;
&lt;li&gt;explains how resource compatibility should be handled in resource allocation
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-215/vulkan_memory_types.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211222184015/https://www.yosoygames.com.ar/wp/2021/12/vulkan-why-some-gpus-expose-a-dozen-of-identical-memory-types/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dmnsgn.medium.com/from-glsl-to-wgsl-the-future-of-shaders-on-the-web-bebc0c3df5c0&#34; target=&#34;_blank&#34; id=&#34;From GLSL to WGSL: the future of shaders on the Web&#34;&gt;From GLSL to WGSL: the future of shaders on the Web&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post describes the differences between the new WebGPU Shading language and GLSL&lt;/li&gt;
&lt;li&gt;shows the explicit nature of the language&lt;/li&gt;
&lt;li&gt;highlighting the difficulty in translating between the languages
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-215/wgsl_voronay.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211222164010/https://dmnsgn.medium.com/from-glsl-to-wgsl-the-future-of-shaders-on-the-web-bebc0c3df5c0&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/JasperBekkers/&#34; target=&#34;_blank&#34;&gt;Jasper Bekkers&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 214 - December 19, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-214/</link>
      <pubDate>Sun, 19 Dec 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-214/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/procedural-meshes/triangle-grid/&#34; target=&#34;_blank&#34; id=&#34;Triangle Grid Triangles and Hexagons&#34;&gt;Triangle Grid Triangles and Hexagons&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents alternative mesh structures to generate grid structures&lt;/li&gt;
&lt;li&gt;shows why two-right angle triangles are problematic under motion transformation&lt;/li&gt;
&lt;li&gt;discusses Rhombuses and Hexagons as alternatives&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-214/hexagons_grid.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211218174212/https://catlikecoding.com/unity/tutorials/procedural-meshes/triangle-grid/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/rendering-in-real-time-with-spatiotemporal-blue-noise-textures-part-1/&#34; target=&#34;_blank&#34; id=&#34;Rendering in Real Time with Spatiotemporal Blue Noise Textures, Part 1&#34;&gt;Rendering in Real Time with Spatiotemporal Blue Noise Textures, Part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article introduces a technique and generated textures that enable the use of Spatiotemporal blue noise&lt;/li&gt;
&lt;li&gt;the article discusses the importance of Spatiotemporal blue noise, presents comparisons against existing techniques&lt;/li&gt;
&lt;li&gt;additionally presents several use cases for the presented technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-214/Spatiotemporal-featured1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211219084816/https://developer.nvidia.com/blog/rendering-in-real-time-with-spatiotemporal-blue-noise-textures-part-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/rendering-in-real-time-with-spatiotemporal-blue-noise-textures-part-2/&#34; target=&#34;_blank&#34; id=&#34;Rendering in Real Time with Spatiotemporal Blue Noise Textures, Part 2&#34;&gt;Rendering in Real Time with Spatiotemporal Blue Noise Textures, Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses Spatiotemporal blue noise in more depth&lt;/li&gt;
&lt;li&gt;showing best practices for several scenarios&lt;/li&gt;
&lt;li&gt;additionally shows how to extend the provided blue noise texture for other use-cases&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-214/Frequency-composition-of-thresholded-spatiotemporal-blue-noise.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211219084833/https://developer.nvidia.com/blog/rendering-in-real-time-with-spatiotemporal-blue-noise-textures-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=1nDlYawrdqI&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Coding the Game of Life - Part II&#34;&gt;[video] Coding the Game of Life - Part II&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the second part of the game of life shadertoy implementation focuses on the improvement of the visuals&lt;/li&gt;
&lt;li&gt;additionally adds the ability to interact with the simulation using the mouse&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-214/game_of_life_part2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ENOh4KLGJxY&#34; target=&#34;_blank&#34; id=&#34;[video] Pipelines and Stages - Inside Graphics, Compute, Ray Tracing Pipes - Vulkan Lecture Series, Ep. 5&#34;&gt;[video] Pipelines and Stages - Inside Graphics, Compute, Ray Tracing Pipes - Vulkan Lecture Series, Ep. 5&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video of the Vulkan lecture series introduces the stages of the graphics, compute, and raytracing pipe using Vulkan&lt;/li&gt;
&lt;li&gt;explains the stages, how the order is maintained as well as how the stages are essential for a correct understanding of synchronization&lt;/li&gt;
&lt;li&gt;providing an overview of the new Synchronization2 system in Vulkan and how it differs from the previous iteration&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-214/pipeline_stages.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://acko.net/blog/frickin-shaders-with-frickin-laser-beams/&#34; target=&#34;_blank&#34; id=&#34;Frickin&amp;#39; Shaders With Frickin&amp;#39; Laser Beams&#34;&gt;Frickin&amp;#39; Shaders With Frickin&amp;#39; Laser Beams&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents the design for a composable GLSL system based on the idea of closure&lt;/li&gt;
&lt;li&gt;discusses the difference of binding models, how to connect CPU and GPU components in a composable system&lt;/li&gt;
&lt;li&gt;shows how the runtime being aware of all GPU data enables rendering only if any data changes could generate a different image&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-214/glsl-shader-modules.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211213202608/https://acko.net/blog/frickin-shaders-with-frickin-laser-beams/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/how-to-read-research-papers-a-pragmatic-approach-for-ml-practitioners/&#34; target=&#34;_blank&#34; id=&#34;How to Read Research Papers: A Pragmatic Approach for ML Practitioners&#34;&gt;How to Read Research Papers: A Pragmatic Approach for ML Practitioners&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses advice for new research on how to effectively read research papers&lt;/li&gt;
&lt;li&gt;written from the perspective of machine learning, but the lessons apply to computer graphics as well&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-214/reading-papers.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211215230851/https://developer.nvidia.com/blog/how-to-read-research-papers-a-pragmatic-approach-for-ml-practitioners/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-118-18-12-2021/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 118 (18.12.2021)&#34;&gt;Technically Art: Issue 118 (18.12.2021)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of tweets covering a large variety of tech art topics such as&lt;/li&gt;
&lt;li&gt;interior mapping, shading for 2d games, VFX showcases, as well as a rule-based terrain texturing system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-214/technically_art_template_118.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211218171449/https://halisavakis.com/technically-art-issue-118-18-12-2021/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jorenjoestar.github.io/post/modern_sprite_batch/&#34; target=&#34;_blank&#34; id=&#34;Modern (Bindless) Sprite Batch for Vulkan (and more!)&#34;&gt;Modern (Bindless) Sprite Batch for Vulkan (and more!)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes how to use a Vulkan bindless setup for 2D sprite batching&lt;/li&gt;
&lt;li&gt;presents how to pass the necessary texture index into the shaders&lt;/li&gt;
&lt;li&gt;shows the importance of nonuniform qualifier at texture sample time&lt;/li&gt;
&lt;li&gt;additionally presents how to integrate the technique into imGUI&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-214/bindless_spritebatch.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211219231823/https://jorenjoestar.github.io/post/modern_sprite_batch/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/gfxprogrammer&#34; target=&#34;_blank&#34;&gt;Ken Russell&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 213 - December 12, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-213/</link>
      <pubDate>Sun, 12 Dec 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-213/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/download/publications/SA2021_WorldSpace_ReSTIR.pdf&#34; target=&#34;_blank&#34; id=&#34;World-space spatiotemporal reservoir reuse for ray-traced global illumination&#34;&gt;World-space spatiotemporal reservoir reuse for ray-traced global illumination&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a technique that performs reservoir-based spatiotemporal importance resampling in world space&lt;/li&gt;
&lt;li&gt;caches in the cells of a hash grid built on the GPU along the path vertices&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-213/ReSTIR_world_space.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211210224022/https://gpuopen.com/download/publications/SA2021_WorldSpace_ReSTIR.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/publications/&#34; target=&#34;_blank&#34; id=&#34;AMD GPUOpen - Publications&#34;&gt;AMD GPUOpen - Publications&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;list of AMD research publications&lt;/li&gt;
&lt;li&gt;contains papers starting in 2010&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-213/GPUOpenSiteLogoDarkMode.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211208205639/https://gpuopen.com/learn/publications/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://panthavma.com/articles/godot-rendering-pipelines/&#34; target=&#34;_blank&#34; id=&#34;Godot Rendering Pipelines&#34;&gt;Godot Rendering Pipelines&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to write data into an offscreen target and process it in a full-screen pass&lt;/li&gt;
&lt;li&gt;additionally provides a walkaround for missing multi-channel output&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-213/WatercolorPGBuffer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211201182127/http://panthavma.com/articles/godot-rendering-pipelines/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://microsoft.github.io/DirectX-Specs/d3d/D3D12EnhancedBarriers.html&#34; target=&#34;_blank&#34; id=&#34;Enhanced Barriers&#34;&gt;Enhanced Barriers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Microsoft released the spec for the Enhanced D3D12 barrier API&lt;/li&gt;
&lt;li&gt;discusses the problems with the current API&lt;/li&gt;
&lt;li&gt;presents how the new API resolves these problems, expected behavior as well as open issues&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-213/d3d12_black.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211210132809/https://microsoft.github.io/DirectX-Specs/d3d/D3D12EnhancedBarriers.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/d3d12-enhanced-barriers-preview/&#34; target=&#34;_blank&#34; id=&#34;D3D12 Enhanced Barriers Preview&#34;&gt;D3D12 Enhanced Barriers Preview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an introduction to the new enhanced barrier preview for D3D12&lt;/li&gt;
&lt;li&gt;presents how developers can test the API at this time&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-213/ultimate.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211208200224/https://devblogs.microsoft.com/directx/d3d12-enhanced-barriers-preview/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cs.wm.edu/~ppeers/showPublication.php?id=Xie%3A2021%3AEAM&#34; target=&#34;_blank&#34; id=&#34;Experimental Analysis of Multiple Scattering BRDF Models&#34;&gt;Experimental Analysis of Multiple Scattering BRDF Models&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an analysis of multiple scattering BRDF models&lt;/li&gt;
&lt;li&gt;shows the microfacet distribution function is most important for smooth materials&lt;/li&gt;
&lt;li&gt;shadowing and masking term increases with roughness&lt;/li&gt;
&lt;li&gt;shows how a mix of lambert and GGX can approximate a large number of materials&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-213/multiscattering_teaser.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211208185824/https://www.cs.wm.edu/~ppeers/showPublication.php?id=Xie%3A2021%3AEAM&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/announcing-hlsl-2021/&#34; target=&#34;_blank&#34; id=&#34;Announcing HLSL 2021&#34;&gt;Announcing HLSL 2021&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the new features released as part of the DXC update for December&lt;/li&gt;
&lt;li&gt;added support for templates, overloadable operators, bitfield members for data types&lt;/li&gt;
&lt;li&gt;additionally also introduces Operator Short-Circuiting as well&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-213/hlsl_2021.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211212223141/https://devblogs.microsoft.com/directx/announcing-hlsl-2021/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/announcing-new-directx-12-feature-video-encoding/&#34; target=&#34;_blank&#34; id=&#34;Announcing new DirectX 12 feature – Video Encoding!&#34;&gt;Announcing new DirectX 12 feature – Video Encoding!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents the video encoding API that has been added to d3d12&lt;/li&gt;
&lt;li&gt;supports H264 and HEVC&lt;/li&gt;
&lt;li&gt;shows how the API exposes the hardware and fits into D3D12 design&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-213/ultimate.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211210093949/https://devblogs.microsoft.com/directx/announcing-new-directx-12-feature-video-encoding/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://metalbyexample.com/tessellation/&#34; target=&#34;_blank&#34; id=&#34;Introduction to Tessellation in Metal&#34;&gt;Introduction to Tessellation in Metal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of tesselation shaders&lt;/li&gt;
&lt;li&gt;shows how to implement the necessary steps to implement drawing of a tesselated sphere using Metal&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-213/fig-tess-demo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211207002825/https://metalbyexample.com/tessellation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/OmarShehata/webgpu-compute-rasterizer/blob/main/how-to-build-a-compute-rasterizer.md&#34; target=&#34;_blank&#34; id=&#34;How to Build a Compute Rasterizer with WebGPU&#34;&gt;How to Build a Compute Rasterizer with WebGPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to implement 3D mesh rasterization in a WebGPU compute shader&lt;/li&gt;
&lt;li&gt;additionally provides additional steps to get a better understanding of the implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-213/cpu_raster.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211213021516/https://github.com/OmarShehata/webgpu-compute-rasterizer/blob/main/how-to-build-a-compute-rasterizer.md&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://miketuritzin.com&#34; target=&#34;_blank&#34;&gt;Mike Turitzin&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 212 - December 05, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-212/</link>
      <pubDate>Sun, 05 Dec 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-212/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=hxIl52S-hzM&#34; target=&#34;_blank&#34; id=&#34;[video] Swizzle &amp;amp; Channel Manipulation - Shader Graph Basics - Episode 25&#34;&gt;[video] Swizzle &amp;amp; Channel Manipulation - Shader Graph Basics - Episode 25&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial introduces swizzle operations&lt;/li&gt;
&lt;li&gt;shows how to emulate functionality in Unity that is available natively in UE&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-212/swizzle_shaders.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/FMA.html&#34; target=&#34;_blank&#34; id=&#34;fma: A faster, more accurate instruction&#34;&gt;fma: A faster, more accurate instruction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the shader multiply/add operation (fma/mad)&lt;/li&gt;
&lt;li&gt;discusses how it&amp;rsquo;s mapped onto the hardware and allows more efficient and precise operations&lt;/li&gt;
&lt;li&gt;shows example use cases, discussing the impact on the precision of the calculation results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-212/float_precision.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211202005101/https://momentsingraphics.de/FMA.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.fxguide.com/fxfeatured/the-definitive-weta-digital-guide-to-ibl/&#34; target=&#34;_blank&#34; id=&#34;The Definitive Weta Digital Guide to IBL&#34;&gt;The Definitive Weta Digital Guide to IBL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial  describes the capturing process for image-based lighting&lt;/li&gt;
&lt;li&gt;IBL probes are omnidirectional representations of lighting information captured from high dynamic range images of a location&lt;/li&gt;
&lt;li&gt;shows how to capture the images and set up the pipeline to integrate the captures into the renderer&lt;/li&gt;
&lt;li&gt;explains how all captured with different exposures are combined into a single IBL probe&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-212/IBL.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211202005827/https://www.fxguide.com/fxfeatured/the-definitive-weta-digital-guide-to-ibl/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.david-colson.com/2021/11/30/ps1-style-renderer.html&#34; target=&#34;_blank&#34; id=&#34;Building a PS1 style retro 3D renderer&#34;&gt;Building a PS1 style retro 3D renderer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes the hardware characteristics of the PS1 renderer&lt;/li&gt;
&lt;li&gt;shows a visual demonstration of the effect of sub-pixel rasterization and perspective correct interpolation&lt;/li&gt;
&lt;li&gt;additionally shows how to emulate the hardware shortcomings to create a PS1 style look on today&amp;rsquo;s hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-212/polybox.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211202230630/https://www.david-colson.com/2021/11/30/ps1-style-renderer.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://yusuketokuyoshi.com/&#34; target=&#34;_blank&#34; id=&#34;Tiled Reservoir Sampling for Many-Light Rendering&#34;&gt;Tiled Reservoir Sampling for Many-Light Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a combination of tile-based stochastic light culling and reservoir sampling&lt;/li&gt;
&lt;li&gt;this reduces the variance for lights close to surfaces such as common in Virtual Point Lights (VPLs) based indirect illumination systems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-212/tiled_reservoir.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://yusuketokuyoshi.com/papers/2021/TiledReservoirSampling21-11-ecdc.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20211206163047/https://yusuketokuyoshi.com/papers/2021/TiledReservoirSampling21-11-ecdc.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2021/11/29/Gradients-in-linear-space-arent-better/&#34; target=&#34;_blank&#34; id=&#34;Gradients in linear space aren&amp;#39;t better&#34;&gt;Gradients in linear space aren&amp;#39;t better&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how gradients differ with different color spaces&lt;/li&gt;
&lt;li&gt;compares sRGB, linear, and Oklab color spaces&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-212/gradients-rbg.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211201174244/https://aras-p.info/blog/2021/11/29/Gradients-in-linear-space-arent-better/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/arm-community-blogs/b/graphics-gaming-and-vr-blog/posts/arm-best-practice-warnings-in-vulkan-sdk&#34; target=&#34;_blank&#34; id=&#34;Arm Best Practice warnings in the Vulkan SDK&#34;&gt;Arm Best Practice warnings in the Vulkan SDK&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the Vulkan SDK layer architectures&lt;/li&gt;
&lt;li&gt;introduces how to enable Arm performance warning layer&lt;/li&gt;
&lt;li&gt;additionally shows how to run the layer on RenderDoc captures to gather information&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-212/performance_warning.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211201002050/https://community.arm.com/arm-community-blogs/b/graphics-gaming-and-vr-blog/posts/arm-best-practice-warnings-in-vulkan-sdk&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.imaginationtech.com/blog/why-gamers-and-developers-should-care-about-ray-tracing/&#34; target=&#34;_blank&#34; id=&#34;Why gamers and developers should care about ray tracing&#34;&gt;Why gamers and developers should care about ray tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of use cases for ray tracing&lt;/li&gt;
&lt;li&gt;discussing disk and memory space-saving, shadows, reflection&lt;/li&gt;
&lt;li&gt;also mentions the effects on user-generated content&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-212/raytracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pharr.org/matt/blog/2021/12/02/debugging-renderers-assertions&#34; target=&#34;_blank&#34; id=&#34;Debugging Your Renderer (3/n): Assertions (and on not sweeping things under the rug)&#34;&gt;Debugging Your Renderer (3/n): Assertions (and on not sweeping things under the rug)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the importance of asserts for debugging a renderer&lt;/li&gt;
&lt;li&gt;shows how asserts are implemented in PBRT&lt;/li&gt;
&lt;li&gt;additionally presents an example from the PBRT development where asserts helped to catch a performance issue&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-212/render_asserts.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211202160347/https://pharr.org/matt/blog/2021/12/02/debugging-renderers-assertions&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1747_understanding_graphs_in_gpuview_and_rgp&#34; target=&#34;_blank&#34; id=&#34;Understanding Graphs in GPUView and RGP&#34;&gt;Understanding Graphs in GPUView and RGP&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains what information GPUView and Radeon GPU Profiler show&lt;/li&gt;
&lt;li&gt;shows how items are progressing through the queue over time&lt;/li&gt;
&lt;li&gt;additionally shows how to see how utilized the GPU is over time&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-212/rgp_queue.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211202031637/https://asawicki.info/news_1747_understanding_graphs_in_gpuview_and_rgp&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.froyok.fr/blog/2021-12-ue4-custom-bloom/&#34; target=&#34;_blank&#34; id=&#34;Custom Bloom Post-Process in Unreal Engine&#34;&gt;Custom Bloom Post-Process in Unreal Engine&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the bloom technique and implementations&lt;/li&gt;
&lt;li&gt;comparing the technique implemented by UE and Call of Duty and how the suggested solution is a combination&lt;/li&gt;
&lt;li&gt;shows how to integrate a custom implementation into the UE4 codebase&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-212/bloom-flares_shooter_new.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=r6Yv_mh79PI&#34; target=&#34;_blank&#34; id=&#34;Skeletal Animation In OpenGL using Assimp - Part 1&#34;&gt;Skeletal Animation In OpenGL using Assimp - Part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial provides an overview of the skinning animation technique&lt;/li&gt;
&lt;li&gt;explaining the process of how data is authored, animated, and encoded in a GPU friendly format&lt;/li&gt;
&lt;li&gt;additionally shows how to set up, compile and use Assimp to parse the initial skinning poses&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-212/character_anim.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://atyuwen.github.io/&#34; target=&#34;_blank&#34;&gt;atyuwen&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 211 - November 28, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-211/</link>
      <pubDate>Sun, 28 Nov 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-211/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://studio.blender.org/blog/denoising-sprite-fright/&#34; target=&#34;_blank&#34; id=&#34;Denoising Sprite Fright&#34;&gt;Denoising Sprite Fright&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the noise issues encountered when rendering out animated camera tracks&lt;/li&gt;
&lt;li&gt;shows result comparisons between different sample counts and supersampling&lt;/li&gt;
&lt;li&gt;presents how the noise issue was solved by projecting static rendering onto proxy geometry&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-211/blender_denoising.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211127111202/https://studio.blender.org/blog/denoising-sprite-fright/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=TNGNtVhCGvs&#34; target=&#34;_blank&#34; id=&#34;[video] Reflection and Refraction Vectors - Shader Graph Basics - Episode 24&#34;&gt;[video] Reflection and Refraction Vectors - Shader Graph Basics - Episode 24&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows a visualization of reflection and refraction vectors&lt;/li&gt;
&lt;li&gt;shows how to combine reflection and refraction into a single effect&lt;/li&gt;
&lt;li&gt;presents how to use these vectors for effects within Unity and UE4&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-211/reflection_vectors.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://phoboslab.org/log/2021/11/qoi-fast-lossless-image-compression&#34; target=&#34;_blank&#34; id=&#34;Lossless Image Compression in O(n) Time&#34;&gt;Lossless Image Compression in O(n) Time&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the overview of a small and simple lossless image compression&lt;/li&gt;
&lt;li&gt;benchmark against libpng and stbi are available here: &lt;a href=&#34;https://phoboslab.org/files/qoibench/&#34; target=&#34;_blank&#34;&gt;benchmark&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-211/qoi-sample.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211128093535/https://phoboslab.org/log/2021/11/qoi-fast-lossless-image-compression&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://solidpixel.github.io/2021/11/23/floats_in_shaders.html&#34; target=&#34;_blank&#34; id=&#34;Floating-point in mobile shaders&#34;&gt;Floating-point in mobile shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of fp16 (16-bit floating-point data types)&lt;/li&gt;
&lt;li&gt;shows what range and precision is available&lt;/li&gt;
&lt;li&gt;discusses 7 tricks to keep in mind when working with fp16 numbers in shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-211/project-ms.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211124130831/https://solidpixel.github.io/2021/11/23/floats_in_shaders.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://perso.telecom-paristech.fr/boubek/papers/TFDM/&#34; target=&#34;_blank&#34; id=&#34;Tessellation-Free Displacement Mapping for Ray Tracing&#34;&gt;Tessellation-Free Displacement Mapping for Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new approach that decouples displacement from the tessellation of the base mesh&lt;/li&gt;
&lt;li&gt;a displacement-specific acceleration structure is mapped onto the mesh, and tesselation factors are encoded seperate&lt;/li&gt;
&lt;li&gt;the BVH for the displaced geometry is computed instead of loaded from memory&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-211/TFDM.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211124045351/https://perso.telecom-paristech.fr/boubek/papers/TFDM/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gist.github.com/h3r2tic/ba39300c2b2ca4d9ca5f6ff22350a037&#34; target=&#34;_blank&#34; id=&#34;A quick breakdown of lighting in the restir-meets-surfel branch&#34;&gt;A quick breakdown of lighting in the restir-meets-surfel branch&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides a rundown of the different stages of a WIP experiment combing surfels and ReSTIR for rendering&lt;/li&gt;
&lt;li&gt;shows images of the different passes, what they contribute and how they form the final result&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-211/restir_surfels.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211123092705/https://gist.github.com/h3r2tic/ba39300c2b2ca4d9ca5f6ff22350a037&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://boogy90.github.io/2021/11/24/root-signatures-assembly.html&#34; target=&#34;_blank&#34; id=&#34;Shader Assembly and D3D12 Root Signatures&#34;&gt;Shader Assembly and D3D12 Root Signatures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a look at the RDNA2 assembly generated from a simple pixel shader that outputs a color from a constant buffer&lt;/li&gt;
&lt;li&gt;compares D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE, D3D12_ROOT_PARAMETER_TYPE_CBV, D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS&lt;/li&gt;
&lt;li&gt;presents pros/cons of each technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-211/root-tables-constant.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211129043902/https://boogy90.github.io/2021/11/24/root-signatures-assembly.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pharr.org/matt/blog/2021/11/26/debugging-renderers-unit-tests&#34; target=&#34;_blank&#34; id=&#34;Debugging Your Renderer (2/n): Unit Tests&#34;&gt;Debugging Your Renderer (2/n): Unit Tests&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a starting point for developing unit tests for rendering algorithms&lt;/li&gt;
&lt;li&gt;shows the importance of small test cases&lt;/li&gt;
&lt;li&gt;additionally presents two real examples from pbrt-v4 and how unit tests helped to solve them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-211/irradCacheInfinity.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211129044201/https://pharr.org/matt/blog/2021/11/26/debugging-renderers-unit-tests&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/unai_landa&#34; target=&#34;_blank&#34;&gt;Unai Landa&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 210 - November 21, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-210/</link>
      <pubDate>Sun, 21 Nov 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-210/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://diharaw.github.io/post/adventures_in_hybrid_rendering/&#34; target=&#34;_blank&#34; id=&#34;Adventures in Hybrid Rendering&#34;&gt;Adventures in Hybrid Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of the implementation for various techniques found to mix raytracing and rasterization&lt;/li&gt;
&lt;li&gt;discussed the implementation of Spatiotemporal Variance-Guided Filtering for Denoising&lt;/li&gt;
&lt;li&gt;show how to apply this for Soft Shadows, Ambient Occlusion, Reflections, Indirect Lighting as well as a probe-based Global Illumination&lt;/li&gt;
&lt;li&gt;presents optimization and quality improvement steps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-210/hybrid_rendering.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211115235842/https://diharaw.github.io/post/adventures_in_hybrid_rendering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jorenjoestar.github.io/post/vulkan_bindless_texture&#34; target=&#34;_blank&#34; id=&#34;Vulkan Pills 1: Bindless Textures&#34;&gt;Vulkan Pills 1: Bindless Textures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the quickest way to implement fully bindless shaders using Vulkan&lt;/li&gt;
&lt;li&gt;shows how to implement the whole process from querying support, descriptor management as well as the shader side&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-210/vulkan_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211115181516/https://jorenjoestar.github.io/post/vulkan_bindless_texture/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/arm-community-blogs/b/graphics-gaming-and-vr-blog/posts/advanced-shading-techniques-with-pixel-local-storage&#34; target=&#34;_blank&#34; id=&#34;Advanced Shading Techniques with Pixel Local Storage&#34;&gt;Advanced Shading Techniques with Pixel Local Storage&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how Pixel Local Storage can be used on ARM GPUs to implement Translucency and Order Independent Transparency&lt;/li&gt;
&lt;li&gt;additionally presents the Shader Frame Buffer Fetch to allow access to the render target color and depth stencil from within an active pixel shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-210/pls_translucent.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211115083236/https://community.arm.com/arm-community-blogs/b/graphics-gaming-and-vr-blog/posts/advanced-shading-techniques-with-pixel-local-storage&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.apple.com/metal/cpp/&#34; target=&#34;_blank&#34; id=&#34;Getting started with Metal-cpp&#34;&gt;Getting started with Metal-cpp&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the official C++ interface for Metal&lt;/li&gt;
&lt;li&gt;shows how to integrate it into an application&lt;/li&gt;
&lt;li&gt;additionally offers how to generate a single header version&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-210/metal_cpp.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211122203005/https://developer.apple.com/metal/cpp/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.oculus.com/blog/how-to-level-up-your-profiling-with-renderdoc-for-oculus/&#34; target=&#34;_blank&#34; id=&#34;How to Level Up Your Profiling With RenderDoc for Oculus&#34;&gt;How to Level Up Your Profiling With RenderDoc for Oculus&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes the RenderDoc fork for use with Oculus devices&lt;/li&gt;
&lt;li&gt;presents what effects on performance the tool has&lt;/li&gt;
&lt;li&gt;shows how to visualize tile usage and collect performance counters for application optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-210/oculus_tile_visulization.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211119181310/https://developer.oculus.com/blog/how-to-level-up-your-profiling-with-renderdoc-for-oculus/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://raphlinus.github.io/gpu/2021/11/17/prefix-sum-portable.html&#34; target=&#34;_blank&#34; id=&#34;Prefix sum on portable compute shaders&#34;&gt;Prefix sum on portable compute shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents his experience trying to run a prefix sum sorting algorithms portably using WebGPU&lt;/li&gt;
&lt;li&gt;discusses the limitations and issues encountered&lt;/li&gt;
&lt;li&gt;explains what synchronization primitives are missing to allow the most efficient variation using WebGPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-210/webgpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211119053640/https://raphlinus.github.io/gpu/2021/11/17/prefix-sum-portable.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.nvidia.com/en-us/geforce/news/nvidia-image-scaler-dlss-rtx-november-2021-updates/&#34; target=&#34;_blank&#34; id=&#34;From NVIDIA DLSS 2.3 To NVIDIA Image Scaling: NVIDIA’s Full Stack Of Scaling Solutions For Gamers&#34;&gt;From NVIDIA DLSS 2.3 To NVIDIA Image Scaling: NVIDIA’s Full Stack Of Scaling Solutions For Gamers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;update on Nvidia scaling solutions&lt;/li&gt;
&lt;li&gt;the NVIDIA Image Scaling SDK now provides an open-source spatial upscaler&lt;/li&gt;
&lt;li&gt;can be used on hardware where Nvidia DLSS is not available&lt;/li&gt;
&lt;li&gt;presents the  Image Comparison &amp;amp; Analysis Tool that allows comparison of up to 4 images and videos&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-210/nvidia_image_comparision.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211118063849/https://www.nvidia.com/en-us/geforce/news/nvidia-image-scaler-dlss-rtx-november-2021-updates/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://itscai.us/blog/post/jfa/&#34; target=&#34;_blank&#34; id=&#34;Jump flooding with bgfx&#34;&gt;Jump flooding with bgfx&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows an example of implementing a flood filling algorithm using the BGFX abstraction library&lt;/li&gt;
&lt;li&gt;provides a brief discussion of issues encountered in getting started with the library&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-210/bgfx_jump_flooding.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211116212530/https://itscai.us/blog/post/jfa/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://observablehq.com/@rreusser/strange-attractors-on-the-gpu-part-1&#34; target=&#34;_blank&#34; id=&#34;Strange Attractors on the GPU, Part 1: Implementation&#34;&gt;Strange Attractors on the GPU, Part 1: Implementation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to implement GPU particles with movement tails without CPU interaction&lt;/li&gt;
&lt;li&gt;all particle simulations happen in pixel shaders, and results are copied into ring buffers expressed as rows of textures&lt;/li&gt;
&lt;li&gt;implementation is provided using WebGL (regl)&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-210/particle_trails.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211116005347/https://observablehq.com/@rreusser/strange-attractors-on-the-gpu-part-1&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dev.to/michlimlim/how-to-draw-styled-rectangles-using-the-gpu-and-metal-246a&#34; target=&#34;_blank&#34; id=&#34;How to draw styled rectangles using the GPU and Metal&#34;&gt;How to draw styled rectangles using the GPU and Metal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to render rectangles with rounded edges&lt;/li&gt;
&lt;li&gt;shows the distance field based shader implementation using Metal&lt;/li&gt;
&lt;li&gt;additionally covers anti-aliasing and gradient rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-210/metal_distance_field.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211119162843/https://dev.to/michlimlim/how-to-draw-styled-rectangles-using-the-gpu-and-metal-246a&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/wp-content/uploads/2021/11/RepackagedWindowsSDK-17NOV2021.pdf&#34; target=&#34;_blank&#34; id=&#34;The Repackaged Windows Vulkan SDK&#34;&gt;The Repackaged Windows Vulkan SDK&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Vulkan SDK has been repackaged and now separates between core and optional components&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-210/lunarg_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211118173821/https://www.lunarg.com/wp-content/uploads/2021/11/RepackagedWindowsSDK-17NOV2021.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/goodbadwolf/&#34; target=&#34;_blank&#34;&gt;Manish Mathai&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 209 - November 14, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-209/</link>
      <pubDate>Sun, 14 Nov 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-209/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/nvidia-gtc-a-complete-overview-of-nsight-developer-tools/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA GTC: A Complete Overview of Nsight Developer Tools&#34;&gt;NVIDIA GTC: A Complete Overview of Nsight Developer Tools&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides an overview of the available Nvidia developer tools&lt;/li&gt;
&lt;li&gt;includes a brief summary of each tool and references to further information&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-209/Nsight-Feature-Image.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211111060120/https://developer.nvidia.com/blog/nvidia-gtc-a-complete-overview-of-nsight-developer-tools/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/streamlining-render-passes&#34; target=&#34;_blank&#34; id=&#34;Streamlining Render Passes&#34;&gt;Streamlining Render Passes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post summarizes the new VK_KHR_dynamic_rendering extension&lt;/li&gt;
&lt;li&gt;enables Vulkan render passes without render pass or frame buffer objects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-209/Vulkan_500px_Dec16.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211113191930/https://www.khronos.org/blog/streamlining-render-passes&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=UQl6ttthfXE&#34; target=&#34;_blank&#34; id=&#34;[video] Intro to Graphics 22 - Signal Processing&#34;&gt;[video] Intro to Graphics 22 - Signal Processing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial provides a beginner introduction to signal processing&lt;/li&gt;
&lt;li&gt;starts the explaining with audio signals to clarify the concepts&lt;/li&gt;
&lt;li&gt;afterward transfers the ideas onto raster images&lt;/li&gt;
&lt;li&gt;presents how aliasing and image filters can be explained using signal processing concepts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-209/signal_processing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=bgkji8TrBDI&#34; target=&#34;_blank&#34; id=&#34;[video] Jonathan Ragan Kelley: Organizing Computation for High-Performance Visual Computing&#34;&gt;[video] Jonathan Ragan Kelley: Organizing Computation for High-Performance Visual Computing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk presents a discussion of performance tradeoffs&lt;/li&gt;
&lt;li&gt;proposes the idea that algorithms should be separated from how they are executed&lt;/li&gt;
&lt;li&gt;introduces the halide language/compiler that decouples algorithms from the mapping onto hardware execution models&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-209/organizing_computations_for_high_performance.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Lc5u9EqwHJ8&#34; target=&#34;_blank&#34; id=&#34;[video] (Ab)using RTX for Element Point Location&#34;&gt;[video] (Ab)using RTX for Element Point Location&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides an explanation of point queries and why point queries on unstructured data is a lot more complex compared to grid-based data&lt;/li&gt;
&lt;li&gt;the paper presents different methods to offload more work onto the RT cores with increasing complexity&lt;/li&gt;
&lt;li&gt;shows memory and performance results on different hardware and test cases&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-209/abusing_rtx_for_unstructured_queries.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://babylonjs.medium.com/rendering-text-bf3bc53f7c2e&#34; target=&#34;_blank&#34; id=&#34;Rendering text&#34;&gt;Rendering text&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a history of text rendering techniques&lt;/li&gt;
&lt;li&gt;provides summaries and references of the presented techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-209/text_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211110190238/https://babylonjs.medium.com/rendering-text-bf3bc53f7c2e&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=KeLOfQoh8Vo&#34; target=&#34;_blank&#34; id=&#34;[video] Rendering Lines in a Game Engine // Game Engine series&#34;&gt;[video] Rendering Lines in a Game Engine // Game Engine series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to render lines using OpenGL&lt;/li&gt;
&lt;li&gt;extends the techniques to draw oriented rectangles&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-209/line_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2021/11/14/shaded-vertex-reuse-on-modern-gpus/&#34; target=&#34;_blank&#34; id=&#34;Shaded vertex reuse on modern gpus&#34;&gt;Shaded vertex reuse on modern gpus&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents results comparing the vertex post-transform cache behavior on intel and Nvidia hardware&lt;/li&gt;
&lt;li&gt;presents that they have very different behavior&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-209/vertex_reuse.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211114161403/https://interplayoflight.wordpress.com/2021/11/14/shaded-vertex-reuse-on-modern-gpus/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/goodbadwolf/&#34; target=&#34;_blank&#34;&gt;Manish Mathai&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 208 - November 7, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-208/</link>
      <pubDate>Sun, 07 Nov 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-208/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.roadtovr.com/oculus-quest-application-spacewarp-asw/&#34; target=&#34;_blank&#34; id=&#34;New Quest Rendering Tech Promises Massive Gains in App Performance&#34;&gt;New Quest Rendering Tech Promises Massive Gains in App Performance&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;summary of Occlulus Quest 2 Application SpaceWarp technology&lt;/li&gt;
&lt;li&gt;technology that allows an application to render at half of the target frame rate and &amp;ldquo;upscale&amp;rdquo; to the target frame rate&lt;/li&gt;
&lt;li&gt;uses the application provided depth, image buffers, and motion vectors to generate in-between frames&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-208/oculus-quest-application-spacewarp.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211108211521/https://www.roadtovr.com/oculus-quest-application-spacewarp-asw/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://kelvinvanhoorn.wordpress.com/2021/11/02/shadow-outlines-tutorial/&#34; target=&#34;_blank&#34; id=&#34;Shadow outlines tutorial&#34;&gt;Shadow outlines tutorial&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial shows how to sample shadow maps and implement an edge detection filter&lt;/li&gt;
&lt;li&gt;extending the concepts to show how to apply outline shadows&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-208/shadowoutlines_sobel_03.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211103061209/https://kelvinvanhoorn.wordpress.com/2021/11/02/shadow-outlines-tutorial/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shahriyarshahrabi.medium.com/stencil-portal-in-unity-vfx-breakdown-3dd76b60ad07&#34; target=&#34;_blank&#34; id=&#34;Stencil Portal in Unity — VFX Breakdown&#34;&gt;Stencil Portal in Unity — VFX Breakdown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to implement a portal look into a separate world using stencil buffers for filtering&lt;/li&gt;
&lt;li&gt;shows why the technique was used and how rendering passes have been structured&lt;/li&gt;
&lt;li&gt;additionally covers other the aspects of the demo, such as the volumetric fog and candles&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-208/stencil_portal.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211030160028/https://shahriyarshahrabi.medium.com/stencil-portal-in-unity-vfx-breakdown-3dd76b60ad07&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-115-05-11-2021/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 115 (05.11.2021)&#34;&gt;Technically Art: Issue 115 (05.11.2021)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;weekly round-up of tweets from a large variety of technical art and VFX topics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-208/technically_art_template_115.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211105230918/https://halisavakis.com/technically-art-issue-115-05-11-2021/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://themaister.net/blog/2021/11/07/my-personal-hell-of-translating-dxil-to-spir-v-part-3/&#34; target=&#34;_blank&#34; id=&#34;My personal hell of translating DXIL to SPIR-V – part 3&#34;&gt;My personal hell of translating DXIL to SPIR-V – part 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the details of the D3D12 binding model and discusses the differences to Vulkan&lt;/li&gt;
&lt;li&gt;presents a detailed look at all the possible binding possibilities&lt;/li&gt;
&lt;li&gt;discussing problems, limitations, and how it maps to hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-208/vulkan_d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211107202943/https://themaister.net/blog/2021/11/07/my-personal-hell-of-translating-dxil-to-spir-v-part-3/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://colinbarrebrisebois.com/2021/11/01/working-around-constructors-in-hlsl-or-lack-thereof/&#34; target=&#34;_blank&#34; id=&#34;Working Around Constructors in HLSL (or lack thereof)&#34;&gt;Working Around Constructors in HLSL (or lack thereof)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how constructor like functionality can be implemented in DXC HLSL&lt;/li&gt;
&lt;li&gt;relies on variadic macros support in the compiler frontend&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-208/blur.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211103040817/https://colinbarrebrisebois.com/2021/11/01/working-around-constructors-in-hlsl-or-lack-thereof/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=l_iVdRbA_4s&amp;amp;list=PLplnkTzzqsZTfYh4UbhLGpI5kGd5oW_Hh&#34; target=&#34;_blank&#34; id=&#34;[video] Intro to Graphics 20 - Shadows &amp;amp; Reflections&#34;&gt;[video] Intro to Graphics 20 - Shadows &amp;amp; Reflections&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;class in introduction to computer graphic series focusing on shadows&lt;/li&gt;
&lt;li&gt;explains the fundamental of shadow casting and presents practical implementation notes that are required for correct implementations&lt;/li&gt;
&lt;li&gt;covers ray tracing and rasterization based implementations&lt;/li&gt;
&lt;li&gt;shows the logic required for reflections and the derivations from the rendering equation&lt;/li&gt;
&lt;li&gt;additionally covers a small discussion of the different ray types, names, and usages&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-208/intro_computer_graphics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=6oMZb3yP_H8&#34; target=&#34;_blank&#34; id=&#34;[video] How Computers Draw Weird Shapes&#34;&gt;[video] How Computers Draw Weird Shapes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to implement metaball rendering&lt;/li&gt;
&lt;li&gt;presents how to approach the approach to the problem and derive the final marching square solution&lt;/li&gt;
&lt;li&gt;focusing on how to transform a problem into solvable sub-problems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-208/metaballs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=eviSykqSUUw&#34; target=&#34;_blank&#34; id=&#34;[video] A Deep Dive into Nanite Virtualized Geometry&#34;&gt;[video] A Deep Dive into Nanite Virtualized Geometry&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video for the SIGGRAPH 2021 presentation about UE5 Nanite has been released&lt;/li&gt;
&lt;li&gt;will explain how the mesh-based data structure is built, streamed, decompressed, culled, rasterized, and shaded&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-208/material_culling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_dynamic_rendering.html&#34; target=&#34;_blank&#34; id=&#34;VK_KHR_dynamic_rendering&#34;&gt;VK_KHR_dynamic_rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Vulkan extension that allows the use of render passes in Vulkan using a D3D12 style objectless model&lt;/li&gt;
&lt;li&gt;already being reported as supported on first Nvidia drivers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-208/vulkan.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211103055019/https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_dynamic_rendering.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=MAJqiDll0a8&#34; target=&#34;_blank&#34; id=&#34;[video] Spot lights in OpenGL&#34;&gt;[video] Spot lights in OpenGL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video tutorial explains the concepts of spotlights and develops a mathematical model to describe the effect&lt;/li&gt;
&lt;li&gt;presents how to implement these concepts using GLSL and OpenGL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-208/spot_light_settings.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/kongsgard&#34; target=&#34;_blank&#34;&gt;Sondre Kongsgård&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 207 - October 31, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-207/</link>
      <pubDate>Sun, 31 Oct 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-207/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/playlist?list=PLAOytOz0HZbLaWhVrGEge5_6dNCAzGFYH&#34; target=&#34;_blank&#34; id=&#34;[video] SIGGRAPH 2021 Rendering Engine Architecture course&#34;&gt;[video] SIGGRAPH 2021 Rendering Engine Architecture course&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the videos for the excellent SIGGRAPH 2021 Rendering Engine Architecture course have been released&lt;/li&gt;
&lt;li&gt;covering Unity / Roblox / Activision rendering architectures&lt;/li&gt;
&lt;li&gt;as well as the Activision geometry rendering architecture&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-207/engine_architecture_course.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2021/10/28/the-curious-case-of-slow-raytracing-on-a-high-end-gpu/&#34; target=&#34;_blank&#34; id=&#34;The curious case of slow raytracing on a high end gpu&#34;&gt;The curious case of slow raytracing on a high end gpu&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows that out of bounds access reduced rendering performance by 25x&lt;/li&gt;
&lt;li&gt;shows how to use NSight Graphics to help investigate performance issues&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-207/raytracing-performance-issue.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211029031357/https://interplayoflight.wordpress.com/2021/10/28/the-curious-case-of-slow-raytracing-on-a-high-end-gpu/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2021/10/31/practical-gaussian-filter-binomial-filter-and-small-sigma-gaussians/&#34; target=&#34;_blank&#34; id=&#34;Practical Gaussian filtering: Binomial filter and small sigma Gaussians&#34;&gt;Practical Gaussian filtering: Binomial filter and small sigma Gaussians&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the Binomial and Gaussians filter&lt;/li&gt;
&lt;li&gt;presents what a Binomial filter is and how it compares against a gaussian&lt;/li&gt;
&lt;li&gt;additionally provides details about how a Gaussian filter behaves with different kernel sizes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-207/sigma_filter.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211031184525/https://bartwronski.com/2021/10/31/practical-gaussian-filter-binomial-filter-and-small-sigma-gaussians/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-command-buffers/&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: Command Buffers&#34;&gt;Advanced API Performance: Command Buffers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article covers a few high-level points on how command buffers allow parallelization of CPU rendering work&lt;/li&gt;
&lt;li&gt;provides best practices, and pitfalls to watch out for&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-207/ray-tracing-featured-1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211026105309/https://developer.nvidia.com/blog/advanced-api-performance-command-buffers/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-memory-and-resources/&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: Memory and Resources&#34;&gt;Advanced API Performance: Memory and Resources&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides recommendations for memory management using D3D12 on&lt;/li&gt;
&lt;li&gt;provides information on how to receive information about the available budget and manage residency&lt;/li&gt;
&lt;li&gt;provides suggestions on which resource should be allocated together&lt;/li&gt;
&lt;li&gt;additionally provides information on tiled resource usage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-207/PlacedResource.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211026112440/https://developer.nvidia.com/blog/advanced-api-performance-memory-and-resources/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-mesh-shaders/&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: Mesh Shaders&#34;&gt;Advanced API Performance: Mesh Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides information about what practices are recommended for getting good mesh shader performance and what are not&lt;/li&gt;
&lt;li&gt;additionally mentions how the Vulkan extension allows potentially less usage of shared memory&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-207/mesh-shaders.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211026105515/https://developer.nvidia.com/blog/advanced-api-performance-mesh-shaders/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/shorts/ncJ6B_FkhIA&#34; target=&#34;_blank&#34; id=&#34;[video] How Link&amp;#39;s eyebrows go over his hair - Quick Answer #shorts&#34;&gt;[video] How Link&amp;#39;s eyebrows go over his hair - Quick Answer #shorts&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;short 1-minute video that explains how masking with disabled depth testing allows the eyebrows to be drawn above the hair at all times&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-207/link_eyes.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://reedbeta.com&#34; target=&#34;_blank&#34;&gt;Nathan Reed&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 206 - October 24, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-206/</link>
      <pubDate>Sun, 24 Oct 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-206/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.tobias-franke.eu/publications/franke21sgifo/index.html&#34; target=&#34;_blank&#34; id=&#34;Scalable global illumination for O3DE&#34;&gt;Scalable global illumination for O3DE&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation presents an overview of different Global illumination techniques&lt;/li&gt;
&lt;li&gt;discussing strengths and weaknesses&lt;/li&gt;
&lt;li&gt;presents the solution implemented in O3D and looks at problems and future developments&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-206/franke21sgifo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211026205559/https://www.tobias-franke.eu/publications/franke21sgifo/index.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://l0calh05t.github.io/ihcoords/&#34; target=&#34;_blank&#34; id=&#34;In­ter­ac­tive Ex­plo­ration of Ho­mo­ge­neous Co­or­di­nates and Ra­tio­nal Splines&#34;&gt;In­ter­ac­tive Ex­plo­ration of Ho­mo­ge­neous Co­or­di­nates and Ra­tio­nal Splines&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an explanation of Ho­mo­ge­neous Co­or­di­nates&lt;/li&gt;
&lt;li&gt;showing a visual explanation of the mapping into Cartesian coordinates&lt;/li&gt;
&lt;li&gt;presents how these concepts can be used for spline interpolation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-206/spline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211020211306/https://l0calh05t.github.io/ihcoords/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/events/vulkanised-2021&#34; target=&#34;_blank&#34; id=&#34;Vulkanised 2021 - Fall&#34;&gt;Vulkanised 2021 - Fall&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the slides and video recordings from the Vulkanised 2021 conference have been released&lt;/li&gt;
&lt;li&gt;covering Synchronization, layer building, portability, shader pipelines, and texture compression&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-206/Vulkanized-Events.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211026205752/https://www.khronos.org/events/vulkanised-2021&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://youtu.be/0zCxpMS7ul0?t=3723&#34; target=&#34;_blank&#34; id=&#34;[video] HLSL shaders compilation pipeline in BG3&#34;&gt;[video] HLSL shaders compilation pipeline in BG3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discussing how the mapping from D3D to Vulkan binding semantics was implemented using SPIR-V patching&lt;/li&gt;
&lt;li&gt;reflection and code generation is used to implement constant and resource binding in C++ code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-206/BaldursGate.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.khronos.org/assets/uploads/developers/presentations/BG3_Shaders_Larian.pdf&#34; style=&#34;color:white;&#34;&gt;slides &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shahriyarshahrabi.medium.com/interactive-volumetric-fog-with-fluid-dynamics-and-arbitrary-boundaries-f82fdee86397&#34; target=&#34;_blank&#34; id=&#34;Interactive Volumetric Fog With Fluid Dynamics and Arbitrary Boundaries&#34;&gt;Interactive Volumetric Fog With Fluid Dynamics and Arbitrary Boundaries&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a method to generate and simulate real-time interactive fog&lt;/li&gt;
&lt;li&gt;based on fluid simulations&lt;/li&gt;
&lt;li&gt;presents how to generate a boundary mask from arbitrary meshes using Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-206/volumetric_fog.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211016180131/https://shahriyarshahrabi.medium.com/interactive-volumetric-fog-with-fluid-dynamics-and-arbitrary-boundaries-f82fdee86397&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://raphlinus.github.io/ui/graphics/gpu/2021/10/22/swapchain-frame-pacing.html&#34; target=&#34;_blank&#34; id=&#34;Swapchains and frame pacing&#34;&gt;Swapchains and frame pacing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an in-depth overview of the pipeline required to display a image on screen&lt;/li&gt;
&lt;li&gt;shows how a frame traverses the pipeline to be presented onto the screen&lt;/li&gt;
&lt;li&gt;explains how different methods affect latency and fluency of animations&lt;/li&gt;
&lt;li&gt;compares different methods and presents a look at more modern approaches&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-206/agi_systrace.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211025003109/https://raphlinus.github.io/ui/graphics/gpu/2021/10/22/swapchain-frame-pacing.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-barriers/&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: Barriers&#34;&gt;Advanced API Performance: Barriers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of best practices for NVidia hardware regarding buffer management&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-206/ray-tracing-featured-1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211024193838/https://developer.nvidia.com/blog/advanced-api-performance-barriers/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-async-copy/&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: Async Copy&#34;&gt;Advanced API Performance: Async Copy&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses considerations when to use async copy queue, async compute, or serial copy engines on NVidia hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-206/async-copy.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211024193841/https://developer.nvidia.com/blog/advanced-api-performance-async-copy/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/advanced-api-performance-async-compute-and-overlap/&#34; target=&#34;_blank&#34; id=&#34;Advanced API Performance: Async Compute and Overlap&#34;&gt;Advanced API Performance: Async Compute and Overlap&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a collection of Nvidia advice for getting good performance from async compute workloads&lt;/li&gt;
&lt;li&gt;shows examples of two workloads that can be combined efficiently&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-206/async-compute-intraframe-overlap-example-1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211024140412/https://developer.nvidia.com/blog/advanced-api-performance-async-compute-and-overlap/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/keithoconor&#34; target=&#34;_blank&#34;&gt;Keith O&amp;rsquo;Conor&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 205 - October 17, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-205/</link>
      <pubDate>Sun, 17 Oct 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-205/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.fb.com/publications/recovering-real-world-reflectance-properties-and-shading-from-hdr-imagery/&#34; target=&#34;_blank&#34; id=&#34;Recovering Real-World Reflectance Properties and Shading From HDR Imagery&#34;&gt;Recovering Real-World Reflectance Properties and Shading From HDR Imagery&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents how using HDR and 3D scan data, it&amp;rsquo;s possible to reconstruct the material BRDF parameters&lt;/li&gt;
&lt;li&gt;shows how to estimate the diffuse lighting, surface albedo and use this information to treat it as an optimization problem to match the original image&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-205/relighting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211015101714/https://research.fb.com/publications/recovering-real-world-reflectance-properties-and-shading-from-hdr-imagery/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://nedmakesgames.medium.com/creating-a-foliage-shader-in-unity-urp-shader-graph-5854bf8dc4c2&#34; target=&#34;_blank&#34; id=&#34;Creating a Foliage Shader in Unity URP Shader Graph&#34;&gt;Creating a Foliage Shader in Unity URP Shader Graph&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial covers a walkthrough of a foliage shader in Unity&lt;/li&gt;
&lt;li&gt;covering double-sided materials, translucency, normal adjustments for more natural diffuse shading, and wind deformations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-205/foliage_unity.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211018170147/https://nedmakesgames.medium.com/creating-a-foliage-shader-in-unity-urp-shader-graph-5854bf8dc4c2&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=xf7Y988cPRk&#34; target=&#34;_blank&#34; id=&#34;[video] How To Render CIRCLES (OpenGL/Vulkan/DirectX/Metal)&#34;&gt;[video] How To Render CIRCLES (OpenGL/Vulkan/DirectX/Metal)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the in-depth video tutorial explains how to render a circle using shadertoy&lt;/li&gt;
&lt;li&gt;explains the required math and implementation in shader code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-205/circle.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://therealmjp.github.io/posts/shader-permutations-part1/&#34; target=&#34;_blank&#34; id=&#34;The Shader Permutation Problem - Part 1: How Did We Get Here?&#34;&gt;The Shader Permutation Problem - Part 1: How Did We Get Here?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog introduces the topic of shader permutations and why they end up being common issues&lt;/li&gt;
&lt;li&gt;discussing not only the compilation side but also runtime implications&lt;/li&gt;
&lt;li&gt;additionally presents a list of questions that a programmer might ask when creating a new shader permutation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-205/compiling_shaders.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211014071421/https://therealmjp.github.io/posts/shader-permutations-part1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://therealmjp.github.io/posts/shader-permutations-part2/&#34; target=&#34;_blank&#34; id=&#34;The Shader Permutation Problem - Part 2: How Do We Fix It?&#34;&gt;The Shader Permutation Problem - Part 2: How Do We Fix It?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article dives deeper into the issues related to shader permutations&lt;/li&gt;
&lt;li&gt;covering several possible solutions, discussing the tradeoffs of the different methods presented&lt;/li&gt;
&lt;li&gt;additionally presented a brief look at the future with callable shaders or function pointers&lt;/li&gt;
&lt;li&gt;closes with an overview table of the different methods, advantages/disadvantages, and what platform it&amp;rsquo;s supported on&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-205/dune_trees.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211011211311/https://therealmjp.github.io/posts/shader-permutations-part2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dellaert.github.io/NeRF21/&#34; target=&#34;_blank&#34; id=&#34;NeRF at ICCV 2021&#34;&gt;NeRF at ICCV 2021&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of Neural Radiance Field papers that will be presented at Intl. Conf. on Computer Vision&lt;/li&gt;
&lt;li&gt;starts with a brief summary of what Neural Radiance Fields are&lt;/li&gt;
&lt;li&gt;includes a small single sentence summary for the content of papers for each&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-205/NeRF-setup.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211011202230/https://dellaert.github.io/NeRF21/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alain.xyz/blog/frame-analysis-control&#34; target=&#34;_blank&#34; id=&#34;Frame Analysis - Control&#34;&gt;Frame Analysis - Control&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;frame breakdown of a single frame from the game control (as video and text)&lt;/li&gt;
&lt;li&gt;covering shadow rendering, ray tracing passes&lt;/li&gt;
&lt;li&gt;denoising, tech art passes, as well as Deep Learning Super Sampling (DLSS)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-205/control-frame-cover.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/h2nvZ&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://twitter.com/fizzychicken/status/1447856471618854913&#34; target=&#34;_blank&#34; id=&#34;Graphics Twitter - send me links for stuff explaining modern GPU architecture (PS5,RTX etc)&#34;&gt;Graphics Twitter - send me links for stuff explaining modern GPU architecture (PS5,RTX etc)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Twitter thread asking for GPU architecture information&lt;/li&gt;
&lt;li&gt;the replies are full of fantastic resources&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-205/intro_to_gpu_hardware.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211012092748/https://twitter.com/fizzychicken/status/1447856471618854913&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://therealmjp.github.io/posts/dxil-linking/&#34; target=&#34;_blank&#34; id=&#34;Linking DXIL Binaries Using DXC&#34;&gt;Linking DXIL Binaries Using DXC&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how recent versions of DXC can link DXIL shaders for all shader stages&lt;/li&gt;
&lt;li&gt;presents the API as well as discusses existing restrictions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-205/dxil_link.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211005235626/https://therealmjp.github.io/posts/dxil-linking/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.eurogamer.net/articles/digitalfoundry-2021-amd-fsr-interview&#34; target=&#34;_blank&#34; id=&#34;AMD FidelityFX Super Resolution: the Digital Foundry interview&#34;&gt;AMD FidelityFX Super Resolution: the Digital Foundry interview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;interview with Nick Thibieroz, Director of Game Engineering at AMD&lt;/li&gt;
&lt;li&gt;discussing AMD FSR objectives, design considerations, the impact of Machine Learning&lt;/li&gt;
&lt;li&gt;additionally provides a few pointers at what different engine integrations could be considered&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-205/fsr.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211016143534/https://www.eurogamer.net/articles/digitalfoundry-2021-amd-fsr-interview&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/keithoconor&#34; target=&#34;_blank&#34;&gt;Keith O&amp;rsquo;Conor&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 204 - October 10, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-204/</link>
      <pubDate>Sun, 10 Oct 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-204/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shahriyarshahrabi.medium.com/gentle-introduction-to-fluid-simulation-for-programmers-and-technical-artists-7c0045c40bac&#34; target=&#34;_blank&#34; id=&#34;Gentle Introduction to Realtime Fluid Simulation for Programmers and Technical Artists&#34;&gt;Gentle Introduction to Realtime Fluid Simulation for Programmers and Technical Artists&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the articles provides a beginner friendly introduction into fluid simulation&lt;/li&gt;
&lt;li&gt;starts by developing the readers intuituin and improves from the natural solution&lt;/li&gt;
&lt;li&gt;additionally includes advice on a number of topics such as caustics, reflections, and boudnary handling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-204/fluid_simulation.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211009194809/https://shahriyarshahrabi.medium.com/gentle-introduction-to-fluid-simulation-for-programmers-and-technical-artists-7c0045c40bac&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://fgiesen.wordpress.com/2021/10/04/gpu-bcn-decoding/&#34; target=&#34;_blank&#34; id=&#34;GPU BCn decoding&#34;&gt;GPU BCn decoding&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how BC format encodind differs between hardware vendors&lt;/li&gt;
&lt;li&gt;presents how AMD, Nvidia and Intel implemented the logic&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-204/bc_encoding.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211011111643/https://fgiesen.wordpress.com/2021/10/04/gpu-bcn-decoding/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/improving-gpu-memory-oversubscription-performance/&#34; target=&#34;_blank&#34; id=&#34;Improving GPU Memory Oversubscription Performance&#34;&gt;Improving GPU Memory Oversubscription Performance&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post presents an overview of the performance characteristics for nvida applications related to memory oversuscription&lt;/li&gt;
&lt;li&gt;shows how different access paterns influence&lt;/li&gt;
&lt;li&gt;comparing a number of hints, allocation models and the influence on performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-204/GPU-memory-oversubscription.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211010023959/https://developer.nvidia.com/blog/improving-gpu-memory-oversubscription-performance/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=dJo1Ao9XydM&#34; target=&#34;_blank&#34; id=&#34;[video] Specular Lighting in OpenGL&#34;&gt;[video] Specular Lighting in OpenGL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial extends the Phong lighting model with the addition of specular lighting&lt;/li&gt;
&lt;li&gt;explains the derivation of the specular model in a generic way&lt;/li&gt;
&lt;li&gt;additonally shows how to implement the required functionallity using GLSL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-204/specular_lighting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wwwtyro.net/2021/10/01/instanced-lines-part-2.html&#34; target=&#34;_blank&#34; id=&#34;Instanced Line Rendering Part II: Alpha blending&#34;&gt;Instanced Line Rendering Part II: Alpha blending&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article demonstrates how to implement line segment rendering so that the segments are not overlapping&lt;/li&gt;
&lt;li&gt;WebGL implementation is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-204/line_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211010175634/https://wwwtyro.net/2021/10/01/instanced-lines-part-2.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://tellusim.com/rt-anim/&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing versus Animation&#34;&gt;Ray Tracing versus Animation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog presents performance number for Bottom-level acceleration structure when using D3D12 raytracing with animated characters&lt;/li&gt;
&lt;li&gt;compares nvidia, amd and metal timing in different scenarious&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-204/raytracing_animated_blas.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211007231942/https://tellusim.com/rt-anim/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.realtimerendering.com/blog/new-graphics-books-fall-2021/&#34; target=&#34;_blank&#34; id=&#34;New Graphics Books, Fall 2021&#34;&gt;New Graphics Books, Fall 2021&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of 5 new graphics programming books&lt;/li&gt;
&lt;li&gt;fundamentals, Vulkan, OpenGL and a history of computer graphics book&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-204/fundamental-books.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211004154452/http://www.realtimerendering.com/blog/new-graphics-books-fall-2021/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.neilbickford.com&#34; target=&#34;_blank&#34;&gt;Neil Bickford&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 203 - October 3, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-203/</link>
      <pubDate>Sun, 03 Oct 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-203/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0010/03/02/&#34; target=&#34;_blank&#34; id=&#34;Fast temporal reprojection without motion vectors&#34;&gt;Fast temporal reprojection without motion vectors&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper proposes a new technique to enable the temporal reuse of samples in scenarios where motion vectors are not enough / available&lt;/li&gt;
&lt;li&gt;core algorithm of the paper is patch-based correspondence detection within a hierarchical&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-203/reprojection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211001005932/https://jcgt.org/published/0010/03/02/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jcgt.org/published/0010/03/01/&#34; target=&#34;_blank&#34; id=&#34;An OpenEXR Layout for Spectral Images&#34;&gt;An OpenEXR Layout for Spectral Images&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper provides an overview of Spectral Image Representation and Bi-spectral Reflectance&lt;/li&gt;
&lt;li&gt;explains what kind of materials require the information for correct representation&lt;/li&gt;
&lt;li&gt;proposes a way to store the data in the OpenEXR format&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-203/spectral.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210929174031/https://jcgt.org/published/0010/03/01/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Yzr9va5UtiE&#34; target=&#34;_blank&#34; id=&#34;[video] Blub - Interactive GPU fluid solver&#34;&gt;[video] Blub - Interactive GPU fluid solver&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an overview of a GPU based fluid solver&lt;/li&gt;
&lt;li&gt;written with WebGPU and Rust&lt;/li&gt;
&lt;li&gt;primarily focusing on the implementation details of the simulation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-203/fluid_solver.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://t.co/vEn7pLLyrD&#34; style=&#34;color:white;&#34;&gt;slides &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@jmprocco/dynamic-flowing-foam-in-unity-11811775043e&#34; target=&#34;_blank&#34; id=&#34;Dynamic flowing foam in Unity&#34;&gt;Dynamic flowing foam in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial shows how to implement a basic flow system in Unity&lt;/li&gt;
&lt;li&gt;implemented using a projection of 3D shapes into clip space&lt;/li&gt;
&lt;li&gt;flow is implemented using a double buffering approach using compute shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-203/fluid_simulation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210927003347/https://medium.com/@jmprocco/dynamic-flowing-foam-in-unity-11811775043e&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/56602776&#34; target=&#34;_blank&#34; id=&#34;Shader Tutorial: Self-Drawing Lines&#34;&gt;Shader Tutorial: Self-Drawing Lines&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial explains how to implement a 2D effect where a mask controls the visibility of a line over time&lt;/li&gt;
&lt;li&gt;presents the code and unity setup necessary to implement the effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-203/line_drawing_mask.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210929174351/https://www.patreon.com/posts/56602776&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.twitch.tv/videos/1162695404&#34; target=&#34;_blank&#34; id=&#34;[video] How to think about 3D rotations&#34;&gt;[video] How to think about 3D rotations&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how to develop a mental model of 3D rotations&lt;/li&gt;
&lt;li&gt;based around the change of orientation from one coordinate space to another&lt;/li&gt;
&lt;li&gt;presents an overview of different ways to express rotations&lt;/li&gt;
&lt;li&gt;additionally shows how to use the techniques in Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-203/rotation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/news/press/khronos-ktx-2-0-textures-enable-compact-visually-rich-gltf-3d-assets&#34; target=&#34;_blank&#34; id=&#34;Khronos KTX 2.0 Textures Enable Compact, Visually Rich, glTF 3D Assets&#34;&gt;Khronos KTX 2.0 Textures Enable Compact, Visually Rich, glTF 3D Assets&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Khronos released the texture format 2.0, which now supports Basis Universal compression&lt;/li&gt;
&lt;li&gt;additionally, the new gltf KHR_texture_basisu extension allows the usage in gltf models&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-203/Khronos_500px_June18.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210421034900/https://www.khronos.org/news/press/khronos-ktx-2-0-textures-enable-compact-visually-rich-gltf-3d-assets&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://themaister.net/blog/2021/10/03/my-personal-hell-of-translating-dxil-to-spir-v-part-2&#34; target=&#34;_blank&#34; id=&#34;My personal hell of translating DXIL to SPIR-V – part 2&#34;&gt;My personal hell of translating DXIL to SPIR-V – part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes the details about parsing DXIL (the output from the Microsoft Shader Compiler)&lt;/li&gt;
&lt;li&gt;shows how to parse various opcodes, details with SPIR-V&lt;/li&gt;
&lt;li&gt;provides an overview of the capabilities of the LLVM based encoding&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-203/DXIL.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20211003140025/https://themaister.net/blog/2021/10/03/my-personal-hell-of-translating-dxil-to-spir-v-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://www.plane9.com&#34; target=&#34;_blank&#34;&gt;Joakim Dahl&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 202 - September 26, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-202/</link>
      <pubDate>Sun, 26 Sep 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-202/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1745_creative_use_of_gpu_fixed-function_hardware&#34; target=&#34;_blank&#34; id=&#34;Creative Use of GPU Fixed-Function Hardware&#34;&gt;Creative Use of GPU Fixed-Function Hardware&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a few examples of how GPU fixed function hardware is used for other purposes besides the intended use-case&lt;/li&gt;
&lt;li&gt;including examples from nanite and an example of a point list was used for histogram generation&lt;/li&gt;
&lt;li&gt;the author is looking for user submissions of other examples&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-202/Nanite-Material-Depth.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210923093424/https://asawicki.info/news_1745_creative_use_of_gpu_fixed-function_hardware&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://vksegfault.github.io/posts/gentle-intro-gpu-inner-workings/&#34; target=&#34;_blank&#34; id=&#34;Gentle introduction to GPUs inner workings&#34;&gt;Gentle introduction to GPUs inner workings&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an introduction to more hardware level information about GPU execution&lt;/li&gt;
&lt;li&gt;presents an overview for Nvidia, AMD, and intel information&lt;/li&gt;
&lt;li&gt;discussing many topics such as occupancy, register file, cache, scalar, and vector work&lt;/li&gt;
&lt;li&gt;additionally presents performance pitfalls and explains why they happen&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-202/nvidia_sm.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20210925235609/https://vksegfault.github.io/posts/gentle-intro-gpu-inner-workings/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://metalbyexample.com/metal-on-a15/&#34; target=&#34;_blank&#34; id=&#34;Understanding Metal Enhancements in the A15 Bionic GPU&#34;&gt;Understanding Metal Enhancements in the A15 Bionic GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a summary of the new hardware features in Apple GPUs&lt;/li&gt;
&lt;li&gt;covering lossy compression, sparse texture support, and SIMD improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-202/lossy_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210924151647/https://metalbyexample.com/metal-on-a15/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ogL-2IClOug&#34; target=&#34;_blank&#34; id=&#34;[video] NVIDIA’s New Technique: Beautiful Models For Less!&#34;&gt;[video] NVIDIA’s New Technique: Beautiful Models For Less!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a paper summary from NVidia that uses differentiable rendering to simplify geometry&lt;/li&gt;
&lt;li&gt;shows several examples, including a Disney island vegetation reduction to less than 1% of source vertex count&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-202/simplification.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lei.chat/posts/codegen-performant-convolution-kernels-for-mobile-gpus/&#34; target=&#34;_blank&#34; id=&#34;CodeGen Performant Convolution Kernels for Mobile GPUs&#34;&gt;CodeGen Performant Convolution Kernels for Mobile GPUs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to use MLIR (Multi-Level IR Compiler Framework) for efficient SPIR-V code generation for convolution filters&lt;/li&gt;
&lt;li&gt;shows how to take the logical expression of the task and transform it into patterns that are efficiently executed on ARM Mali GPUs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-202/code_gen.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/gpu-dashboards-in-jupyter-lab/&#34; target=&#34;_blank&#34; id=&#34;GPU Dashboards in Jupyter Lab&#34;&gt;GPU Dashboards in Jupyter Lab&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;NVidia provides an open-source dashboard for Jupyter and a standalone Boker server&lt;/li&gt;
&lt;li&gt;these dashboards are python based and expose real-time graphs for metrics such as memory usage, utilization, or memory traffic&lt;/li&gt;
&lt;li&gt;the article shows how users can extend the dashboards&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-202/GPUDashboard_Pic5.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210924182155/https://developer.nvidia.com/blog/gpu-dashboards-in-jupyter-lab/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=e-lnyzN2wrM&amp;amp;t=482s&#34; target=&#34;_blank&#34; id=&#34;[video] Diffuse Lighting in OpenGL&#34;&gt;[video] Diffuse Lighting in OpenGL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video tutorial that explains lambert diffuse lighting function&lt;/li&gt;
&lt;li&gt;additionally also covers the required coordinate space transformations,&lt;/li&gt;
&lt;li&gt;finally shows how to implement the lighting model into OpenGL + GLSL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-202/DiffuseLightModel.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/goodbadwolf/&#34; target=&#34;_blank&#34;&gt;Manish Mathai&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 201 - September 19, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-201/</link>
      <pubDate>Sun, 19 Sep 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-201/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.apple.com/videos/play/tech-talks/10876/&#34; target=&#34;_blank&#34; id=&#34;Discover advances in Metal for A15 Bionic&#34;&gt;Discover advances in Metal for A15 Bionic&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents what is new with the A15 GPU&lt;/li&gt;
&lt;li&gt;added support for lossy compression&lt;/li&gt;
&lt;li&gt;in addition to bandwidth, it also saves 50% memory usage (quality will be dropped to fit)&lt;/li&gt;
&lt;li&gt;improved sparse texture support with support for depth/stencil&lt;/li&gt;
&lt;li&gt;as well as support for SIMD shuffle operations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-201/lossy_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210922063454/https://developer.apple.com/videos/play/tech-talks/10876/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://tellusim.com/compute-raster/&#34; target=&#34;_blank&#34; id=&#34;Compute versus Hardware&#34;&gt;Compute versus Hardware&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a comparison of triangle throughput for indexed buffer rendering, mesh shader usage, MultiDrawIndirect, and custom compute shader rasterization&lt;/li&gt;
&lt;li&gt;comparison is made for depth-only rendering&lt;/li&gt;
&lt;li&gt;results are presented on Nvidia, AMD, Intel, Qualcomm, and Apple GPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-201/rasterizer.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210914133114/https://tellusim.com/compute-raster/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/news-insights/white-papers/creating-portable-vulkan-applications-using-devsim/&#34; target=&#34;_blank&#34; id=&#34;Creating Portable Vulkan Applications Using DevSim&#34;&gt;Creating Portable Vulkan Applications Using DevSim&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the whitepaper explains how to use DevSim to simulate lower spec devices on higher-end devices&lt;/li&gt;
&lt;li&gt;the Vulkan device simulation layer will adjust the return values of capabilities queries&lt;/li&gt;
&lt;li&gt;the paper shows how to use the tool, how it fits into the architecture, and what settings can be adjusted&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-201/devsim.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210918205825/https://www.lunarg.com/news-insights/white-papers/creating-portable-vulkan-applications-using-devsim/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.thomaspoulet.fr/dcs-frame/&#34; target=&#34;_blank&#34; id=&#34;Digital combat simulator: frame analysis&#34;&gt;Digital combat simulator: frame analysis&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the frame breakdown covers the flight simulator scenes&lt;/li&gt;
&lt;li&gt;presents how the gbuffer by a texture array with MSAA enabled&lt;/li&gt;
&lt;li&gt;how reflections, environment maps, and shadows are drawn&lt;/li&gt;
&lt;li&gt;covers how transparent elements in the cockpit are drawn&lt;/li&gt;
&lt;li&gt;additionally contains a brief look at post-processing and volumetric clouds&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-201/flight_simulator.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210920192746/https://blog.thomaspoulet.fr/dcs-frame/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/developer/tools-software/graphics/b/blog/posts/developing-ray-tracing-content-for-mobile-games&#34; target=&#34;_blank&#34; id=&#34;Developing Ray tracing content for mobile games&#34;&gt;Developing Ray tracing content for mobile games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses lessons learned by ARM&amp;rsquo;s approach for developing raytracing support for Mali GPUs&lt;/li&gt;
&lt;li&gt;implemented as software implementation that can be loaded as Vulkan layer&lt;/li&gt;
&lt;li&gt;presents best practices for mobile performance and battery usage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-201/ray_tracing_on_mobile.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210917114637/https://community.arm.com/developer/tools-software/graphics/b/blog/posts/developing-ray-tracing-content-for-mobile-games&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=dn3y5KVxylQ&#34; target=&#34;_blank&#34; id=&#34;[video] Smoothstep - Shader Graph Basics - Episode 15&#34;&gt;[video] Smoothstep - Shader Graph Basics - Episode 15&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows the smoothstep node in UE5 and Unity3D&lt;/li&gt;
&lt;li&gt;covering the math, and examples of how it is used&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-201/smoothstep.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Ky5n6NP7hUs&#34; target=&#34;_blank&#34; id=&#34;[video] The FUTURE Of Graphics | Mesh Shaders, Ray Tracing &amp;amp; Vulkan with Neil Trevett of Nvidia &amp;amp; Khronos&#34;&gt;[video] The FUTURE Of Graphics | Mesh Shaders, Ray Tracing &amp;amp; Vulkan with Neil Trevett of Nvidia &amp;amp; Khronos&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video in-depth interview with VP of developer ecosystems at Nvidia&lt;/li&gt;
&lt;li&gt;discussing Khronos technologies such as Vulkan, upcoming standards&lt;/li&gt;
&lt;li&gt;as well as how gaming graphics might be developing with new techniques and hardware capabilities&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-201/khronos.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.froyok.fr/blog/2021-09-ue4-custom-lens-flare/&#34; target=&#34;_blank&#34; id=&#34;Custom Lens-Flare Post-Process in Unreal Engine&#34;&gt;Custom Lens-Flare Post-Process in Unreal Engine&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the in-depth article shows how to implement a custom physically based lens flare effect as post-process&lt;/li&gt;
&lt;li&gt;presents what lens flares are, how they are used in games and movies&lt;/li&gt;
&lt;li&gt;finally shows how to implement them into the UE4 pipeline and replace the build-in effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-201/th_overview_2.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210921200120/https://www.froyok.fr/blog/2021-09-ue4-custom-lens-flare/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dqlin.xyz/pubs/2021-sa-VOR/&#34; target=&#34;_blank&#34; id=&#34;Fast Volume Rendering with Spatiotemporal Reservoir Resampling&#34;&gt;Fast Volume Rendering with Spatiotemporal Reservoir Resampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents how to extend spatiotemporal reservoir resampling to multi-dimensional path space such as volumetric media&lt;/li&gt;
&lt;li&gt;combines cheap approximations for transmittance with unbiased methods for per-pixel evaluations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-201/volume_teaser.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210911013419/https://dqlin.xyz/pubs/2021-sa-VOR/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://sakibsaikia.github.io/graphics/2021/09/16/A-Token-Based-Approach-To-Ordering-Transitions.html&#34; target=&#34;_blank&#34; id=&#34;A Token Based Approach To Ordering Transitions&#34;&gt;A Token Based Approach To Ordering Transitions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author suggests a method D3D12 state transition system for multithreaded command recording&lt;/li&gt;
&lt;li&gt;based around per-resource tokens that use CPU side fences to synchronize access to previous state transitions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-201/submission-wait.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210917213519/https://sakibsaikia.github.io/graphics/2021/09/16/A-Token-Based-Approach-To-Ordering-Transitions.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/maxandonuts&#34; target=&#34;_blank&#34;&gt;Max R.R. Collada&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 200 - September 12, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-200/</link>
      <pubDate>Sun, 12 Sep 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-200/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ssteinberg.xyz/2021/07/31/physical_light_matter_interaction_hg_space/&#34; target=&#34;_blank&#34; id=&#34;Physical Light-Matter Interaction in Hermite-Gauss Space&#34;&gt;Physical Light-Matter Interaction in Hermite-Gauss Space&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper proposes a formal model to describe how surfaces/media respond to incident radiation&lt;/li&gt;
&lt;li&gt;introduces a hybrid matter model for a locally stationary stochastic process&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-200/2021_light_matter_paper_teaser.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210913083219/https://ssteinberg.xyz/2021/07/31/physical_light_matter_interaction_hg_space/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/nvpro-samples/vk_raytracing_tutorial_KHR/tree/master/ray_tracing_motionblur&#34; target=&#34;_blank&#34; id=&#34;ray_tracing_motionblur&#34;&gt;ray_tracing_motionblur&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Vulkan tutorial shows how to use the Vulkan VK_NV_ray_tracing_motion_blur extension (exposed by Nvidia)&lt;/li&gt;
&lt;li&gt;shows how to extend a static ray tracer implementation with the necessary information to support motion(blur)&lt;/li&gt;
&lt;li&gt;contains API extensions for time-dependent tracing, motion support in acceleration structures, and support for changing vertex positions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-200/motionblur.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210909192457/https://github.com/nvpro-samples/vk_raytracing_tutorial_KHR/tree/master/ray_tracing_motionblur&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bottosson.github.io/posts/colorpicker/&#34; target=&#34;_blank&#34; id=&#34;Okhsv and Okhsl&#34;&gt;Okhsv and Okhsl&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a derivation of new color spaces designed for more uniform color picker behavior&lt;/li&gt;
&lt;li&gt;discusses the different tradeoffs and how a perfect solution is not possible&lt;/li&gt;
&lt;li&gt;presents an overview of existing methods (HSV, HSL, HSLuv), discussing the tradeoffs, weaknesses, and strengths&lt;/li&gt;
&lt;li&gt;additionally provides an interactive implementation of all the color pickers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-200/color_picker.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210912184840/https://bottosson.github.io/posts/colorpicker/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://zone.dog/braindump/sdf_clustering/&#34; target=&#34;_blank&#34; id=&#34;SDF Decomposition&#34;&gt;SDF Decomposition&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a method for the rendering of static Constructive solid geometry SDFs&lt;/li&gt;
&lt;li&gt;breaks down an SDF into several sub-trees, with shader specialization for each&lt;/li&gt;
&lt;li&gt;requires a static source SDF; however, it could still change positions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-200/sdf_example_2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210908131332/http://zone.dog/braindump/sdf_clustering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.tonari.no/shadergarden&#34; target=&#34;_blank&#34; id=&#34;Say hello to shadergarden&#34;&gt;Say hello to shadergarden&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;article introduces a prototyping system aimed at making multi-pass shader experiments easier&lt;/li&gt;
&lt;li&gt;implemented using Rust and GLSL&lt;/li&gt;
&lt;li&gt;presents how to implement several systems such as a path tracer, the game of life using the system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-200/shader_garden.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210910211451/https://blog.tonari.no/shadergarden&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/events/vulkanised-2021&#34; target=&#34;_blank&#34; id=&#34;Vulkanised 2021&#34;&gt;Vulkanised 2021&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;signup and schedule for the Vulkanised conference has been published&lt;/li&gt;
&lt;li&gt;combination of talks and Vulkan layer authoring tutorials&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-200/Vulkanized-Events.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210903130809/https://www.khronos.org/events/vulkanised-2021&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://agentlien.github.io/fog/&#34; target=&#34;_blank&#34; id=&#34;The Fog of Random&#34;&gt;The Fog of Random&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a look at the making of the fog lost in random&lt;/li&gt;
&lt;li&gt;shows how the visual style was achieved&lt;/li&gt;
&lt;li&gt;based on volumetric or screenspace fog based on the platform capabilities&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-200/0_TwoTownEntrance.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210910101219/https://agentlien.github.io/fog/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cl.cam.ac.uk/research/rainbow/projects/alsarr/&#34; target=&#34;_blank&#34; id=&#34;Perceptual Model for Adaptive Local Shading and Refresh Rate&#34;&gt;Perceptual Model for Adaptive Local Shading and Refresh Rate&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a new metric, CaMoJAB&lt;/li&gt;
&lt;li&gt;this considers how the judder, aliasing, and blur artifacts introduced by VRS are masked by the sensitivity limits of the visual system&lt;/li&gt;
&lt;li&gt;presents how to use the metric to derive VRS shading rate as well as required refresh rates&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-200/vrs_teaser.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210911111438/https://www.cl.cam.ac.uk/research/rainbow/projects/alsarr/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://metalbyexample.com/&#34; target=&#34;_blank&#34;&gt;Warren Moore&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 199 - September 5, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-199/</link>
      <pubDate>Sun, 05 Sep 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-199/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://themaister.net/blog/2021/09/05/my-personal-hell-of-translating-dxil-to-spir-v-part-1/&#34; target=&#34;_blank&#34; id=&#34;My personal hell of translating DXIL to SPIR-V – part 1&#34;&gt;My personal hell of translating DXIL to SPIR-V – part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;start of an article series discussing DXIL with the intended usage of conversion to SPIR-V&lt;/li&gt;
&lt;li&gt;first part starts with simpler examples to explain the principles of DXIL&lt;/li&gt;
&lt;li&gt;library developer speaking from experience developing vkd3d-proton and the dxil-spirv library&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-199/d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/mjzLr&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/vulkan-best-practice-layer/&#34; target=&#34;_blank&#34; id=&#34;Vulkan’s Best Practice layer now has AMD-specific checks&#34;&gt;Vulkan’s Best Practice layer now has AMD-specific checks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD published a Vulkan layer that analyzes the API usage&lt;/li&gt;
&lt;li&gt;checks against the recommendations from the Performance Guide&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-199/vulkan.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210902180614/https://gpuopen.com/learn/vulkan-best-practice-layer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/news-insights/white-papers/vulkan-layer-symbiosis-within-the-vulkan-ecosystem/&#34; target=&#34;_blank&#34; id=&#34;Vulkan Layer Symbiosis within the Vulkan Ecosystem&#34;&gt;Vulkan Layer Symbiosis within the Vulkan Ecosystem&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the whitepaper provides an overview of the Vulkan layer validation tool&lt;/li&gt;
&lt;li&gt;presents how the different components of the layer infrastructure combine and interact&lt;/li&gt;
&lt;li&gt;shows how layers are defined, settings exposed, and user control presented&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-199/vulkan_layer_splash.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210903201240/https://www.lunarg.com/news-insights/white-papers/vulkan-layer-symbiosis-within-the-vulkan-ecosystem/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://web.dev/gpu/&#34; target=&#34;_blank&#34; id=&#34;Access modern GPU features with WebGPU&#34;&gt;Access modern GPU features with WebGPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;WebGPU is slowly rolled out into mainstream Chrome versions&lt;/li&gt;
&lt;li&gt;article presents the timeline as well as reading starting points&lt;/li&gt;
&lt;li&gt;developers are looking for feedback and developer testing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-199/web_gpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210831190726/https://web.dev/gpu/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-108-03-09-2021/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 108 (03.09.2021)&#34;&gt;Technically Art: Issue 108 (03.09.2021)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of Tech Art tweets&lt;/li&gt;
&lt;li&gt;covering procedural animation, waterfall simulations, particles, and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-199/technically_art_template_108.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210903221219/https://halisavakis.com/technically-art-issue-108-03-09-2021/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.reedbeta.com&#34; target=&#34;_blank&#34;&gt;Nathan Reed&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 198 - August 29, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-198/</link>
      <pubDate>Sun, 29 Aug 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-198/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.elopezr.com/the-rendering-of-mafia-definitive-edition/&#34; target=&#34;_blank&#34; id=&#34;The Rendering of Mafia: Definitive Edition&#34;&gt;The Rendering of Mafia: Definitive Edition&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;in-depth frame analysis of a nighttime scene in Mafia, a d3d11 based deferred rendering engine&lt;/li&gt;
&lt;li&gt;covers g-buffer, occlusion culling, decal blending, GI&lt;/li&gt;
&lt;li&gt;cars use a precalculated shadow texture to cast AO&lt;/li&gt;
&lt;li&gt;heavy use of stencil usage for volumetrics, sky, as well as the minimap rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-198/Mafia-Final-Frame.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210826094912/http://www.elopezr.com/the-rendering-of-mafia-definitive-edition/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://atyuwen.github.io/posts/optimizing-fsr/&#34; target=&#34;_blank&#34; id=&#34;Optimizing AMD FSR for Mobiles&#34;&gt;Optimizing AMD FSR for Mobiles&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents optimizations to the FidelityFX Super-Resolution by AMD&lt;/li&gt;
&lt;li&gt;shows multiple steps, what gains got achieved and hints at what quality reductions can be expected&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-198/AMD-FSR-Featured-Image.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210827223521/https://atyuwen.github.io/posts/optimizing-fsr/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://themaister.net/blog/2021/08/29/compressed-gpu-texture-formats-a-review-and-compute-shader-decoders-part-3-3/&#34; target=&#34;_blank&#34; id=&#34;Compressed GPU texture formats – a review and compute shader decoders – part 3/3&#34;&gt;Compressed GPU texture formats – a review and compute shader decoders – part 3/3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to implement a shader-based ASTC decoder&lt;/li&gt;
&lt;li&gt;shows what different modes are supported, how to encode parts&lt;/li&gt;
&lt;li&gt;pointing out the complexities and special cases of the format&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-198/astc_trits.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210829190813/https://themaister.net/blog/2021/08/29/compressed-gpu-texture-formats-a-review-and-compute-shader-decoders-part-3-3/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/geekculture/my-takeaways-from-webgpu-july-2021-meetup-8c27244e8b8f&#34; target=&#34;_blank&#34; id=&#34;My Takeaways from WebGPU July 2021 Meetup&#34;&gt;My Takeaways from WebGPU July 2021 Meetup&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article contains a brief summary of the content presented at the WebGPU meetup&lt;/li&gt;
&lt;li&gt;covers WebGPU performance advice, new glTF extensions&lt;/li&gt;
&lt;li&gt;additionally shows how batching and multi-draw techniques can improve performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-198/webgpu_linear_allocator.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210826113546/https://medium.com/geekculture/my-takeaways-from-webgpu-july-2021-meetup-8c27244e8b8f&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://danielilett.com/2021-08-24-tut5-17-stylised-grass/&#34; target=&#34;_blank&#34; id=&#34;Stylised Grass with Shaders in URP&#34;&gt;Stylised Grass with Shaders in URP&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the shader tutorial presents how to implement a grass shader using the Universal Render Pipeline in Unity&lt;/li&gt;
&lt;li&gt;using Geometry Shaders to generate blade meshes and tessellation shader to control the grass density&lt;/li&gt;
&lt;li&gt;presents how to deal with a nonplanar surface, supporting rotation and bending&lt;/li&gt;
&lt;li&gt;additionally shows how to control grass painting onto the world, wind and shadow integration&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-198/part17-tessellated-grass.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210828084521/https://danielilett.com/2021-08-24-tut5-17-stylised-grass/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-107-27-08-2021/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 107 (27.08.2021)&#34;&gt;Technically Art: Issue 107 (27.08.2021)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets covering an extensive range of technical art topics&lt;/li&gt;
&lt;li&gt;VFX, breakdown of scenes, showcases of visual effects, &amp;hellip;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-198/technically_art_template_107.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210828041437/https://halisavakis.com/technically-art-issue-107-27-08-2021/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.pimaker.at/texts/rvc1/&#34; target=&#34;_blank&#34; id=&#34;Linux in a Pixel Shader - A RISC-V Emulator for VRChat&#34;&gt;Linux in a Pixel Shader - A RISC-V Emulator for VRChat&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;article presents a project that emulates a Linux in a pixel shader running in VRChat&lt;/li&gt;
&lt;li&gt;emulates a RISC-V CPU in an HLSL pixel shader&lt;/li&gt;
&lt;li&gt;shows how the emulation was implemented&lt;/li&gt;
&lt;li&gt;a few pointers on performance improvements made throughout the process&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-198/linux_kernel.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210829023804/https://blog.pimaker.at/texts/rvc1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.deepaksurti.com&#34; target=&#34;_blank&#34;&gt;Deepak Surti&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 197 - August 22, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-197/</link>
      <pubDate>Sun, 22 Aug 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-197/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://alextardif.com/TAA.html&#34; target=&#34;_blank&#34; id=&#34;Temporal Antialiasing Starter Pack&#34;&gt;Temporal Antialiasing Starter Pack&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a collection of TAA resources&lt;/li&gt;
&lt;li&gt;provides a step by step explanation of how to use the resources to implement a basic TAA solution&lt;/li&gt;
&lt;li&gt;also provides pointers at possible problems and what could be improved&lt;/li&gt;
&lt;li&gt;additionally provides a collection of links to other open TAA implementations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-197/taaLarge.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210821110630/http://alextardif.com/TAA.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=aVwxzDHniEw&#34; target=&#34;_blank&#34; id=&#34;[video] The Beauty of Bézier Curves&#34;&gt;[video] The Beauty of Bézier Curves&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows how bezier curves are defined, how they are used&lt;/li&gt;
&lt;li&gt;explains how to derive the formulation and aspects of these curves with very helpful visualizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-197/bezier_curve.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/writing-portable-rendering-code-with-nvrhi/&#34; target=&#34;_blank&#34; id=&#34;Writing Portable Rendering Code with NVRHI&#34;&gt;Writing Portable Rendering Code with NVRHI&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Nvidia open-sourced their internal abstraction layer on top of D3D11, D3D12, and Vulkan&lt;/li&gt;
&lt;li&gt;the article explains how resource lifetime is managed with ref counting&lt;/li&gt;
&lt;li&gt;pipeline binding layout, state tracking, and resource upload management&lt;/li&gt;
&lt;li&gt;additionally, it contains a tool that can generate shader permutations from a text file with shader options&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-197/NVRHI-featured.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210822084054/https://developer.nvidia.com/blog/writing-portable-rendering-code-with-nvrhi/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.keenswh.com/job/senior-render-programmer/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Render Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Prague, Czech Republic, remote work considered&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;We are searching for a highly skilled and experienced Senior Render Programmer.&lt;/p&gt;

&lt;p&gt;You could be developing state-of-the-art rendering solutions for our in-house game engine VRAGE, games such as Space Engineers or new, unannounced projects.&lt;/p&gt;

&lt;p&gt;You&amp;rsquo;ll be working as part of the Rendering team, working closely with the Art and Design teams to help them achieve the artistic vision for our games.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_keen_space.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;keen_week_197&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.selfshadow.com/2021/08/18/siggraph-2021-links/&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2021 Links&#34;&gt;SIGGRAPH 2021 Links&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of links to Siggraph 2021 content&lt;/li&gt;
&lt;li&gt;Courses, papers, posters, &amp;hellip;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-197/s21_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/ZNM9g&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/abs/2108.07232&#34; target=&#34;_blank&#34; id=&#34;Better GPU Hash Tables&#34;&gt;Better GPU Hash Tables&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents three different variations of static hash tables for GPU usage&lt;/li&gt;
&lt;li&gt;comparing bucketed cuckoo, bucketed power-of-two-choices, and iceberg hash table implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-197/gpu_hash_table.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210823091957/https://arxiv.org/abs/2108.07232&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alexanderameye.github.io/notes/rendering-outlines/&#34; target=&#34;_blank&#34; id=&#34;5 ways to draw an outline&#34;&gt;5 ways to draw an outline&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the articles shows Rim Effects, Vertex Extrusion, Blurred Buffer, Jump Flood Algorithm, and Edge Detection&lt;/li&gt;
&lt;li&gt;shows examples of each technique, discussing the implementation, advantages, and disadvantages of each technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-197/edge_detection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210816193906/https://alexanderameye.github.io/notes/rendering-outlines/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-2108-18/&#34; target=&#34;_blank&#34; id=&#34;PIX 2108.18: New programmatic capture APIs and much more&#34;&gt;PIX 2108.18: New programmatic capture APIs and much more&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new PIX for windows APIs that allow applications to take a capture programmatically without having to run the application through pix&lt;/li&gt;
&lt;li&gt;improved Acceleration Structure Viewer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-197/pix_acceleration_viewer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210821172804/https://devblogs.microsoft.com/pix/pix-2108-18/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;mailto:alex@pilotier.com&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Software Engineer, Game/Game Engine Developer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;remote&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Pilotier is a startup tackling one of the toughest outstanding engineering challenges: autonomous urban driving. We are taking a camera-first approach and are designing for hardware that is two to three years out. If you like big challenges and working with smart people, join us on our quest.&lt;/p&gt;

&lt;p&gt;Your job will be to collaborate with simulation and deep learning engineers and help us build a ground-breaking product from scratch.&lt;/p&gt;

&lt;p&gt;You have an eclectic background. You’ve delved deep into the graphics pipeline. You’ve worked with game engines. Maybe you’ve built your own. You’ve written many lines of C++ (even though maybe you secretly can’t stand it). You like solving hard problems, startups, and working with smart people. Nothing scares you. Vulkan? Hah! Maybe you’ve dabbled with functional programming languages, like Erlang or Elixir. Perhaps even Haskell. You’re independent and self-motivated. You love learning new things. Nothing is impossible, some things just take a bit longer to figure out. It’s just code.&lt;/p&gt;

&lt;p&gt;We are based in Montreal but are all remote, so your physical location is not an issue.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/log_pilotier.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;pilotier_week_197&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://therealmjp.github.io/posts/rtg2-bindless/&#34; target=&#34;_blank&#34; id=&#34;Read My Chapter in Ray Tracing Gems II!&#34;&gt;Read My Chapter in Ray Tracing Gems II!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a summary of the Using Bindless Resources With DirectX Raytracing chapter from Ray Tracing Gems II&lt;/li&gt;
&lt;li&gt;the author emphasizes additional points about bindless and the impacts on rendering engine design&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-197/rtg2-bindless.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/R2bJk&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.deepaksurti.com&#34; target=&#34;_blank&#34;&gt;Deepak Surti&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 196 - August 15, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-196/</link>
      <pubDate>Sun, 15 Aug 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-196/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://enginearchitecture.realtimerendering.com/downloads/reac2021_geometry_pipeline_rendering_architecture.pptx&#34; target=&#34;_blank&#34; id=&#34;[pptx] Geometry Rendering Pipeline Architecture at Activision&#34;&gt;[pptx] Geometry Rendering Pipeline Architecture at Activision&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk presents how Activision had to rethink the geometry pipeline when moving from tightly controlled levels to open worlds&lt;/li&gt;
&lt;li&gt;focusing on the shipped F+ and experimental V+ implementation&lt;/li&gt;
&lt;li&gt;shows what mesh types use what technique and explains the reasons&lt;/li&gt;
&lt;li&gt;showing how the GPU based pipeline has been implemented around bitmasks and data expansion&lt;/li&gt;
&lt;li&gt;presents performance numbers, final F+ culling pipeline reduces rendering time significantly&lt;/li&gt;
&lt;li&gt;additionally contains a look at a possible tile-based V+ / F+ hybrid pipeline&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-196/activision_fine_culling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210816053734/http://enginearchitecture.realtimerendering.com/downloads/reac2021_geometry_pipeline_rendering_architecture.pptx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ROuE8xYLpX8&#34; target=&#34;_blank&#34; id=&#34;[video] Anti-Racist Graphics Research (SIGGRAPH 2021)&#34;&gt;[video] Anti-Racist Graphics Research (SIGGRAPH 2021)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video discusses biases and assumptions that are baked into the graphics research&lt;/li&gt;
&lt;li&gt;discussing the biases in terms such as skin, hair, flesh tones, human face&lt;/li&gt;
&lt;li&gt;presents a look at history and how the same biases developed, and how it has been repeated&lt;/li&gt;
&lt;li&gt;suggests future developments to address these biases going forward&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-196/bias_in_research.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/optimizing-dx12-resource-uploads-to-the-gpu-using-cpu-visible-vram/&#34; target=&#34;_blank&#34; id=&#34;Optimizing DX12 Resource Uploads to the GPU Using CPU-Visible VRAM&#34;&gt;Optimizing DX12 Resource Uploads to the GPU Using CPU-Visible VRAM&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a new D3D12 Nvidia extension that enables a developer to allocate CPU-Visible VRAM memory directly&lt;/li&gt;
&lt;li&gt;this allows developers to write directly into VRAM from the GPU&lt;/li&gt;
&lt;li&gt;explains what tools are available to detect cases where it would be beneficial&lt;/li&gt;
&lt;li&gt;additionally shows how to detect possible performance problems caused by reading from the CPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-196/Nsight-systems-BAR1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210812062928/https://developer.nvidia.com/blog/optimizing-dx12-resource-uploads-to-the-gpu-using-cpu-visible-vram/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.keenswh.com/job/senior-render-programmer/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Render Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Prague, Czech Republic, remote work considered&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;We are searching for a highly skilled and experienced Senior Render Programmer.&lt;/p&gt;

&lt;p&gt;You could be developing state-of-the-art rendering solutions for our in-house game engine VRAGE, games such as Space Engineers or new, unannounced projects.&lt;/p&gt;

&lt;p&gt;You&amp;rsquo;ll be working as part of the Rendering team, working closely with the Art and Design teams to help them achieve the artistic vision for our games.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_keen_space.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;keen_week_196&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.yiningkarlli.com/2021/08/unbiased-emission-and-scattering-volumes.html&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2021 Talk- Unbiased Emission and Scattering Importance Sampling for Heterogeneous Volumes&#34;&gt;SIGGRAPH 2021 Talk- Unbiased Emission and Scattering Importance Sampling for Heterogeneous Volumes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new distance sampling method&lt;/li&gt;
&lt;li&gt;presents an extension for the null-collision integral formulation that improves efficiency for low-order heterogeneous (such as fog)&lt;/li&gt;
&lt;li&gt;additionally presents an approach using a spatial guiding data structure&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-196/scattering_teaser.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210816053925/https://blog.yiningkarlli.com/2021/08/unbiased-emission-and-scattering-volumes.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://slembcke.github.io/SuperFastHardShadows&#34; target=&#34;_blank&#34; id=&#34;2D Lighting with Hard Shadows&#34;&gt;2D Lighting with Hard Shadows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a polygon extension-based method for the generation of 2D shadows&lt;/li&gt;
&lt;li&gt;explains the necessary math and how to generate the required mesh data&lt;/li&gt;
&lt;li&gt;also discusses problems, performance implications, and optimization techniques&lt;/li&gt;
&lt;li&gt;additionally presents two alternative techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-196/shadow-masking-example.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210809125417/https://slembcke.github.io/SuperFastHardShadows&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://slembcke.github.io/SuperFastSoftShadows&#34; target=&#34;_blank&#34; id=&#34;2D Lighting with Soft Shadows&#34;&gt;2D Lighting with Soft Shadows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post extends the previously discussed hard shadow method to support penumbra based soft shadows&lt;/li&gt;
&lt;li&gt;presents how to generate the mesh data to include the penumbra and be able to derive the falloff from linear operations&lt;/li&gt;
&lt;li&gt;presents the shader implementation using GLSL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-196/soft-shadows-asteroids.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210810024554/https://slembcke.github.io/SuperFastSoftShadows&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/introducing-a-new-api-for-checking-feature-support-in-direct3d-12&#34; target=&#34;_blank&#34; id=&#34;Introducing a New API for Checking Feature Support in Direct3D 12&#34;&gt;Introducing a New API for Checking Feature Support in Direct3D 12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents a new helper class (CD3DX12FeatureSupport) that unifies the D3D12 feature checking into a single class&lt;/li&gt;
&lt;li&gt;part of d3dx12&lt;/li&gt;
&lt;li&gt;aims to unify the patterns and behavior across the different existing methods in stock d3d12&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-196/d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210813053357/https://devblogs.microsoft.com/directx/introducing-a-new-api-for-checking-feature-support-in-direct3d-12/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.gamasutra.com/blogs/MatthieuDelaere/20210809/386278/Introduction_to_Caching_Shading_Information_in_World_Space_using_Implicit_Progressive_Low_Discrepancy_Point_Sets.php&#34; target=&#34;_blank&#34; id=&#34;Introduction to Caching Shading Information in World Space using Implicit Progressive Low Discrepancy Point Sets&#34;&gt;Introduction to Caching Shading Information in World Space using Implicit Progressive Low Discrepancy Point Sets&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of a master thesis about caching shading information in world space&lt;/li&gt;
&lt;li&gt;technique is based on implicit point generation and accumulation into global hash tables&lt;/li&gt;
&lt;li&gt;the presented example shows the technique applied for ambient occlusion&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-196/caching_in_worldspace.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210812102459/https://www.gamasutra.com/blogs/MatthieuDelaere/20210809/386278/Introduction_to_Caching_Shading_Information_in_World_Space_using_Implicit_Progressive_Low_Discrepancy_Point_Sets.php&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;mailto:alex@pilotier.com&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Software Engineer, Game/Game Engine Developer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;remote&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Pilotier is a startup tackling one of the toughest outstanding engineering challenges: autonomous urban driving. We are taking a camera-first approach and are designing for hardware that is two to three years out. If you like big challenges and working with smart people, join us on our quest.&lt;/p&gt;

&lt;p&gt;Your job will be to collaborate with simulation and deep learning engineers and help us build a ground-breaking product from scratch.&lt;/p&gt;

&lt;p&gt;You have an eclectic background. You’ve delved deep into the graphics pipeline. You’ve worked with game engines. Maybe you’ve built your own. You’ve written many lines of C++ (even though maybe you secretly can’t stand it). You like solving hard problems, startups, and working with smart people. Nothing scares you. Vulkan? Hah! Maybe you’ve dabbled with functional programming languages, like Erlang or Elixir. Perhaps even Haskell. You’re independent and self-motivated. You love learning new things. Nothing is impossible, some things just take a bit longer to figure out. It’s just code.&lt;/p&gt;

&lt;p&gt;We are based in Montreal but are all remote, so your physical location is not an issue.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/log_pilotier.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;pilotier_week_196&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://advances.realtimerendering.com/s2021/index.html&#34; target=&#34;_blank&#34; id=&#34;Advances in Real-Time Rendering in 3D Graphics and Games - Siggraph 2021&#34;&gt;Advances in Real-Time Rendering in 3D Graphics and Games - Siggraph 2021&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;course page for the content of Siggraph 2021&lt;/li&gt;
&lt;li&gt;covering Spatial Upscaling through FidelityFX, Concurrent Binary Trees for Large-scale Terrain Rendering&lt;/li&gt;
&lt;li&gt;Nanite Virtualized Geometry, Large-Scale Global Illumination&lt;/li&gt;
&lt;li&gt;Lighting, Atmosphere, and Tonemapping in Ghost of Tsushima and Global Illumination Based on Surfels&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-196/siggraph_2021_advances_in_real_time.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210811223814/http://advances.realtimerendering.com/s2021/index.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://enginearchitecture.realtimerendering.com/2021_course/&#34; target=&#34;_blank&#34; id=&#34;Rendering Engine Architecture Course - Siggraph 2021&#34;&gt;Rendering Engine Architecture Course - Siggraph 2021&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a new course happening for the first time in 2021&lt;/li&gt;
&lt;li&gt;focusing on the architectural aspect of real-time rendering engines&lt;/li&gt;
&lt;li&gt;currently publicly released slides include&lt;/li&gt;
&lt;li&gt;Activision Engine Architecture and Geometry Rendering Pipeline&lt;/li&gt;
&lt;li&gt;Roblox / Unity Rendering Engine Architecture,&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-196/unity_rendering_architecture.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210814002521/http://enginearchitecture.realtimerendering.com/2021_course/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.oculus.com/blog/graphics-showcase-using-vulkan-subpasses-in-ue4-for-performant-tone-mapping-on-quest/&#34; target=&#34;_blank&#34; id=&#34;Graphics Showcase: Using Vulkan Subpasses in UE4 for Performant Tone Mapping on Quest&#34;&gt;Graphics Showcase: Using Vulkan Subpasses in UE4 for Performant Tone Mapping on Quest&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;article presents how tone mapping can be implemented into UE 4 using Vulkan sub passes&lt;/li&gt;
&lt;li&gt;shows how much more efficient the implementation is on Quest2 when using sub passes vs. an additional render pass&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-196/quest2-tonemapping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210813135443/https://developer.oculus.com/blog/graphics-showcase-using-vulkan-subpasses-in-ue4-for-performant-tone-mapping-on-quest/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://pharr.org/matt&#34; target=&#34;_blank&#34;&gt;Matt Pharr&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 195 - August 8, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-195/</link>
      <pubDate>Sun, 08 Aug 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-195/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/ray-tracing-gems-ii-available-today-as-free-digital-download/&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing Gems II Available Today as Free Digital Download&#34;&gt;Ray Tracing Gems II Available Today as Free Digital Download&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;free 800+ pages on raytracing&lt;/li&gt;
&lt;li&gt;a large number of topics is covered, including the following&lt;/li&gt;
&lt;li&gt;summary of photographic terms, sampling textures without automatic derivatives, visualizing and
communicating errors in rendered images, multiple importance sampling 101, ray-traced decals, LODs, and much more&lt;/li&gt;
&lt;li&gt;source code is available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-195/RTG_II_TW.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210805202043/https://developer.nvidia.com/blog/ray-tracing-gems-ii-available-today-as-free-digital-download/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.paperdigest.org/2021/08/siggraph-2021-highlights/&#34; target=&#34;_blank&#34; id=&#34;Paper Digest: SIGGRAPH 2021 Highlights&#34;&gt;Paper Digest: SIGGRAPH 2021 Highlights&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;list of 149 accepted SIGGRAPH-2021 papers&lt;/li&gt;
&lt;li&gt;containing a machine-generated one-sentence summary for each paper&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-195/siggraph_2021.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210809054725/https://www.paperdigest.org/2021/08/siggraph-2021-highlights/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2021/08/04/EXR-Lossless-Compression/&#34; target=&#34;_blank&#34; id=&#34;EXR: Lossless Compression&#34;&gt;EXR: Lossless Compression&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;short blog post that tests EXR compression/decompression speed for the different available options&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-195/exr_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210804182032/https://aras-p.info/blog/2021/08/04/EXR-Lossless-Compression/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.threedy.io/assets/threedy_assignment_graphics-engineer_en.pdf&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Graphics Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Germany (remote possible)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Threedy is a young Fraunhofer spin-off with a considerable number of high-profile customers in the german automotive sector.&lt;/p&gt;

&lt;p&gt;We develop the Visual-Computing-as-a-Service platform instant3Dhub to enable our customers to leverage the true value of their 3D data in industrial applications – any data, any device, any size.&lt;/p&gt;

&lt;p&gt;instant3Dhub has a strong focus on CAD data visualization, from browser-based to mixed reality applications and delivers out-of-the-box collaboration and augmented reality features.&lt;/p&gt;

&lt;p&gt;We are looking for graphics programming enthusiasts to support our core development team for the 3D streaming with a focus on the evolution of our web frontend build on WebGL.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Threedy_instant3Dhub-Logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;threedy_week_195&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://psgraphics.blogspot.com/2021/08/a-call-to-brute-force.html&#34; target=&#34;_blank&#34; id=&#34;A call to brute force&#34;&gt;A call to brute force&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;author shows that path tracers are fundamentally simple if relying on pure brute force approaches&lt;/li&gt;
&lt;li&gt;starting a discussion if a global rendering network would make it possible to render objects that are easily modeled with microgeometry but difficult to render efficiently&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-195/falling-snow-desktop.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210806165607/http://psgraphics.blogspot.com/2021/08/a-call-to-brute-force.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pharr.org/matt/blog/2021/08/07/moana-bandwidth-note&#34; target=&#34;_blank&#34; id=&#34;Swallowing the Elephant (Part 12): A Postscript On Disk Bandwidth&#34;&gt;Swallowing the Elephant (Part 12): A Postscript On Disk Bandwidth&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discussion of loading performance in pbrt-v4&lt;/li&gt;
&lt;li&gt;showing how IO and CPU performance bottleneck change&lt;/li&gt;
&lt;li&gt;comparing uncompressed and different compression options&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-195/compression_pbrt.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/EuYh9&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lokathor.github.io/prng/&#34; target=&#34;_blank&#34; id=&#34;A Little Bit About PRNG Stuff&#34;&gt;A Little Bit About PRNG Stuff&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;article presents an in-depth discussion of Pseudorandom Number Generators&lt;/li&gt;
&lt;li&gt;presenting different non Cryptographically generators&lt;/li&gt;
&lt;li&gt;code examples are presented in Rust&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-195/prng.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/kdqJT&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://unity.com/event/siggraph-2021&#34; target=&#34;_blank&#34; id=&#34;Unity at SIGGRAPH 2021&#34;&gt;Unity at SIGGRAPH 2021&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of Unity at Siggraph&lt;/li&gt;
&lt;li&gt;Unity is providing access to a basic level SIGGRAPH pass&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-195/SIGGRAPH%202021_SEO_1200x630.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210728030616/https://unity.com/event/siggraph-2021&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.realtimerendering.com/blog/some-books/&#34; target=&#34;_blank&#34; id=&#34;Some Books&#34;&gt;Some Books&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;author suggested 3 books for computer graphics&lt;/li&gt;
&lt;li&gt;covering raytracing, introduction to computer graphics as well as deep learning&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-195/computer_graphics_books.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210805232144/http://www.realtimerendering.com/blog/some-books/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://simul.co/careers/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Rendering Engineer &amp;amp; Rendering Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Liverpool based/remote work considered&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;We are looking for a Rendering Engineer with experience in developing high-quality, high-performance software: in games or otherwise.&lt;/p&gt;

&lt;p&gt;This role will suit someone who is keen to take the next step forward in their career and in interactive tech. We are working on core immersive technology that spans the full range of XR, and this is an opportunity to help shape the future of spatial computing.&lt;/p&gt;

&lt;p&gt;Simul is an established leader in real-time graphics middleware; the company&amp;rsquo;s customers include Bandai Namco, Microsoft Game Studios, Sony, and Ubisoft. In 2020, Simul won the TIGA 2020 Best Technical Innovation Award for our work on trueSKY, the leading real-time weather SDK. We have a culture of agile development focused on quality, performance and precision. We believe in equal opportunity and a diverse, inclusive and supportive workplace.&lt;/p&gt;

&lt;p&gt;You will be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Researching and developing new immersive technologies,&lt;/li&gt;
&lt;li&gt;Working in an agile team,&lt;/li&gt;
&lt;li&gt;Finding and fixing bugs and performance issues,&lt;/li&gt;
&lt;li&gt;Profiling and optimizing CPU, GPU and network code,&lt;/li&gt;
&lt;li&gt;Representing Simul at technical and non-technical events, in-person and online.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The benefits Simul offers are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flexible remote working,&lt;/li&gt;
&lt;li&gt;Regular salary reviews and career progression,&lt;/li&gt;
&lt;li&gt;22 days holiday + bank holidays,&lt;/li&gt;
&lt;li&gt;Dedicated self-development time.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/simul_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;simul_week_195&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/rrika9&#34; target=&#34;_blank&#34;&gt;Erika&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 194 - August 1, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-194/</link>
      <pubDate>Sun, 01 Aug 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-194/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/free-ray-tracing-gems-ii-chapter-covers-ray-tracing-in-remedys-control&#34; target=&#34;_blank&#34; id=&#34;Free Ray Tracing Gems II Chapter Covers Ray Tracing in Remedy’s Control&#34;&gt;Free Ray Tracing Gems II Chapter Covers Ray Tracing in Remedy’s Control&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents how all ray-tracing based effects were implemented in the game Control&lt;/li&gt;
&lt;li&gt;opaque and transparent reflections, near field indirect diffuse illumination, contact shadows, and denoiser tweaks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-194/Control_DevNews_1000x600.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://developer.download.nvidia.com/ray-tracing-gems/rtg2-chapter46-preprint.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210731091210/https://developer.nvidia.com/blog/free-ray-tracing-gems-ii-chapter-covers-ray-tracing-in-remedys-control/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://filmicworlds.com/blog/visibility-taa-and-upsampling-with-subsample-history/&#34; target=&#34;_blank&#34; id=&#34;Visibility TAA and Upsampling with Subsample History&#34;&gt;Visibility TAA and Upsampling with Subsample History&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;extension of the previously presented  Decoupled Visibility Multisampling technique&lt;/li&gt;
&lt;li&gt;underlying idea is to see 8xMSAA as a 2x2 group of pixels with 2xMSAA each&lt;/li&gt;
&lt;li&gt;using the sample information for TAA upsampling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-194/merged_upsample_header.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210731174813/http://filmicworlds.com/blog/visibility-taa-and-upsampling-with-subsample-history/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pharr.org/matt/blog/2021/07/29/moana-rendered-on-the-gpu&#34; target=&#34;_blank&#34; id=&#34;Swallowing the Elephant (Part 10): Rendering on the GPU—Finally&#34;&gt;Swallowing the Elephant (Part 10): Rendering on the GPU—Finally&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part of the series that discusses how GPU support for the Moana Island scene was added to pbrt-v4&lt;/li&gt;
&lt;li&gt;presents an overview of ptex approaches chooses by others and shows the currently basic Ptex approximation used&lt;/li&gt;
&lt;li&gt;shows a comparison between the CPU and GPU version&lt;/li&gt;
&lt;li&gt;additionally discusses performance and optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-194/moana_gpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210802062026/https://pharr.org/matt/blog/2021/07/29/moana-rendered-on-the-gpu&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lei.chat/posts/gpgpu-ml-inference-and-vulkan-compute/&#34; target=&#34;_blank&#34; id=&#34;GPGPU, ML Inference, and Vulkan Compute&#34;&gt;GPGPU, ML Inference, and Vulkan Compute&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog discusses Vulkan usage for GPGPU workloads, in particular for machine learning&lt;/li&gt;
&lt;li&gt;presents the varying requirements for machine learning and how Vulkan can be used to satisfy them&lt;/li&gt;
&lt;li&gt;discusses how it interacts with the business aspects (OEM, platform holders, &amp;hellip;)&lt;/li&gt;
&lt;li&gt;additionally shows the authors view onto the current challenges and future developments&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-194/vulkan.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210802062127/https://www.lei.chat/posts/gpgpu-ml-inference-and-vulkan-compute/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.threedy.io/assets/threedy_assignment_graphics-engineer_en.pdf&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Graphics Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Germany (remote possible)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Threedy is a young Fraunhofer spin-off with a considerable number of high-profile customers in the german automotive sector.&lt;/p&gt;

&lt;p&gt;We develop the Visual-Computing-as-a-Service platform instant3Dhub to enable our customers to leverage the true value of their 3D data in industrial applications – any data, any device, any size.&lt;/p&gt;

&lt;p&gt;instant3Dhub has a strong focus on CAD data visualization, from browser-based to mixed reality applications and delivers out-of-the-box collaboration and augmented reality features.&lt;/p&gt;

&lt;p&gt;We are looking for graphics programming enthusiasts to support our core development team for the 3D streaming with a focus on the evolution of our web frontend build on WebGL.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Threedy_instant3Dhub-Logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;threedy_week_194&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bastian.urbach.one/rtswplusd&#34; target=&#34;_blank&#34; id=&#34;Real-Time Shading with Polyhedral Lights using Silhouette Detection&#34;&gt;Real-Time Shading with Polyhedral Lights using Silhouette Detection&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a Bachelor thesis that presents a method for GPU based silhouette generation from Polyhedral lights&lt;/li&gt;
&lt;li&gt;uses an algorithm based on binary space partitioning for storing precomputed silhouettes for every point in the scene&lt;/li&gt;
&lt;li&gt;additionally presents how to use Silhouettes for Solid Angle Sampling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-194/light_polygons.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://bastian.urbach.one/rtswplusd/thesis.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20210728080615/https://bastian.urbach.one/rtswplusd/thesis.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210728144619/https://bastian.urbach.one/rtswplusd/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=X2FBFFBDJf0&#34; target=&#34;_blank&#34; id=&#34;[video] The Making of “Alpha Point”—UE5 Technical Demo | GDC 2021&#34;&gt;[video] The Making of “Alpha Point”—UE5 Technical Demo | GDC 2021&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;GDC talk presents a walkthrough of the technical creation aspects of the demo&lt;/li&gt;
&lt;li&gt;shows UE5 was used, discussing nanite limitations and how the different systems can be combined&lt;/li&gt;
&lt;li&gt;additionally, art pipeline implications and findings&lt;/li&gt;
&lt;li&gt;presenting performance numbers of lumen, nanite, upsampling, virtual textures, virtual shadow maps, &amp;hellip;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-194/coalition_gdc.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://simonstechblog.blogspot.com/2021/08/color-matching-function-comparison.html&#34; target=&#34;_blank&#34; id=&#34;Color Matching Function Comparison&#34;&gt;Color Matching Function Comparison&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post compares different Color Matching Function (CMF) for use with spectral rendering techniques&lt;/li&gt;
&lt;li&gt;provides an analytical approximation for the CIE 2006 CMF and provides how to calculate the D65 white point&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-194/color_matching.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210801080111/https://simonstechblog.blogspot.com/2021/08/color-matching-function-comparison.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://slembcke.github.io/2D-Lighting-Overview&#34; target=&#34;_blank&#34; id=&#34;2D Lighting Techniques&#34;&gt;2D Lighting Techniques&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of numerous techniques that can be used to implement lighting for a 2D game&lt;/li&gt;
&lt;li&gt;discusses pros/cons of each technique&lt;/li&gt;
&lt;li&gt;additionally shows limitations of the techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-194/lightfield.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210801203223/https://slembcke.github.io/2D-Lighting-Overview&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.saschawillems.de/blog/2021/08/01/vulkan-hardware-database-updates/&#34; target=&#34;_blank&#34; id=&#34;Vulkan Hardware Database updates&#34;&gt;Vulkan Hardware Database updates&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Vulkan hardware database has been updated&lt;/li&gt;
&lt;li&gt;texture format view now has a breakdown of what tiling mode is supported for each format&lt;/li&gt;
&lt;li&gt;improved filtering, cleaned up data and color space added for surface formats&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-194/vulkan_format_support.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210801141610/https://www.saschawillems.de/blog/2021/08/01/vulkan-hardware-database-updates/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/rrika9&#34; target=&#34;_blank&#34;&gt;Erika&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 193 - July 25, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-193/</link>
      <pubDate>Sun, 25 Jul 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-193/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://filmicworlds.com/blog/software-vrs-with-visibility-buffer-rendering/&#34; target=&#34;_blank&#34; id=&#34;Software VRS with Visibility Buffer Rendering&#34;&gt;Software VRS with Visibility Buffer Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses how Visibility Buffer can be combined with Variable Rate Shading (VRS) Techniques&lt;/li&gt;
&lt;li&gt;shows how careful selection of sample positions can archive convergence towards the reference non-VRS image&lt;/li&gt;
&lt;li&gt;presents the performance of VRS usage for forward, deferred, and visibility approaches. Comparing different pixel densities&lt;/li&gt;
&lt;li&gt;additionally discusses techniques how the sparse g-buffers might be integrated into other rendering passes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-193/vrs_header_01.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210721214303/http://filmicworlds.com/blog/software-vrs-with-visibility-buffer-rendering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://joyrok.com/SDFs-Part-Two&#34; target=&#34;_blank&#34; id=&#34;There is no S in SDF without the Distance Fields! &#34;&gt;There is no S in SDF without the Distance Fields! &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to express SDFs in Unity and Unreal&lt;/li&gt;
&lt;li&gt;shows the basic steps for a circle SDF&lt;/li&gt;
&lt;li&gt;extends this to show how to animate, combine and blend shapes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-193/sdf_unity_unreal.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210726025357/https://joyrok.com/SDFs-Part-Two&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.download.nvidia.com/ray-tracing-gems/rtg2-chapter30-preprint.pdf&#34; target=&#34;_blank&#34; id=&#34;Real-time ray traced caustics&#34;&gt;Real-time ray traced caustics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the preprint from Ray Tracing Gems 2 covers two techniques for caustics&lt;/li&gt;
&lt;li&gt;One focuses on the caustics around metallic and transparent surfaces&lt;/li&gt;
&lt;li&gt;the second is for caustics cast by water surfaces&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-193/caustics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210726033059/https://developer.download.nvidia.com/ray-tracing-gems/rtg2-chapter30-preprint.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2021/07/20/processing-aware-image-filtering-compensating-for-the-upsampling/&#34; target=&#34;_blank&#34; id=&#34;Processing aware image filtering: compensating for the upsampling&#34;&gt;Processing aware image filtering: compensating for the upsampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the idea of compensating for shortcomings of an upsample technique in the downsampling step&lt;/li&gt;
&lt;li&gt;shows the development of an improved downsample filter to compensate for bilinear upsampling&lt;/li&gt;
&lt;li&gt;discusses how this is related to the typical sharpening of mipmaps done as part of game art pipelines&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-193/upsample_aware_downsample.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210721235440/https://bartwronski.com/2021/07/20/processing-aware-image-filtering-compensating-for-the-upsampling/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.threedy.io/assets/threedy_assignment_graphics-engineer_en.pdf&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Graphics Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Germany (remote possible)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Threedy is a young Fraunhofer spin-off with a considerable number of high-profile customers in the german automotive sector.&lt;/p&gt;

&lt;p&gt;We develop the Visual-Computing-as-a-Service platform instant3Dhub to enable our customers to leverage the true value of their 3D data in industrial applications – any data, any device, any size.&lt;/p&gt;

&lt;p&gt;instant3Dhub has a strong focus on CAD data visualization, from browser-based to mixed reality applications and delivers out-of-the-box collaboration and augmented reality features.&lt;/p&gt;

&lt;p&gt;We are looking for graphics programming enthusiasts to support our core development team for the 3D streaming with a focus on the evolution of our web frontend build on WebGL.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Threedy_instant3Dhub-Logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;threedy_week_193&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/reducing-acceleration-structure-memory-with-nvidia-rtxmu/&#34; target=&#34;_blank&#34; id=&#34;Reducing Acceleration Structure Memory with NVIDIA RTXMU&#34;&gt;Reducing Acceleration Structure Memory with NVIDIA RTXMU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the NVIDIA RTX Memory Utility is an open-source (MIT License) SDK designed for reducing the complexity of memory management for Raytracing on Vulkan and D3D12&lt;/li&gt;
&lt;li&gt;shows how to use the utility to integrate acceleration structure memory reduction techniques&lt;/li&gt;
&lt;li&gt;additionally presents how much memory can be saved on different scenes (very scene dependent)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-193/RTXMU-blog-featured.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210719155540/https://developer.nvidia.com/blog/reducing-acceleration-structure-memory-with-nvidia-rtxmu/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=K6XmuVaACDY&#34; target=&#34;_blank&#34; id=&#34;[video] Arm Mali GPU Training Series Ep 1.2 : The rendering pipeline&#34;&gt;[video] Arm Mali GPU Training Series Ep 1.2 : The rendering pipeline&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video discusses the rendering pipeline&lt;/li&gt;
&lt;li&gt;presents the geometry and pixel processing pipeline&lt;/li&gt;
&lt;li&gt;shows how mali hardware implements the API pipeline for more efficient execution&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-193/mali_rendering_pipeline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=n9SOfC4Haj4&#34; target=&#34;_blank&#34; id=&#34;[video] Arm Mali GPU Training Series Ep 1.3 : GPU architecture&#34;&gt;[video] Arm Mali GPU Training Series Ep 1.3 : GPU architecture&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how the rendering pipeline translates into GPU hardware&lt;/li&gt;
&lt;li&gt;comparing immediate-mode vs. tile-based GPUs&lt;/li&gt;
&lt;li&gt;presents the pros and cons of both models and why mobile GPUs are tile-based&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-193/mali_tile_based_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=R7gdINpAGeI&#34; target=&#34;_blank&#34; id=&#34;[video] Arm Mali GPU Training Series Ep 1.4 : Hardware shader cores&#34;&gt;[video] Arm Mali GPU Training Series Ep 1.4 : Hardware shader cores&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video discusses the hardware essentials&lt;/li&gt;
&lt;li&gt;presents how CPUs are designed&lt;/li&gt;
&lt;li&gt;followed by how the design for GPUs is adjusted to take advantage of the graphics workloads&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-193/mali_shader_core.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rastergrid.com/blog/gpu-tech/2021/07/gpu-architecture-types-explained/&#34; target=&#34;_blank&#34; id=&#34;GPU architecture types explained&#34;&gt;GPU architecture types explained&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses tile-based and immediate-mode rendering GPUs in detail&lt;/li&gt;
&lt;li&gt;exploiting how they work&lt;/li&gt;
&lt;li&gt;discussing strengths/weaknesses&lt;/li&gt;
&lt;li&gt;additionally covers how these influence the efficiency of rendering algorithms such as shadow map rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-193/TBRDeferred.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210722200956/https://rastergrid.com/blog/gpu-tech/2021/07/gpu-architecture-types-explained/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/news-insights/white-papers/using-debug-printf/&#34; target=&#34;_blank&#34; id=&#34;Using Debug Printf&#34;&gt;Using Debug Printf&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;whitepaper that discusses how to use printf in Vulkan shaders&lt;/li&gt;
&lt;li&gt;presents how to use shader printf from HLSL, GLSL, and SPIR-V shaders&lt;/li&gt;
&lt;li&gt;additionally covers RenderDoc and validation layer integration&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-193/renderdoc_printf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.lunarg.com/wp-content/uploads/2021/07/Using-Debug-Printf-15July2021.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20210720173858/https://www.lunarg.com/wp-content/uploads/2021/07/Using-Debug-Printf-15July2021.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210721023517/https://www.lunarg.com/news-insights/white-papers/using-debug-printf/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gist.github.com/munrocket/f247155fc22ecb8edf974d905c677de1?s=09&amp;amp;utm_source=pocket_mylist&#34; target=&#34;_blank&#34; id=&#34;3D SDF Primitives in WGSL&#34;&gt;3D SDF Primitives in WGSL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of Signed-distance field primitives (Cylinder, cubes, &amp;hellip;) expressed in WebGPU Shading Language (WGSL)&lt;/li&gt;
&lt;li&gt;additionally contains Boolean operations, displacement, positioning, and rotations for SDFs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-193/boolean_operations.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=yEkryaaAsBU&#34; target=&#34;_blank&#34; id=&#34;[video] Tech Focus: Global Illumination - What It Is, How Does It Work And Why Do We Need It?&#34;&gt;[video] Tech Focus: Global Illumination - What It Is, How Does It Work And Why Do We Need It?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an overview explanation of Global Illumination&lt;/li&gt;
&lt;li&gt;presents an overview of the fundamental concepts&lt;/li&gt;
&lt;li&gt;covers several techniques that have been used to approximate it&lt;/li&gt;
&lt;li&gt;discussing advantages and disadvantages of the techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-193/global_illumination.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/ToyRenderer4RayTracing.html&#34; target=&#34;_blank&#34; id=&#34;My toy renderer, part 4: Ray tracing&#34;&gt;My toy renderer, part 4: Ray tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article goes into detail on how to implement physically correct and affordable ray traced soft shadows for individual polygonal or linear lights&lt;/li&gt;
&lt;li&gt;presents an overview of the concept of ray queries (rays that can be inline at each shader stage)&lt;/li&gt;
&lt;li&gt;shows in-depth the steps required for area lights, including importance sampling, diffuse, specular, and texture integration&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-193/area_light_raytracer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210726061139/https://momentsingraphics.de/ToyRenderer4RayTracing.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/rrika9&#34; target=&#34;_blank&#34;&gt;Erika&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 192 - July 18, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-192/</link>
      <pubDate>Sun, 18 Jul 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-192/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://filmicworlds.com/blog/decoupled-visibility-multisampling/&#34; target=&#34;_blank&#34; id=&#34;Decoupled Visibility Multisampling&#34;&gt;Decoupled Visibility Multisampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a method that decouples geometry samples from shading samples&lt;/li&gt;
&lt;li&gt;explains the difference of human vision between the ability to detect edge aliasing and internal aliasing and why geometric frequency is required to be higher&lt;/li&gt;
&lt;li&gt;explains performance implication of triangle sizes and MSAA&lt;/li&gt;
&lt;li&gt;shows how TAA, MSAA, and Decoupled Visibility Multisampling (DMV) compare in performance and quality&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-192/hairball_group_split_header_crop.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210716025348/http://filmicworlds.com/blog/decoupled-visibility-multisampling/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.reedbeta.com/blog/slope-space-in-brdf-theory/&#34; target=&#34;_blank&#34; id=&#34;Slope Space in BRDF Theory&#34;&gt;Slope Space in BRDF Theory&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a refresher on the concept of slope&lt;/li&gt;
&lt;li&gt;shows that slope space is a representation for unit vectors in the upper&lt;/li&gt;
&lt;li&gt;presents the properties of slope space, what advantages it has&lt;/li&gt;
&lt;li&gt;additionally discusses how slope space is used in normal distribution functions (NDF)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-192/slope-space.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210716224217/https://www.reedbeta.com/blog/slope-space-in-brdf-theory/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://fire-face.com/destruction/&#34; target=&#34;_blank&#34; id=&#34;Dynamic destruction in Radio Viscera&#34;&gt;Dynamic destruction in Radio Viscera&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how the destruction system was implemented&lt;/li&gt;
&lt;li&gt;based around a world map damage textures that contain a mask to mark destroyed areas&lt;/li&gt;
&lt;li&gt;this mask is then sampled during a geometry to cull and transform geometry to represent the destruction&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-192/destruction_timeline.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210716210328/http://fire-face.com/destruction/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://iquilezles.org/www/articles/fbmsdf/fbmsdf.htm&#34; target=&#34;_blank&#34; id=&#34;FBM detail in SDFs &#34;&gt;FBM detail in SDFs &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a natural SDF based detail mapping / Fractal Noise displacement mapping&lt;/li&gt;
&lt;li&gt;technique presented uses spheres of varying radius to represent a varying level of octaves to represent the details&lt;/li&gt;
&lt;li&gt;presents how to combine the different layers and suggests alternative possibilities&lt;/li&gt;
&lt;li&gt;additionally presents a video that shows a clear visualization of the different layers being combined&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-192/fBM_sdf.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210714072130/https://iquilezles.org/www/articles/fbmsdf/fbmsdf.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://apply.workable.com/ndreams/j/69D299FB67/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Principal Technical Artist&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Farnborough, England&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;nDreams is a world-leading virtual reality game developer and publisher, combining innovation with excellence. Our projects are a leap forward for VR and for the studio and we are looking for talented people to help turn them into a reality.&lt;/p&gt;

&lt;p&gt;We’re the studio behind the #1 Selling, Best of E3 Award-winning, Phantom: Covert Ops and we’ve got several exciting projects planned for 2021 and beyond, including Fracked, our recently announced PS VR exclusive. Once you’ve seen what we’re up to, we’re convinced you’ll want to be involved…&lt;/p&gt;

&lt;p&gt;Our artists believe in the power of VR to immerse and entertain players like no other medium can. We are seeking a Principal Technical Artist to collaborate with and support the team, ensuring their content looks great in-game whilst adhering to the technical constraints of projects and hardware. Whether you are a games industry veteran or an experienced VFX Technical Artist/Director who’d like to make a change, we’d love to hear from you.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/nDreamsLogoBlack.JPG&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;ndreams_week_192&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-106-16-07-2021/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 106 (16.07.2021)&#34;&gt;Technically Art: Issue 106 (16.07.2021)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets about technical art&lt;/li&gt;
&lt;li&gt;covering particles, stylized shading, portfolios, and game breakdowns&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-192/technically_art_template_106.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210716190821/https://halisavakis.com/technically-art-issue-106-16-07-2021/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/CedricGuillemet/SDF&#34; target=&#34;_blank&#34; id=&#34;Signed Distance field (SDF)&#34;&gt;Signed Distance field (SDF)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of resources, links, papers, discussions about SDFs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-192/sdf_composite.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210718165258/https://github.com/CedricGuillemet/SDF&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/ToyRenderer3RenderingBasics.html&#34; target=&#34;_blank&#34; id=&#34;My toy renderer, part 3: Rendering basics&#34;&gt;My toy renderer, part 3: Rendering basics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how a visibility buffer approach is used&lt;/li&gt;
&lt;li&gt;presents how the shading pass has been implemented (Frostbite BRDF, tangent frames, &amp;hellip;)&lt;/li&gt;
&lt;li&gt;covers area light implementation using Linearly transformed cosines and compares different representation and discuss the tradeoffs&lt;/li&gt;
&lt;li&gt;additionally covers different noise types and the effect on denoising&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-192/polygonal_light.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210719065818/https://momentsingraphics.de/ToyRenderer3RenderingBasics.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=tnR4mExVClY&#34; target=&#34;_blank&#34; id=&#34;[video] Arm Mali GPU Training Series Ep 1.1 : Introduction to mobile systems&#34;&gt;[video] Arm Mali GPU Training Series Ep 1.1 : Introduction to mobile systems&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the first part of the series discusses where mobile GPUs are used&lt;/li&gt;
&lt;li&gt;presents how the hardware design is setup&lt;/li&gt;
&lt;li&gt;shows how power usage and thermal efficiency budgets are influencing all systems on a chip&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-192/mobile_gpu_power_budget.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.download.nvidia.com//ray-tracing-gems/rtg2-chapter22-preprint.pdf&#34; target=&#34;_blank&#34; id=&#34;Weighted reservoir sampling: randomly sampling streams&#34;&gt;Weighted reservoir sampling: randomly sampling streams&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;pre-release chapter from ray tracing gems 2&lt;/li&gt;
&lt;li&gt;presents weighted reservoir sampling, a technique for the efficient sampling stochastic data&lt;/li&gt;
&lt;li&gt;shows how optimized variants of algorithms exist to sample with different properties, weighting behaviors, or duplicate output behavior&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-192/reservoir_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210715210201/https://developer.download.nvidia.com//ray-tracing-gems/rtg2-chapter22-preprint.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/fsr-source-available/&#34; target=&#34;_blank&#34; id=&#34;AMD FidelityFX Super Resolution (FSR) source code is now available here on GPUOpen&#34;&gt;AMD FidelityFX Super Resolution (FSR) source code is now available here on GPUOpen&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the source code for the technique has been published on Github&lt;/li&gt;
&lt;li&gt;also contains a sample implementation of how it can be integrated&lt;/li&gt;
&lt;li&gt;the technique only relies on color buffer information for the upsampling pass&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-192/FidelityFX_Super_Resolution.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210716193716/https://gpuopen.com/fsr-source-available/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://top-or.de/projects&#34; target=&#34;_blank&#34;&gt;Jens Hartmann&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 191 - July 11, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-191/</link>
      <pubDate>Sun, 11 Jul 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-191/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://filmicworlds.com/blog/visibility-buffer-rendering-with-material-graphs&#34; target=&#34;_blank&#34; id=&#34;Visibility Buffer Rendering with Material Graphs&#34;&gt;Visibility Buffer Rendering with Material Graphs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of The Visibility Buffer approach&lt;/li&gt;
&lt;li&gt;compares the technique against forward and deferred shading at varying texture densities&lt;/li&gt;
&lt;li&gt;presenting performance results&lt;/li&gt;
&lt;li&gt;including a discussion of derivative calculation and the effect on helper lanes&lt;/li&gt;
&lt;li&gt;additionally discusses several considerations and future developments&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-191/visibility_buffer_header_split.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210707174922/http://filmicworlds.com/blog/visibility-buffer-rendering-with-material-graphs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://youtu.be/eGfX1iWzkh0?t=1306&#34; target=&#34;_blank&#34; id=&#34;HPG 2021 Keynote: Alex Evans (NVIDIA), Optimising for Artist Happiness&#34;&gt;HPG 2021 Keynote: Alex Evans (NVIDIA), Optimising for Artist Happiness&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Alex covers many ideas and algorithms&lt;/li&gt;
&lt;li&gt;classical tools require the artist to deal with technical aspects at all time&lt;/li&gt;
&lt;li&gt;removing soft constraints allows the artist to focus on the art&lt;/li&gt;
&lt;li&gt;presents how cluster culling and LOD selection removes the polygon count soft constraint&lt;/li&gt;
&lt;li&gt;shows different ways to work with SDFs&lt;/li&gt;
&lt;li&gt;closes with a look at the volumetric rendering and Neural Radiance Fields (NeRF)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-191/artist_happiness.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2021/07/10/raytracing-tidbits/&#34; target=&#34;_blank&#34; id=&#34;Raytracing tidbits&#34;&gt;Raytracing tidbits&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of ray tracing experiments and presentation of results&lt;/li&gt;
&lt;li&gt;covering ray divergence, hybrid global illumination, shadow mapped GI&lt;/li&gt;
&lt;li&gt;additionally shows the effect of second bounce GI as well as improved reverse z-buffer precision&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-191/shadowpass.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210711065850/https://interplayoflight.wordpress.com/2021/07/10/raytracing-tidbits/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://apply.workable.com/ndreams/j/69D299FB67/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Principal Technical Artist&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Farnborough, England&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;nDreams is a world-leading virtual reality game developer and publisher, combining innovation with excellence. Our projects are a leap forward for VR and for the studio and we are looking for talented people to help turn them into a reality.&lt;/p&gt;

&lt;p&gt;We’re the studio behind the #1 Selling, Best of E3 Award-winning, Phantom: Covert Ops and we’ve got several exciting projects planned for 2021 and beyond, including Fracked, our recently announced PS VR exclusive. Once you’ve seen what we’re up to, we’re convinced you’ll want to be involved…&lt;/p&gt;

&lt;p&gt;Our artists believe in the power of VR to immerse and entertain players like no other medium can. We are seeking a Principal Technical Artist to collaborate with and support the team, ensuring their content looks great in-game whilst adhering to the technical constraints of projects and hardware. Whether you are a games industry veteran or an experienced VFX Technical Artist/Director who’d like to make a change, we’d love to hear from you.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/nDreamsLogoBlack.JPG&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;ndreams_week_191&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.download.nvidia.com//ray-tracing-gems/rtg2-chapter14-preprint.pdf&#34; target=&#34;_blank&#34; id=&#34;The reference path tracer&#34;&gt;The reference path tracer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;first free chapter from ray tracing gems 2 has been released&lt;/li&gt;
&lt;li&gt;discusses the implementation of a path tracer that is aimed at being us as a reference renderer for in-engine integration&lt;/li&gt;
&lt;li&gt;source code is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-191/reference_path_tracer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210708055727/https://developer.download.nvidia.com//ray-tracing-gems/rtg2-chapter14-preprint.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://16bpp.net/blog/post/automated-testing-of-a-ray-tracer/&#34; target=&#34;_blank&#34; id=&#34;Automated Testing of a Ray Tracer&#34;&gt;Automated Testing of a Ray Tracer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;author presents an introduction to automated visual testing&lt;/li&gt;
&lt;li&gt;discusses how to reduce the combinations that need to be tested&lt;/li&gt;
&lt;li&gt;how to make sure that runs are deterministic&lt;/li&gt;
&lt;li&gt;additionally provides source examples of how to use python to run the visual testing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-191/diff-enhanced.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210708143420/https://16bpp.net/blog/post/automated-testing-of-a-ray-tracer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2021/07/06/comparing-images-in-frequency-domain-spectral-loss-does-it-make-sense&#34; target=&#34;_blank&#34; id=&#34;Comparing images in frequency domain. “Spectral loss” – does it make sense?&#34;&gt;Comparing images in frequency domain. “Spectral loss” – does it make sense?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses if it makes sense to compare images in the frequency domain&lt;/li&gt;
&lt;li&gt;presents a few typical approaches, discuss their shortcomings and recommendations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-191/spectral_loss.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210708114751/https://bartwronski.com/2021/07/06/comparing-images-in-frequency-domain-spectral-loss-does-it-make-sense/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=cD26XDIQawo&#34; target=&#34;_blank&#34; id=&#34;HPG 2021 Papers Preview&#34;&gt;HPG 2021 Papers Preview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;preview video if a view of the papers presented at HPG 2021&lt;/li&gt;
&lt;li&gt;see the video presentation of the papers in &lt;a href=&#34;https://www.youtube.com/watch?v=eGfX1iWzkh0&#34; target=&#34;_blank&#34;&gt;day 1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-191/hpg_paper_trailer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://metalbyexample.com/webgpu-part-two/&#34; target=&#34;_blank&#34; id=&#34;WebGPU for Metal Developers, Part Two&#34;&gt;WebGPU for Metal Developers, Part Two&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;second part of the series explaining the WebGPU basics by presenting the equivalent concepts from a metal perspective&lt;/li&gt;
&lt;li&gt;shows how to apply displacement mapping onto a plane to approximate a terrain&lt;/li&gt;
&lt;li&gt;covers how to load and sample textures&lt;/li&gt;
&lt;li&gt;resource binding, pipeline setup for 3d depth testing enabled&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-191/web_gpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210709163017/https://metalbyexample.com/webgpu-part-two/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://darthgera123.github.io/blogs/neural_rendering/relighting-nerf/&#34; target=&#34;_blank&#34; id=&#34;Relighting and Material Editing with Implicit Representations&#34;&gt;Relighting and Material Editing with Implicit Representations&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a brief overview of NeRF (neural radiance fields)&lt;/li&gt;
&lt;li&gt;then presents 3 methods that enable the relighting&lt;/li&gt;
&lt;li&gt;discussing differences and tradeoffs between the techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-191/nerfactor1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210704202915/https://darthgera123.github.io/blogs/neural_rendering/relighting-nerf/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 190 - July 4, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-190/</link>
      <pubDate>Sun, 04 Jul 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-190/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/nvidia-research-nerf-tex-neural-reflectance-field-textures/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Research: NeRF-Tex: Neural Reflectance Field Textures&#34;&gt;NVIDIA Research: NeRF-Tex: Neural Reflectance Field Textures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presents the use of neural fields to model materials such as fur, fabric, and grass&lt;/li&gt;
&lt;li&gt;model a layer of mesoscale structure, such as fur or grass, on top of a triangle mesh using neural reflectance fields&lt;/li&gt;
&lt;li&gt;NeRF textures are volumetric textures that use neural nets instead of voxels&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-190/NeRF-Tex.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210629125536/https://developer.nvidia.com/blog/nvidia-research-nerf-tex-neural-reflectance-field-textures/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lei.chat/posts/what-is-vulkan-compute/&#34; target=&#34;_blank&#34; id=&#34;What is Vulkan Compute?&#34;&gt;What is Vulkan Compute?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;author presents the subset of Vulkan API related to compute workloads&lt;/li&gt;
&lt;li&gt;covering GPU discovery, resource management, compute pipeline management, synchronization, and object lifetime management&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-190/vulkan_compute.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/oAua5&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.shivoa.net/2021/06/an-initial-inspection-of-fidelityfx.html&#34; target=&#34;_blank&#34; id=&#34;An Initial Inspection of FidelityFX Super Resolution&#34;&gt;An Initial Inspection of FidelityFX Super Resolution&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;blog post presents a comparison of AMDs FSR, CAS against other upscale techniques&lt;/li&gt;
&lt;li&gt;shows results from Dota 2, The Riftbreaker&lt;/li&gt;
&lt;li&gt;showing how quality and sharpening values influence the final results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-190/FSR_comparision_riftbreaker.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210701194615/https://blog.shivoa.net/2021/06/an-initial-inspection-of-fidelityfx.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://jcgt.org/published/0010/02/04/&#34; target=&#34;_blank&#34; id=&#34;MMPX Style-Preserving Pixel Art Magnification&#34;&gt;MMPX Style-Preserving Pixel Art Magnification&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a filter for magnifying pixel art (such as 8- and 16-bit sprites)&lt;/li&gt;
&lt;li&gt;covering observations on pixel-art filtering, test data, and evaluation methodology&lt;/li&gt;
&lt;li&gt;shows a comparison against other filters and shows when to use what filter&lt;/li&gt;
&lt;li&gt;code and demo application is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-190/mmpx_icon.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/Hmonz&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=bihZJzeuwOU&#34; target=&#34;_blank&#34; id=&#34;Basic Shader Math - Shader Graph Basics - Episode 4&#34;&gt;Basic Shader Math - Shader Graph Basics - Episode 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to use the add, subtract, multiply, and divide nodes in UE5 and Unity&lt;/li&gt;
&lt;li&gt;showing how the nodes behave and the difference in the UI between UE5 and Unity visual shader editors&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-190/basic_shader_math.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://simul.co/careers/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Rendering Engineer &amp;amp; Rendering Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Liverpool based/remote work considered&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;We are looking for a Rendering Engineer with experience in developing high-quality, high-performance software: in games or otherwise.&lt;/p&gt;

&lt;p&gt;This role will suit someone who is keen to take the next step forward in their career and in interactive tech. We are working on core immersive technology that spans the full range of XR, and this is an opportunity to help shape the future of spatial computing.&lt;/p&gt;

&lt;p&gt;Simul is an established leader in real-time graphics middleware; the company&amp;rsquo;s customers include Bandai Namco, Microsoft Game Studios, Sony, and Ubisoft. In 2020, Simul won the TIGA 2020 Best Technical Innovation Award for our work on trueSKY, the leading real-time weather SDK. We have a culture of agile development focused on quality, performance and precision. We believe in equal opportunity and a diverse, inclusive and supportive workplace.&lt;/p&gt;

&lt;p&gt;You will be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Researching and developing new immersive technologies,&lt;/li&gt;
&lt;li&gt;Working in an agile team,&lt;/li&gt;
&lt;li&gt;Finding and fixing bugs and performance issues,&lt;/li&gt;
&lt;li&gt;Profiling and optimizing CPU, GPU and network code,&lt;/li&gt;
&lt;li&gt;Representing Simul at technical and non-technical events, in-person and online.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The benefits Simul offers are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flexible remote working,&lt;/li&gt;
&lt;li&gt;Regular salary reviews and career progression,&lt;/li&gt;
&lt;li&gt;22 days holiday + bank holidays,&lt;/li&gt;
&lt;li&gt;Dedicated self-development time.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/simul_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;simul_week_190&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://perso.telecom-paristech.fr/boubek/papers/MatMorpher/&#34; target=&#34;_blank&#34; id=&#34;MatMorpher: A Morphing Operator for SVBRDFs&#34;&gt;MatMorpher: A Morphing Operator for SVBRDFs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new operator for blending BRDF texture maps&lt;/li&gt;
&lt;li&gt;based on a transport mechanism that is feature aware&lt;/li&gt;
&lt;li&gt;preserve details by mixing the material channels using a histogram-aware color blending combined with a normal reorientation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-190/material_texture_blending.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/e2hN7&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=u9HqKGqvJhQ&#34; target=&#34;_blank&#34; id=&#34;[video] EGSR 2021 Day 1&#34;&gt;[video] EGSR 2021 Day 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;stream of the first day of Eurographics Symposium on Rendering 2021&lt;/li&gt;
&lt;li&gt;all recordings from the 4 days are available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-190/ESG_2021.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arisilvennoinen.github.io/&#34; target=&#34;_blank&#34; id=&#34;Moving Basis Decomposition for Precomputed Light Transport&#34;&gt;Moving Basis Decomposition for Precomputed Light Transport&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;paper presents the Moving Basis Decomposition framework&lt;/li&gt;
&lt;li&gt;this generalizes many existing basis expansion methods and efficient, seamless reconstruction of compressed data&lt;/li&gt;
&lt;li&gt;this is introduced as the foundation for a global illumination system&lt;/li&gt;
&lt;li&gt;compares the method against existing Blockwise PCA, Windowed blockwise PCA, and clustered PCA (PCA, Principal component analysis)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-190/indirect_lighting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://arisilvennoinen.github.io/Publications/mbd.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210127002317/https://arisilvennoinen.github.io/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/ToyRenderer2SceneManagement.html&#34; target=&#34;_blank&#34; id=&#34;My toy renderer, part 2: Scene management&#34;&gt;My toy renderer, part 2: Scene management&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the scene structure of the authors&amp;rsquo; renderer&lt;/li&gt;
&lt;li&gt;focuses on how to efficiently handle scene export/loading as flat data&lt;/li&gt;
&lt;li&gt;data quantization, materials, reproducible results, &amp;hellip;&lt;/li&gt;
&lt;li&gt;iteration time from changing code to getting a render is below 5 seconds&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-190/MortonTriangleOrder.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210702205132/https://momentsingraphics.de/ToyRenderer2SceneManagement.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.nvidia.com/publication/2021-06_ReSTIR-GI%3A-Path&#34; target=&#34;_blank&#34; id=&#34;ReSTIR GI: Path Resampling for Real-Time Path Tracing&#34;&gt;ReSTIR GI: Path Resampling for Real-Time Path Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;paper presents a new path sampling algorithm for indirect lighting&lt;/li&gt;
&lt;li&gt;based on the screen-space Spatio-temporal resampling principles of ReSTIR (Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting.)&lt;/li&gt;
&lt;li&gt;enables important paths to share contributions time, space&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-190/ReSTIR_GI_Teaser.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210629090848/https://research.nvidia.com/publication/2021-06_ReSTIR-GI%3A-Path&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.mecheye.net/2021/06/the-missing-guide-to-modern-graphics-apis-2-psos/&#34; target=&#34;_blank&#34; id=&#34;The Missing Guide to Modern Graphics APIs – 2. PSOs&#34;&gt;The Missing Guide to Modern Graphics APIs – 2. PSOs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of why Pipeline State Object was introduced to allow predictable performance&lt;/li&gt;
&lt;li&gt;shows differences between hardware and drivers and explain why the old D3D11 model was unpredictable&lt;/li&gt;
&lt;li&gt;presents the concepts in Vulkan, D3D12 and Metal&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-190/PipelineStateObject.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210629220618/https://blog.mecheye.net/2021/06/the-missing-guide-to-modern-graphics-apis-2-psos/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=t4XnK50ocMk&#34; target=&#34;_blank&#34; id=&#34;[video] Live Coding: Making the American flag with math!&#34;&gt;[video] Live Coding: Making the American flag with math!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows a walkthrough to render the USA flag using shader toy&lt;/li&gt;
&lt;li&gt;shows how to render a star, stripes and combines the components&lt;/li&gt;
&lt;li&gt;covers how to animate the flag and apply antialiasing between the features&lt;/li&gt;
&lt;li&gt;additionally adds some shading to the flag&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-190/american_flag.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Dirk Dörr for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 189 - June 27, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-189/</link>
      <pubDate>Sun, 27 Jun 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-189/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.nvidia.com/publication/2021-06_An-Unbiased-Ray-Marching&#34; target=&#34;_blank&#34; id=&#34;An Unbiased Ray-Marching Transmittance Estimator&#34;&gt;An Unbiased Ray-Marching Transmittance Estimator&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;in-depth analysis of the sources of variance in state-of-the-art unbiased volumetric transmittance estimators&lt;/li&gt;
&lt;li&gt;propose several new methods for improving the efficiency&lt;/li&gt;
&lt;li&gt;improving truncated power-series estimators based on U-statistics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-189/TransmittanceEstimator.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210623170522/https://research.nvidia.com/publication/2021-06_An-Unbiased-Ray-Marching&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/nvidia-research-an-analytic-brdf-for-materials-with-spherical-lambertian-scatterers/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Research: An Analytic BRDF for Materials with Spherical Lambertian Scatterers&#34;&gt;NVIDIA Research: An Analytic BRDF for Materials with Spherical Lambertian Scatterers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new BRDF for porous/dusty materials&lt;/li&gt;
&lt;li&gt;these surfaces exhibit back-scattering and saturation that is missing from other BRDFs&lt;/li&gt;
&lt;li&gt;based on a volumetric BRDF derivation based spherical Lambertian particles&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-189/SphericalLambertianScatterers.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210622200811/https://developer.nvidia.com/blog/nvidia-research-an-analytic-brdf-for-materials-with-spherical-lambertian-scatterers/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://simonstechblog.blogspot.com/2021/06/implementing-gamut-mapping.html&#34; target=&#34;_blank&#34; id=&#34;Implementing Gamut Mapping&#34;&gt;Implementing Gamut Mapping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses how to implement gamut clipping into a render pipeline&lt;/li&gt;
&lt;li&gt;compares different methods and presents the results with different lighting setups&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-189/main_gamut_clip.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210628051345/http://simonstechblog.blogspot.com/2021/06/implementing-gamut-mapping.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://apply.workable.com/foundry/j/618F5534A1/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Research Engineer, Real-time Rendering&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;London/Dublin/UK-REMOTE&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;We are looking for a Senior Research Engineer to work on real-time rendering algorithms for visual effects, animation, and post-production software.&lt;/p&gt;

&lt;p&gt;The role is about creating the next generation of artists and production tools, with a focus on virtual production. There is a focus on the role of improving, optimizing, and expanding the graphics capability within real-time renderers.&lt;/p&gt;

&lt;p&gt;We are looking for people with a strong track record in graphics and real-time rendering with the desire to build real-world solutions for our artists.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_foundry.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;foundry_week_189&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ea.com/seed/amp/news/trace-all-the-rays&#34; target=&#34;_blank&#34; id=&#34;i3D 2021 Keynote: Trace All The Rays!&#34;&gt;i3D 2021 Keynote: Trace All The Rays!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;describes the state of raytracing  in games&lt;/li&gt;
&lt;li&gt;presents a high-level overview of a Decoupled Real-Time Ray Tracing pipeline&lt;/li&gt;
&lt;li&gt;shows where raytracing is used in games and what new problems it introduces&lt;/li&gt;
&lt;li&gt;additionally presents 4 open problems in raytracing and how it interacts with other developments&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-189/seed_keynote.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://media.contentapi.ea.com/content/dam/ea/seed/presentations/seed-i3d21-trace-all-the-rays.pdf&#34; style=&#34;color:white;&#34;&gt;slides &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20210624030824/https://media.contentapi.ea.com/content/dam/ea/seed/presentations/seed-i3d21-trace-all-the-rays.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210628051606/https://www.ea.com/seed/amp/news/trace-all-the-rays&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.nvidia.com/publication/2021-06_Real-time-Neural-Radiance&#34; target=&#34;_blank&#34; id=&#34;Real-time Neural Radiance Caching for Path Tracing&#34;&gt;Real-time Neural Radiance Caching for Path Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a neural radiance caching method for path-traced global illumination&lt;/li&gt;
&lt;li&gt;uses a self-training process to train the neural network at runtime&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-189/NeuralRadianceCaching.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210623201644/https://research.nvidia.com/publication/2021-06_Real-time-Neural-Radiance&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=WuNdmjca7eM&#34; target=&#34;_blank&#34; id=&#34;[video] Drawing Boxes and Rectangles in URP Shader Graph with 2D SDFs!&#34;&gt;[video] Drawing Boxes and Rectangles in URP Shader Graph with 2D SDFs!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to draw Squares, boxes, and rounded rectangles as SDFs&lt;/li&gt;
&lt;li&gt;presents how to derive the SDFs and presents the extension into rotated shapes&lt;/li&gt;
&lt;li&gt;additionally shows how to use rectangle SDFs to implement a brick wall&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-189/sdf_boxes.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Dqld965-Vv0&#34; target=&#34;_blank&#34; id=&#34;[video] Advanced Graphics Tutorial: Wakes, Explosions and Lighting: Interactive Water Simulation in Atlas&#34;&gt;[video] Advanced Graphics Tutorial: Wakes, Explosions and Lighting: Interactive Water Simulation in Atlas&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses how to generate ocean displacement, buoyancy,&lt;/li&gt;
&lt;li&gt;rendering of the ocean as micro facets, how to calculate moments from the displacement&lt;/li&gt;
&lt;li&gt;reflections (specular and environment), masking/shadowing, and light scattering inside the water surface&lt;/li&gt;
&lt;li&gt;additionally covers interactions with the water, explosions, etc&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-189/water_frequency_bands.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/developer/tools-software/graphics/b/blog/posts/deferred-shading-on-mobile&#34; target=&#34;_blank&#34; id=&#34;Deferred shading on mobile: An API overview&#34;&gt;Deferred shading on mobile: An API overview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses local tile memory and mobile GPUs&lt;/li&gt;
&lt;li&gt;presents how different usage patterns affect the ability to achieve optimal bandwidth usage&lt;/li&gt;
&lt;li&gt;shows some OpenGL extensions that enable tile local memory usage&lt;/li&gt;
&lt;li&gt;additionally, it shows how Vulkan Subpasses allow the driver to optimize shaders transparently&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-189/gbuffer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210628051723/https://community.arm.com/developer/tools-software/graphics/b/blog/posts/deferred-shading-on-mobile&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rg3.name/202106210630.html&#34; target=&#34;_blank&#34; id=&#34;VK_EXT_multi_draw released for Vulkan&#34;&gt;VK_EXT_multi_draw released for Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a new Vulkan extension that adds vkCmdDrawMultiEXT vkCmdDrawMultiIndexedEXT&lt;/li&gt;
&lt;li&gt;these allow applications to provide an array of draw call arguments in CPU visible memory&lt;/li&gt;
&lt;li&gt;for uses cases where applications would call vkCmdDraw multiple times in a loop without changing state&lt;/li&gt;
&lt;li&gt;tests indicate that a doubling of draw call processing rate can be observed&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-189/vulkan.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210621172121/https://rg3.name/202106210630.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/JasperBekkers/&#34; target=&#34;_blank&#34;&gt;Jasper Bekkers&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 188 — June 20, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-188/</link>
      <pubDate>Sun, 20 Jun 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-188/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/HPG2021.html&#34; target=&#34;_blank&#34; id=&#34;BRDF Importance Sampling for Linear Lights&#34;&gt;BRDF Importance Sampling for Linear Lights&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a method for importance sampling linear lights such as fluorescent tubes&lt;/li&gt;
&lt;li&gt;rendering unbiased, nearly noise-free diffuse and specular shading by sampling a linearly transformed cosine (LTCs)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-188/linear_lights.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210618161017/https://momentsingraphics.de/HPG2021.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/get-the-most-out-of-smart-access-memory/&#34; target=&#34;_blank&#34; id=&#34;How to get the most out of Smart Access Memory (SAM)&#34;&gt;How to get the most out of Smart Access Memory (SAM)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;article describes how AMD Smart Access Memory allows applications full access to GPU local memory&lt;/li&gt;
&lt;li&gt;provides information on how the memory is exposed&lt;/li&gt;
&lt;li&gt;additionally provides performance advice on the usage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-188/smart-access-memory.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210615145424/https://gpuopen.com/learn/get-the-most-out-of-smart-access-memory/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ourmachinery.com/post/supporting-native-hdr-monitors/&#34; target=&#34;_blank&#34; id=&#34;Supporting Native HDR Monitors&#34;&gt;Supporting Native HDR Monitors&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an introductory overview of HDR concepts&lt;/li&gt;
&lt;li&gt;covering color spaces, color primaries, Transfer functions&lt;/li&gt;
&lt;li&gt;presents the integration into our machinery&lt;/li&gt;
&lt;li&gt;additionally covers blending, precision, and other common issues&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-188/hdr__gamut.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210615175440/https://ourmachinery.com/post/supporting-native-hdr-monitors/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://jcgt.org/published/0010/02/03/&#34; target=&#34;_blank&#34; id=&#34;A Polarizing Filter Function for Real-Time Rendering&#34;&gt;A Polarizing Filter Function for Real-Time Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a polarizing filter function for specularly reflected light&lt;/li&gt;
&lt;li&gt;support for direct and image-based light sources&lt;/li&gt;
&lt;li&gt;presents integration into Falcor rendering framework&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-188/polarization.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210617153439/http://jcgt.org/published/0010/02/03/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://metalkit.org/2021/06/18/whats-new-in-metal-at-wwdc21/&#34; target=&#34;_blank&#34; id=&#34;What’s new in Metal at WWDC21&#34;&gt;What’s new in Metal at WWDC21&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows an overview of new features and changes presented at WWDC21&lt;/li&gt;
&lt;li&gt;covering raytracing integration into tile memory, motion blur, shadows, and improvements to raytracing debugging&lt;/li&gt;
&lt;li&gt;additionally presents bindless binding, improved debugging tools as well as texture compression library&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-188/metal_debugger.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210621060613/https://metalkit.org/2021/06/18/whats-new-in-metal-at-wwdc21/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/developer/tools-software/graphics/b/blog/posts/using-asynchronous-compute-on-arm-mali-gpus&#34; target=&#34;_blank&#34; id=&#34;Using asynchronous compute on Arm Mali GPUs: A practical sample&#34;&gt;Using asynchronous compute on Arm Mali GPUs: A practical sample&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post shows how the Mali hardware operates and exposes multiple graphics queues&lt;/li&gt;
&lt;li&gt;presents how to run multiple graphics and compute workloads in parallel&lt;/li&gt;
&lt;li&gt;discussing performance and hardware considerations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-188/Async-compute-mali.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210616130225/https://community.arm.com/developer/tools-software/graphics/b/blog/posts/using-asynchronous-compute-on-arm-mali-gpus&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://alextardif.com/Lightness.html&#34; target=&#34;_blank&#34; id=&#34;Perceptual Lightness for Game Graphics&#34;&gt;Perceptual Lightness for Game Graphics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog presents a comparison between color&amp;rsquo;s luminance and lightness&lt;/li&gt;
&lt;li&gt;shows that colors with the same luminance are perceived differently (The Helmholtz–Kohlrausch Effect)&lt;/li&gt;
&lt;li&gt;presents different models that can express this&lt;/li&gt;
&lt;li&gt;closing by presenting a few ideas the author thinks the models could be used to improve results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-188/LightnessHeader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/CaS7h&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=d9NKqeNtobc&#34; target=&#34;_blank&#34; id=&#34;[video] All Blend Modes! Looking at the Shader Graph Blend Mode Filters&#34;&gt;[video] All Blend Modes! Looking at the Shader Graph Blend Mode Filters&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents an overview of all blend modes supported from the shader graph node&lt;/li&gt;
&lt;li&gt;shows the equation for each blend mode and discusses the effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-188/pinlight.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.neilbickford.com&#34; target=&#34;_blank&#34;&gt;Neil Bickford&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 187 — June 13, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-187/</link>
      <pubDate>Sun, 13 Jun 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-187/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.jcgt.org/published/0010/02/02/&#34; target=&#34;_blank&#34; id=&#34;Stable Geometric Specular Antialiasing with Projected-Space NDF Filtering&#34;&gt;Stable Geometric Specular Antialiasing with Projected-Space NDF Filtering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces an improvement for specular antialiasing&lt;/li&gt;
&lt;li&gt;normals distribution function (NDF) is filtered in orthographically projected space instead of slope space&lt;/li&gt;
&lt;li&gt;presents an approximation solution and provide source code&lt;/li&gt;
&lt;li&gt;additionally presents an isotropic NDF-filtering technique for deferred and forward rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-187/ndf_filtering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/znlq8&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=QdV_e-U7_pQ&#34; target=&#34;_blank&#34; id=&#34;[video] Lumen | Inside Unreal&#34;&gt;[video] Lumen | Inside Unreal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Lumen presentations starts at &lt;a href=&#34;https://youtu.be/QdV_e-U7_pQ?t=602&#34; target=&#34;_blank&#34;&gt;10:00 minutes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;presents what Lumen supports, what limitations exists&lt;/li&gt;
&lt;li&gt;shows an in-depth look at the implementation that uses hybrid tracing techniques&lt;/li&gt;
&lt;li&gt;looking at the scene representations, surface cache, and the different passes required&lt;/li&gt;
&lt;li&gt;additionally presents content examples, provides optimization advice, and answering user questions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-187/hybrid_tracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wickedengine.net/2021/06/07/future-geometry-pipeline/&#34; target=&#34;_blank&#34; id=&#34;Future geometry pipeline&#34;&gt;Future geometry pipeline&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;article discusses alternative approaches for geometry pipeline design&lt;/li&gt;
&lt;li&gt;moving more work into the pixel shaders, following the patterns of ray tracing shader&lt;/li&gt;
&lt;li&gt;presents performance comparison of the presented approach and limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-187/geometry_pipeline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210607204418/https://wickedengine.net/2021/06/07/future-geometry-pipeline/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://beforesandafters.com/2021/06/12/vfx-notes-ep-1-actor-replacement-ue5-and-what-exactly-is-gamma/&#34; target=&#34;_blank&#34; id=&#34;VFX Notes: Ep 1 – Actor replacement, UE5 and what exactly is gamma?&#34;&gt;VFX Notes: Ep 1 – Actor replacement, UE5 and what exactly is gamma?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new podcast about VFX in film, TV, and games&lt;/li&gt;
&lt;li&gt;discussing Resident Evil Village and UE5&lt;/li&gt;
&lt;li&gt;how game technology is evolving and reaching a collision point between real-time and offline techniques&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-187/vfxnotes_ep1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210614044626/https://beforesandafters.com/2021/06/12/vfx-notes-ep-1-actor-replacement-ue5-and-what-exactly-is-gamma/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=D_Zq6q1gnvw&#34; target=&#34;_blank&#34; id=&#34;[video] Drawing a Line Segment in the URP Shader Graph with 2D SDFs!&#34;&gt;[video] Drawing a Line Segment in the URP Shader Graph with 2D SDFs!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to draw a line segment in pixel shaders&lt;/li&gt;
&lt;li&gt;shows how to derive the point to line segment formula&lt;/li&gt;
&lt;li&gt;additionally presents how to combine multiple lines&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-187/point_line_segment.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.notion.so/Brief-Analysis-of-Nanite-GPU-Culling-6ea4a7b8a3574f31bb4095901fc8e309&#34; target=&#34;_blank&#34; id=&#34;Brief Analysis of Nanite GPU Culling&#34;&gt;Brief Analysis of Nanite GPU Culling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a look at the implementation details of nanite GPU culling&lt;/li&gt;
&lt;li&gt;discusses how the compute shader cull on the sub-instance level&lt;/li&gt;
&lt;li&gt;shows how clusters are culled and the depth buffer from the previous frame is used&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-187/NaniteGPUCullNode-WriteOutDetail.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/22P5D&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://momentsingraphics.de/Siggraph2021.html&#34; target=&#34;_blank&#34; id=&#34;BRDF Importance Sampling for Polygonal Lights&#34;&gt;BRDF Importance Sampling for Polygonal Lights&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents how to sample polygonal area lights proportional to linearly transformed cosines&lt;/li&gt;
&lt;li&gt;offers significantly reduced noise and unbiased diffuse and specular shading&lt;/li&gt;
&lt;li&gt;displays nearly noise-free results at 2 spp&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-187/PolygonalLights.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210611203233/https://momentsingraphics.de/Siggraph2021.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.apple.com/videos/play/wwdc2021/10286/&#34; target=&#34;_blank&#34; id=&#34;[video] Explore bindless rendering in Metal&#34;&gt;[video] Explore bindless rendering in Metal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains the motivation for the bindless model and explains the concept&lt;/li&gt;
&lt;li&gt;presents how this can be expressed in metal using argument buffers&lt;/li&gt;
&lt;li&gt;explains memory residency and how this influences what resources can be used&lt;/li&gt;
&lt;li&gt;additionally explains what synchronization considerations need to be dealt with&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-187/metal_bindless.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210607194317/https://developer.apple.com/videos/play/wwdc2021/10286/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.neilbickford.com&#34; target=&#34;_blank&#34;&gt;Neil Bickford&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 186 — June 6, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-186/</link>
      <pubDate>Sun, 06 Jun 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-186/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://youtu.be/TMorJX3Nj6U?t=487&#34; target=&#34;_blank&#34; id=&#34;[video] Nanite | Inside Unreal&#34;&gt;[video] Nanite | Inside Unreal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;interview discussing the demo project, lessons learned, discussions about future directions, and many insights into the design considerations&lt;/li&gt;
&lt;li&gt;overview of nanite is starting at &lt;a href=&#34;https://youtu.be/TMorJX3Nj6U?t=3135&#34; target=&#34;_blank&#34;&gt;52:15&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;presents an overview of the system, hierarchical LOD cluster selection, data compression&lt;/li&gt;
&lt;li&gt;presents in-game debug views and further looks at the demo content&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-186/nanite_instance_visualization.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://metalbyexample.com/webgpu-part-one/&#34; target=&#34;_blank&#34; id=&#34;WebGPU for Metal Developers, Part One&#34;&gt;WebGPU for Metal Developers, Part One&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the fundamentals of the WebGPU API required to draw a colored triangle&lt;/li&gt;
&lt;li&gt;also provides an overview of the WebGPU Shading Language (WGSL)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-186/web_gpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210606072003/https://metalbyexample.com/webgpu-part-one/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=DZRn_jNZjbw&#34; target=&#34;_blank&#34; id=&#34;[video] Compute shader 101&#34;&gt;[video] Compute shader 101&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk provides an overview of compute shaders&lt;/li&gt;
&lt;li&gt;comparison of different technologies (Cuda, OpenCL, Compute shaders)&lt;/li&gt;
&lt;li&gt;shows the execution model, explaining common terminology, and hardware variations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-186/execution_model.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.froggi.es/bringing-vulkan-raytracing-to-older-amd-hardware/&#34; target=&#34;_blank&#34; id=&#34;Bringing Vulkan Raytracing to older AMD hardware (Vega and below)&#34;&gt;Bringing Vulkan Raytracing to older AMD hardware (Vega and below)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the implementation of ray-tracing support into the open-source RADV driver&lt;/li&gt;
&lt;li&gt;discusses what RDNA hardware supports and how to emulate it without hardware support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-186/amd_raytracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210601192121/https://blog.froggi.es/bringing-vulkan-raytracing-to-older-amd-hardware/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.shivoa.net/2021/05/fewer-samples-per-pixel-per-frame.html&#34; target=&#34;_blank&#34; id=&#34;Fewer Samples per Pixel per Frame&#34;&gt;Fewer Samples per Pixel per Frame&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents a history of sampling techniques, how it was used and how it changed over time&lt;/li&gt;
&lt;li&gt;presents different use cases, strengths, and weakness&lt;/li&gt;
&lt;li&gt;the author additionally provides a look at how the field might develop in the future&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-186/ManOfMedan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210601122724/https://blog.shivoa.net/2021/05/fewer-samples-per-pixel-per-frame.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://simul.co/careers/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Rendering Engineer &amp;amp; Rendering Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Liverpool based/remote work considered&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;We are looking for a Rendering Engineer with experience in developing high-quality, high-performance software: in games or otherwise.&lt;/p&gt;

&lt;p&gt;This role will suit someone who is keen to take the next step forward in their career and in interactive tech. We are working on core immersive technology that spans the full range of XR, and this is an opportunity to help shape the future of spatial computing.&lt;/p&gt;

&lt;p&gt;Simul is an established leader in real-time graphics middleware; the company&amp;rsquo;s customers include Bandai Namco, Microsoft Game Studios, Sony, and Ubisoft. In 2020, Simul won the TIGA 2020 Best Technical Innovation Award for our work on trueSKY, the leading real-time weather SDK. We have a culture of agile development focused on quality, performance and precision. We believe in equal opportunity and a diverse, inclusive and supportive workplace.&lt;/p&gt;

&lt;p&gt;You will be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Researching and developing new immersive technologies,&lt;/li&gt;
&lt;li&gt;Working in an agile team,&lt;/li&gt;
&lt;li&gt;Finding and fixing bugs and performance issues,&lt;/li&gt;
&lt;li&gt;Profiling and optimizing CPU, GPU and network code,&lt;/li&gt;
&lt;li&gt;Representing Simul at technical and non-technical events, in-person and online.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The benefits Simul offers are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flexible remote working,&lt;/li&gt;
&lt;li&gt;Regular salary reviews and career progression,&lt;/li&gt;
&lt;li&gt;22 days holiday + bank holidays,&lt;/li&gt;
&lt;li&gt;Dedicated self-development time.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/simul_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;simul_week_186&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://anki3d.org/debugprintf-vulkan/&#34; target=&#34;_blank&#34; id=&#34;How to use debugPrintf in Vulkan&#34;&gt;How to use debugPrintf in Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how printf is supported in Vulkan Shaders&lt;/li&gt;
&lt;li&gt;what extensions are required, how to integrate them into the shader pipeline&lt;/li&gt;
&lt;li&gt;additionally shows how to actually print the messages in application code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-186/anki3d.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210603011304/http://anki3d.org/debugprintf-vulkan/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/googlefonts/compute-shader-101/blob/main/docs/glossary.md&#34; target=&#34;_blank&#34; id=&#34;Compute shader glossary&#34;&gt;Compute shader glossary&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of compute shader terminology and how they differ between APIs&lt;/li&gt;
&lt;li&gt;how resources are bound, synchronization and memory models&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-186/shader_glossary.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210531180521/https://github.com/googlefonts/compute-shader-101/blob/main/docs/glossary.md&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2021/05/30/neural-material-decompression-data-driven-nonlinear-dimensionality-reduction/&#34; target=&#34;_blank&#34; id=&#34;Neural material (de)compression – data-driven nonlinear dimensionality reduction&#34;&gt;Neural material (de)compression – data-driven nonlinear dimensionality reduction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses continues exploration in compressing a set of textures&lt;/li&gt;
&lt;li&gt;presents how to use neural network for compression&lt;/li&gt;
&lt;li&gt;showing techniques that can be used to improve compression discoverability&lt;/li&gt;
&lt;li&gt;additionally presents ideas on how this can be further developed and used for other use cases&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-186/material_decompression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210531182936/https://bartwronski.com/2021/05/30/neural-material-decompression-data-driven-nonlinear-dimensionality-reduction/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=NCpaaLkmXI8&#34; target=&#34;_blank&#34; id=&#34;[video] Live Coding:Bending Light&#34;&gt;[video] Live Coding:Bending Light&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows how to implement refraction into a shadertoy&lt;/li&gt;
&lt;li&gt;explains the index of refraction, how different materials create different effects&lt;/li&gt;
&lt;li&gt;additionally shows how to deal with rays that don&amp;rsquo;t leave an object&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-186/refraction.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hgpu.org/?p=25106&#34; target=&#34;_blank&#34; id=&#34;Data-Driven Analysis and Design of Vulkan Ray-Tracing Applications using Automatic Instrumentation&#34;&gt;Data-Driven Analysis and Design of Vulkan Ray-Tracing Applications using Automatic Instrumentation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the master thesis presents a SPIR-V based instrumentation framework&lt;/li&gt;
&lt;li&gt;shows how to use instrumentation to gather information about the execution of ray tracing shaders&lt;/li&gt;
&lt;li&gt;additionally presents RayScope, a system for the visualization of collected instrumentation data&lt;/li&gt;
&lt;li&gt;shows examples of problems that the system helped to identify&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-186/ray_visulization.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/IH9aZ&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.notion.so/Brief-Analysis-of-Nanite-94be60f292434ba3ae62fa4bcf7d9379&#34; target=&#34;_blank&#34; id=&#34;Brief Analysis of Nanite&#34;&gt;Brief Analysis of Nanite&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an analysis of the Nanite cluster algorithm&lt;/li&gt;
&lt;li&gt;presents how clusters are generated, hierarchical tree structure, and LOD selection&lt;/li&gt;
&lt;li&gt;shows where in the engine code the relevant code can be found&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-186/cluster_group.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/YENpK&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/pedanticcoder&#34; target=&#34;_blank&#34;&gt;Steven Cannavan&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 185 — May 30, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-185/</link>
      <pubDate>Sun, 30 May 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-185/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.elopezr.com/a-macro-view-of-nanite/&#34; target=&#34;_blank&#34; id=&#34;A Macro View of Nanite&#34;&gt;A Macro View of Nanite&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of the Nanite Rendering pipeline using RenderDoc&lt;/li&gt;
&lt;li&gt;shows how meshes are rasterized with adaptive cluster LODs&lt;/li&gt;
&lt;li&gt;pipeline is based around visibility buffers, presents how materials are handled and integrated into the GBuffer&lt;/li&gt;
&lt;li&gt;presents how a material depth buffer is used to speed up the material shading step&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-185/nanite_wireframe.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210531010725/http://www.elopezr.com/a-macro-view-of-nanite&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://yusuketokuyoshi.com/papers/2021/Unbiased_VNDF_Sampling_for_Backfacing_Shading_Normals.pdf&#34; target=&#34;_blank&#34; id=&#34;Unbiased VNDF Sampling for Backfacing Shading Normals&#34;&gt;Unbiased VNDF Sampling for Backfacing Shading Normals&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an improved normalization for the Smith–GGX BRDF visible normal distribution
function (VNDF)&lt;/li&gt;
&lt;li&gt;previous methods cause brightening bias because of the mismatch between shading normals and geometry normals&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-185/visibility_normalization.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210531054912/https://yusuketokuyoshi.com/papers/2021/Unbiased_VNDF_Sampling_for_Backfacing_Shading_Normals.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=2G0Sime3OH0&#34; target=&#34;_blank&#34; id=&#34;[video] Basics of Mipmaps in Unity Part 2! Shaders, Bias, and Texture2DLOD!&#34;&gt;[video] Basics of Mipmaps in Unity Part 2! Shaders, Bias, and Texture2DLOD!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows how to implement the MIP selection algorithm using shader code&lt;/li&gt;
&lt;li&gt;shows the effect of texture bias and presents possible use cases&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-185/mip_selection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.quadmesh.cloud/&#34; target=&#34;_blank&#34; id=&#34;Reliable Feature-Line Driven Quad-Remeshing&#34;&gt;Reliable Feature-Line Driven Quad-Remeshing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new algorithm for the semi-regular quadrangulation of arbitrary input surfaces&lt;/li&gt;
&lt;li&gt;focuses on ensuring that all feature-lines are represented as patch boundaries&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-185/representative_RelieableFetureLine.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210526181826/https://www.quadmesh.cloud/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://babylonjs.medium.com/infinite-grassland-ray-traced-rare-semi-uniform-entity-manifolds-for-rendering-countless-discreta-36630d72fc6&#34; target=&#34;_blank&#34; id=&#34;Infinite Grassland: Ray Traced Rare Semi-Uniform Entity Manifolds for Rendering Countless Discreta&#34;&gt;Infinite Grassland: Ray Traced Rare Semi-Uniform Entity Manifolds for Rendering Countless Discreta&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a proof of concept stage technique to render grass using a screen-space ray-tracing based technique&lt;/li&gt;
&lt;li&gt;shows how the entities are derived during the shading step from tracing into a grass area&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-185/grass_raytracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/2lMjR&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=3xMeKal2-Ws&#34; target=&#34;_blank&#34; id=&#34;[video] Introduction to Ray Tracing - Class 1&#34;&gt;[video] Introduction to Ray Tracing - Class 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introductory Siggraph class about ray tracing&lt;/li&gt;
&lt;li&gt;including an opening interview with Peter Shirley&lt;/li&gt;
&lt;li&gt;overview of rendering equation and 2d shadertoy implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-185/raytracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.boristhebrave.com/2021/05/23/triangle-grids/&#34; target=&#34;_blank&#34; id=&#34;Triangle Grids&#34;&gt;Triangle Grids&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents triangle grids&lt;/li&gt;
&lt;li&gt;discussing what a triangle grid is, why to use them and how to use it&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-185/triangle_grid.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210524015342/https://www.boristhebrave.com/2021/05/23/triangle-grids/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.wihlidal.com&#34; target=&#34;_blank&#34;&gt;Graham Wihlidal&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 184 — May 23, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-184/</link>
      <pubDate>Sun, 23 May 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-184/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cyanilux.com/tutorials/urp-shader-code/&#34; target=&#34;_blank&#34; id=&#34;Writing Shader Code in Universal RP (v2)&#34;&gt;Writing Shader Code in Universal RP (v2)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of authoring shaders in HLSL&lt;/li&gt;
&lt;li&gt;shows the building blocks of the language&lt;/li&gt;
&lt;li&gt;additionally shows how to integrate it into the different Unity systems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-184/hlsl_overview.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210517110221/https://www.cyanilux.com/tutorials/urp-shader-code/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://joyrok.com/What-Are-SDFs-Anyway&#34; target=&#34;_blank&#34; id=&#34;Tech Art Chronicles: What Are SDFs Anwyay?&#34;&gt;Tech Art Chronicles: What Are SDFs Anwyay?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains what Signed Distance Fields (SDFs) are&lt;/li&gt;
&lt;li&gt;how they are used and what kind of effects can be achieved from a single SDF texture&lt;/li&gt;
&lt;li&gt;additionally shows the implementation of the effects in Unreal visual shader graph&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-184/sdf_rings.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210524051533/https://joyrok.com/What-Are-SDFs-Anyway&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dl.acm.org/doi/10.1145/3214745.3214820&#34; target=&#34;_blank&#34; id=&#34;The technical art of sea of thieves&#34;&gt;The technical art of sea of thieves&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video recording from the Siggraph 2018 has been released&lt;/li&gt;
&lt;li&gt;covering ocean foam generation, shallow water simulation, and flowing water&lt;/li&gt;
&lt;li&gt;cloud rendering based around geometric shapes, blurring, and pixel shading on the projected volumes&lt;/li&gt;
&lt;li&gt;how to generate and simulate the 3D ropes based around parabolics&lt;/li&gt;
&lt;li&gt;tentacle animation driven from exported vertex animation data, with runtime partial resimulation&lt;/li&gt;
&lt;li&gt;brief look at the lightning implementation based on L-Systems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-184/sea_of_thieves.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/5n2ts&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.oculus.com/blog/a-vr-frames-life/&#34; target=&#34;_blank&#34; id=&#34;A VR Frame’s Life&#34;&gt;A VR Frame’s Life&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents the setup of a frame for VR rendering (Oculus Quest)&lt;/li&gt;
&lt;li&gt;presents the techniques applied for latency reduction&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-184/vr_frame_layout.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210524051430/https://developer.oculus.com/blog/a-vr-frames-life/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gamehacker1999.github.io/posts/retargetingpass/&#34; target=&#34;_blank&#34; id=&#34;Distributing Monte Carlo errors as Blue Noise in Screen Space, Part 2 - Retargeting Pass&#34;&gt;Distributing Monte Carlo errors as Blue Noise in Screen Space, Part 2 - Retargeting Pass&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to distribute Monte Carlo errors as blue noise in screen space&lt;/li&gt;
&lt;li&gt;storing precomputed permutation with runtime retargeted seeds&lt;/li&gt;
&lt;li&gt;includes a compute shader implementation of the retargeting pass&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-184/blue_noise_scene.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210521085358/https://gamehacker1999.github.io/posts/retargetingpass/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jeremyong.com/cpp/2021/05/20/graphics-pipelines-for-young-bloods/&#34; target=&#34;_blank&#34; id=&#34;Graphics Pipelines for Young Bloods&#34;&gt;Graphics Pipelines for Young Bloods&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post presents an overview of different rendering pipeline architectures (Forward, deferred, visibility, &amp;hellip;)&lt;/li&gt;
&lt;li&gt;discussing the different trade-offs of the techniques&lt;/li&gt;
&lt;li&gt;additionally clarifies the choosing the proper techniques depends on many factors and need to be analyzed for each game/team&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-184/overdraw_abstract.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210522212754/https://www.jeremyong.com/cpp/2021/05/20/graphics-pipelines-for-young-bloods/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.reedbeta.com/blog/hash-functions-for-gpu-rendering/&#34; target=&#34;_blank&#34; id=&#34;Hash Functions for GPU Rendering&#34;&gt;Hash Functions for GPU Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;suggests using a PCG hash function as default for GPU based hash/random functionality&lt;/li&gt;
&lt;li&gt;brief introduction to the techniques&lt;/li&gt;
&lt;li&gt;additionally provides a link to a paper that goes into more detail about various techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-184/pcg.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210522192336/https://www.reedbeta.com/blog/hash-functions-for-gpu-rendering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=J1n1yPjac1c&#34; target=&#34;_blank&#34; id=&#34;[video] Basics of Partial Derivative Shader Funcs in Unity! DDX, DDY, FWidth&#34;&gt;[video] Basics of Partial Derivative Shader Funcs in Unity! DDX, DDY, FWidth&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how partial derivatives are calculated in pixel shaders&lt;/li&gt;
&lt;li&gt;theses partial derivates are used for UV level selection&lt;/li&gt;
&lt;li&gt;additionally presents for what kind of effects these functions can be used&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-184/partial_derivatives.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://nvpro-samples.github.io/vk_inherited_viewport/docs/inherited.md.html&#34; target=&#34;_blank&#34; id=&#34;Inherited Viewport Scissor Sample&#34;&gt;Inherited Viewport Scissor Sample&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of Vulkan secondary command buffers&lt;/li&gt;
&lt;li&gt;clarifying what restrictions exist&lt;/li&gt;
&lt;li&gt;shows how the extension relaxes the restrictions and allows secondary command buffers to inherit the viewport state&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-184/inherited_console.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210524051804/https://nvpro-samples.github.io/vk_inherited_viewport/docs/inherited.md.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=x2zDrSgrlYQ&#34; target=&#34;_blank&#34; id=&#34;[video] Beautiful Glitter Simulation…Faster Than Real Time&#34;&gt;[video] Beautiful Glitter Simulation…Faster Than Real Time&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Two Minute Paper presenting an overview of Procedural Physically-based BRDF for Real-Time Rendering of Glints (covered in the week &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-150/&#34; target=&#34;_blank&#34;&gt;150&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;shows the different demo applications and how it compares against non-realtime techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-184/glitter_brdf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://simonstechblog.blogspot.com/2021/05/studying-gamut-clipping.html&#34; target=&#34;_blank&#34; id=&#34;Studying Gamut Clipping&#34;&gt;Studying Gamut Clipping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents his learning about Gamut Clipping&lt;/li&gt;
&lt;li&gt;based on the Oklab color space&lt;/li&gt;
&lt;li&gt;additionally provides an interactive shader toy to allow experimentation with the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-184/gamut_zoom_out.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210524051905/http://simonstechblog.blogspot.com/2021/05/studying-gamut-clipping.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://atyuwen.github.io/posts/bitangent-noise/&#34; target=&#34;_blank&#34; id=&#34;Fast Divergence-Free Noise Generation in Shaders&#34;&gt;Fast Divergence-Free Noise Generation in Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post presents a divergence-free noise generation technique (such as curl noise)&lt;/li&gt;
&lt;li&gt;the presented technique needs only 2 gradients (curl noise needs 3)&lt;/li&gt;
&lt;li&gt;shows how to optimize the technique and compares it to other noise types&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-184/divergence_noise.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210518065736/https://atyuwen.github.io/posts/bitangent-noise/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/tips-acceleration-structure-compaction/&#34; target=&#34;_blank&#34; id=&#34;Tips: Acceleration Structure Compaction&#34;&gt;Tips: Acceleration Structure Compaction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to compact DXR acceleration structures&lt;/li&gt;
&lt;li&gt;the process is run on the GPU over a few frames&lt;/li&gt;
&lt;li&gt;presents how the process works, what synchronization and lifetime factors need to be considered&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-184/compaction-workflow.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210521232520/https://developer.nvidia.com/blog/tips-acceleration-structure-compaction/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://www.plane9.com&#34; target=&#34;_blank&#34;&gt;Joakim Dahl&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 183 — May 16, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-183/</link>
      <pubDate>Sun, 16 May 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-183/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.4a-games.com.mt/4a-dna/in-depth-technical-dive-into-metro-exodus-pc-enhanced-edition&#34; target=&#34;_blank&#34; id=&#34;In-depth technical dive into metro exodus pc enhanced edition&#34;&gt;In-depth technical dive into metro exodus pc enhanced edition&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of raytracing in rendering pipelines, how it has developed over time in the game development&lt;/li&gt;
&lt;li&gt;how it has been integrated into metro exodus&lt;/li&gt;
&lt;li&gt;shows the effect of the different components and how it affects the final rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-183/avrora_v03e_edited.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210507051319/https://www.4a-games.com.mt/4a-dna/in-depth-technical-dive-into-metro-exodus-pc-enhanced-edition&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2021/05/15/experiments-in-hybrid-raytraced-shadows/&#34; target=&#34;_blank&#34; id=&#34;Experiments in hybrid raytraced shadows&#34;&gt;Experiments in hybrid raytraced shadows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses how to combine raytraced and shadows from shadow maps&lt;/li&gt;
&lt;li&gt;detect areas where shadow map resolution is too low to represent the edges and trace rays instead&lt;/li&gt;
&lt;li&gt;presents different methods, compares performance and quality&lt;/li&gt;
&lt;li&gt;additionally presents a summary and comparison against the AMD hybrid raytracing shadows technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-183/shadowsrt.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210516004712/https://interplayoflight.wordpress.com/2021/05/15/experiments-in-hybrid-raytraced-shadows/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gfx-rs.github.io/2021/05/09/dota2-msl-compilation.html&#34; target=&#34;_blank&#34; id=&#34;Shader translation benchmark on Dota2/Metal&#34;&gt;Shader translation benchmark on Dota2/Metal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents a performance comparison of Naga (rust based shader translation library) vs. SPIRV-Cross in Dota2&lt;/li&gt;
&lt;li&gt;measures CPU time taken for shader translation in Dota2 from SPIRV to MSL (Metal shading language)&lt;/li&gt;
&lt;li&gt;takes around 1ms per shader stage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-183/dota-naga-hero.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210513071246/https://gfx-rs.github.io/2021/05/09/dota2-msl-compilation.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://onxmaps.hrmdirect.com/employment/job-opening.php?req=1582436&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Graphics Engineer - Mobile&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Remote from the USA or paid relocation to Montana (no work visa sponsorship)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Are you passionate about the outdoors? Want to combine that passion with your mobile graphics expertise?&lt;/p&gt;

&lt;p&gt;We’re looking for a talented Senior Software Engineer with 3D graphics and mobile experience to help us take our off-pavement mobile GPS experience to the next level. &lt;a href=&#34;https://www.onxmaps.com&#34; target=&#34;_blank&#34;&gt;(more information)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You’ll be our second hire on this new and exciting team focused on a greenfield, cross-platform 3D map viewer. You will work closely with our lead engineer on this project to create a beautiful and efficient 3D map viewing experience for millions of loyal customers.&lt;/p&gt;

&lt;p&gt;As our second hire, you’ll work on our core 3D engine (written in C++) and serve as our mobile graphics subject matter expert.&lt;/p&gt;

&lt;p&gt;If you’re a linear algebra wiz, love maps, have mobile development experience and can wrangle quaternions in your sleep, this job might be just what you’re looking for.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_onx.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;onx_week_183&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/radeon-rays-open-source/&#34; target=&#34;_blank&#34; id=&#34;Radeon Rays v4.1 is now available – with open source!&#34;&gt;Radeon Rays v4.1 is now available – with open source!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Radeon Rays v4.1 (ray intersection library for D3D12 and Vulkan) is now open source&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-183/radeonrays-logo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210514173551/https://gpuopen.com/radeon-rays-open-source/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://raphlinus.github.io/gpu/2021/05/13/stack-monoid-revisited.html&#34; target=&#34;_blank&#34; id=&#34;The stack monoid revisited&#34;&gt;The stack monoid revisited&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses a technique for parallel processing of stack-based operations&lt;/li&gt;
&lt;li&gt;designed for a clip stack in the usage of a compute-centric 2D GPU renderer&lt;/li&gt;
&lt;li&gt;single-pass process with bounded memory usage within a thread group&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-183/stack_monoid.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210516211130/https://raphlinus.github.io/gpu/2021/05/13/stack-monoid-revisited.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Vq5T4hu8NWM&#34; target=&#34;_blank&#34; id=&#34;[video] Basics of Mipmaps in Unity Part 1! Import Settings and Custom Mipmaps!&#34;&gt;[video] Basics of Mipmaps in Unity Part 1! Import Settings and Custom Mipmaps!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents an explanation on mipmaps, presenting what effects it has on the visual appearance&lt;/li&gt;
&lt;li&gt;explains how to use unity to automatically generate mipmaps&lt;/li&gt;
&lt;li&gt;shows how to generate custom mipmaps&lt;/li&gt;
&lt;li&gt;additionally provides some ideas on how to use custom generated mipmaps to achieve water caustics implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-183/mip_mapping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=beNDx5Cvt7M&#34; target=&#34;_blank&#34; id=&#34;[video] Raymarched Reflections&#34;&gt;[video] Raymarched Reflections&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 3 of the newton cradle tutorial series&lt;/li&gt;
&lt;li&gt;shows how to implement reflections using raymarching; this enables the object to be reflected in itself&lt;/li&gt;
&lt;li&gt;implementation is done using ShaderToy&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-183/reflection_tracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Ros7ZXqLbFg&#34; target=&#34;_blank&#34; id=&#34;[video] SIGGRAPH 2021: Technical Papers Preview Trailer&#34;&gt;[video] SIGGRAPH 2021: Technical Papers Preview Trailer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;4-minute trailer presenting a brief look at many papers that will be presented as part of SIGGRAPH 2021&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-183/siggraph_2021.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 182 — May 9, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-182/</link>
      <pubDate>Sun, 09 May 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-182/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arbook.icg.tugraz.at/schmalstieg/Schmalstieg_396.pdf&#34; target=&#34;_blank&#34; id=&#34;Temporally Adaptive Shading Reuse for Real-Time Rendering and Virtual Reality&#34;&gt;Temporally Adaptive Shading Reuse for Real-Time Rendering and Virtual Reality&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper investigates how shading reuse is perceived when visibility and shading rate is decoupled&lt;/li&gt;
&lt;li&gt;presents that even in dynamic scenes, it&amp;rsquo;s possible to reuse a large amount of shading information&lt;/li&gt;
&lt;li&gt;shows different methods that can be used to predictively shade, compares the results, and present limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-182/showdown.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/qruR9&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://jcgt.org/published/0010/02/01/&#34; target=&#34;_blank&#34; id=&#34;Scaling Probe-Based Real-Time Dynamic Global Illumination for Production&#34;&gt;Scaling Probe-Based Real-Time Dynamic Global Illumination for Production&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents extensions and improvements to the probe-based irradiance-field-with-visibility representation technique&lt;/li&gt;
&lt;li&gt;presents a multiresolution cascaded volumes representation to support large worlds&lt;/li&gt;
&lt;li&gt;improved probe pruning, faster convergence through perception-based irradiance encoding&lt;/li&gt;
&lt;li&gt;additionally presents how to use irradiance probes to shade glossy reflection rays&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-182/probe_gi.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/omaQL&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=nohGiVNWhJE&#34; target=&#34;_blank&#34; id=&#34;[video] Basics of White Noise! Random Numbers for Shaders and ProcGen in Unity&#34;&gt;[video] Basics of White Noise! Random Numbers for Shaders and ProcGen in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains how to generate 2D Perlin noise and how to use it in Unity&lt;/li&gt;
&lt;li&gt;provides sources for other noise kinds&lt;/li&gt;
&lt;li&gt;additionally presents a few examples of how to use Noise&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-182/white_noise.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://simul.co/careers/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior Rendering Engineer &amp;amp; Rendering Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Liverpool based/remote work considered&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;We are looking for a Rendering Engineer with experience in developing high-quality, high-performance software: in games or otherwise.&lt;/p&gt;

&lt;p&gt;This role will suit someone who is keen to take the next step forward in their career and in interactive tech. We are working on core immersive technology that spans the full range of XR, and this is an opportunity to help shape the future of spatial computing.&lt;/p&gt;

&lt;p&gt;Simul is an established leader in real-time graphics middleware; the company&amp;rsquo;s customers include Bandai Namco, Microsoft Game Studios, Sony, and Ubisoft. In 2020, Simul won the TIGA 2020 Best Technical Innovation Award for our work on trueSKY, the leading real-time weather SDK. We have a culture of agile development focused on quality, performance and precision. We believe in equal opportunity and a diverse, inclusive and supportive workplace.&lt;/p&gt;

&lt;p&gt;You will be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Researching and developing new immersive technologies,&lt;/li&gt;
&lt;li&gt;Working in an agile team,&lt;/li&gt;
&lt;li&gt;Finding and fixing bugs and performance issues,&lt;/li&gt;
&lt;li&gt;Profiling and optimizing CPU, GPU and network code,&lt;/li&gt;
&lt;li&gt;Representing Simul at technical and non-technical events, in-person and online.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The benefits Simul offers are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flexible remote working,&lt;/li&gt;
&lt;li&gt;Regular salary reviews and career progression,&lt;/li&gt;
&lt;li&gt;22 days holiday + bank holidays,&lt;/li&gt;
&lt;li&gt;Dedicated self-development time.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/simul_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;simul_week_182&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ncUNLDQZMzQ&#34; target=&#34;_blank&#34; id=&#34;[video] It Just Works: Ray-Traced Reflections in Battlefield V&#34;&gt;[video] It Just Works: Ray-Traced Reflections in Battlefield V&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents how D3D12 Raytracing support was implemented in Battlefield V&lt;/li&gt;
&lt;li&gt;mix of screenspace reflections and raytracing&lt;/li&gt;
&lt;li&gt;shows the pipeline implementation, adaptive ray count selection, ray defragmentation, binning, and denoising&lt;/li&gt;
&lt;li&gt;techniques to improve BVH updates, culling hierarchies, partial updates,&lt;/li&gt;
&lt;li&gt;how to deal with shader graph authored shaders, integration with shading, particles, and vegetation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-182/battlefield_dxr.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wickedengine.net/2021/05/06/graphics-api-abstraction/&#34; target=&#34;_blank&#34; id=&#34;Graphics API abstraction&#34;&gt;Graphics API abstraction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a walkthrough of the API abstractions on top of D3D11, D3D12, and Vulkan used in the Wicked Engine&lt;/li&gt;
&lt;li&gt;shows the resource, pipeline, command list, queues, and barrier abstractions&lt;/li&gt;
&lt;li&gt;discussing some limitations of the current approach and how it might develop in the future&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-182/wicked_apis.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/AR6Y5&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ourmachinery.com/post/a-debugging-story/&#34; target=&#34;_blank&#34; id=&#34;A Debugging Story&#34;&gt;A Debugging Story&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an interactive article about debugging a C++ crash&lt;/li&gt;
&lt;li&gt;more about C++ than graphics, but I really liked the interactive article :)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-182/debugging_story.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/76NxE#&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.danielsieger.com/blog/2021/05/03/generating-primitive-shapes.html&#34; target=&#34;_blank&#34; id=&#34;Generating Primitive Shapes in C&amp;#43;&amp;#43;&#34;&gt;Generating Primitive Shapes in C&amp;#43;&amp;#43;&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to generate planes, cones, cylinders, and a torus&lt;/li&gt;
&lt;li&gt;implementation provided in C++&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-182/generating_primitives_teaser.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/dj6A7&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ea.com/seed/news/ddm-compression-with-continuous-examples&#34; target=&#34;_blank&#34; id=&#34;Direct Delta Mush Skinning Compression with Continuous Examples&#34;&gt;Direct Delta Mush Skinning Compression with Continuous Examples&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a novel model that splits a Direct Delta Mush into two layers&lt;/li&gt;
&lt;li&gt;this can approximate the deformation with improved runtime performance and lower memory requirement&lt;/li&gt;
&lt;li&gt;the video shows a comparison against other methods&lt;/li&gt;
&lt;li&gt;additionally presents performance numbers for the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-182/ddm_skinning.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/DZ51a&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shuangz.com/projects/antithetic-sg21/&#34; target=&#34;_blank&#34; id=&#34;Antithetic Sampling for Monte Carlo Differentiable Rendering&#34;&gt;Antithetic Sampling for Monte Carlo Differentiable Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents antithetic variance reduction technique used to estimate the interior integrals&lt;/li&gt;
&lt;li&gt;shows the usage of the technique for Monte Carlo differentiable rendering of glossy and BSDFs&lt;/li&gt;
&lt;li&gt;antithetic sampling is the use of negatively correlated samples instead of independent samples&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-182/path_tracing_antithetic.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/tgKPS&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=2jwVDRKKDME&#34; target=&#34;_blank&#34; id=&#34;[video] Burning Down Virtual Trees... In Real Time!&#34;&gt;[video] Burning Down Virtual Trees... In Real Time!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Two Minute Paper provides an overview of the Interactive Wood Combustion for Botanical Tree Models paper from 2017&lt;/li&gt;
&lt;li&gt;shows what parameters are exposed, what kind of effects it can generate&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-182/burning_tree.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/adalbertobruno/&#34; target=&#34;_blank&#34;&gt;Adalberto Bruno&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 181 — May 2, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-181/</link>
      <pubDate>Sun, 02 May 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-181/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Agf188Q8EAc&#34; target=&#34;_blank&#34; id=&#34;[video] Newton&amp;#39;s Cradle: Setting up Materials&#34;&gt;[video] Newton&amp;#39;s Cradle: Setting up Materials&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 2 of the video tutorial that adds material support to the SDF based Newton Cradle implemented using ShaderToy&lt;/li&gt;
&lt;li&gt;presents how to classify the objects into separate materials&lt;/li&gt;
&lt;li&gt;adds support for cube map environment maps and reflections on the objects of the scene&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-181/newton_cradle.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://raphlinus.github.io/gpu/2021/04/28/slow-shader.html&#34; target=&#34;_blank&#34; id=&#34;The case of the curiously slow shader&#34;&gt;The case of the curiously slow shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a walkthrough how the author analyzed the slow shader performance on the GPU of the Pixel 4&lt;/li&gt;
&lt;li&gt;shows how to detect occupancy, get access to the assembly instructions&lt;/li&gt;
&lt;li&gt;ultimatly presents how reading the assembly showed the source of the performance problem, how it connects to shader memory model and how to possibly resolve it&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-181/gpu_adreno_640_timings.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210502150753/https://raphlinus.github.io/gpu/2021/04/28/slow-shader.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://projectivegeometricalgebra.org/wiki/index.php?title=Main_Page&#34; target=&#34;_blank&#34; id=&#34;Projective Geometric Algebra - Wiki&#34;&gt;Projective Geometric Algebra - Wiki&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;WIP wiki about Projective Geometric Algebra, specifically the four-dimensional Clifford algebra&lt;/li&gt;
&lt;li&gt;a mathematical model that incorporates common computer graphics operations in a single algebraic structure&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-181/projective_geometric_algebra.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210427213407/http://projectivegeometricalgebra.org/wiki/index.php?title=Main_Page&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.oculus.com/blog/how-to-obtain-stable-gpu-measurements-on-quest/&#34; target=&#34;_blank&#34; id=&#34;How to Obtain Stable GPU Measurements on Quest&#34;&gt;How to Obtain Stable GPU Measurements on Quest&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to setup UE and Unity to disable dynamic motions, user specific parts from profiling test&lt;/li&gt;
&lt;li&gt;what system passes to disable to get stable GPU times&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-181/quest_gpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210503061921/https://developer.oculus.com/blog/how-to-obtain-stable-gpu-measurements-on-quest/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-96-30-04-2021/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 96 (30.04.2021)&#34;&gt;Technically Art: Issue 96 (30.04.2021)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tech art tweets&lt;/li&gt;
&lt;li&gt;covering UE4 weather systems, GPU instancing with Unity shader graphs&lt;/li&gt;
&lt;li&gt;entries of tech art challenge, vegetation shading, and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-181/technically_art_template_96.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210501040911/https://halisavakis.com/technically-art-issue-96-30-04-2021/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://valeriomarty.medium.com/creating-a-card-shader-with-3d-content-f3324ca8ffdc&#34; target=&#34;_blank&#34; id=&#34;Creating a Card Shader with 3D content&#34;&gt;Creating a Card Shader with 3D content&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a walkthrough how to create a card shader&lt;/li&gt;
&lt;li&gt;covers how to use stencil buffers to limit the 3d content&lt;/li&gt;
&lt;li&gt;shows how to implement the view direction dependent parralax and reflctions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-181/card3d.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210430193327/https://valeriomarty.medium.com/creating-a-card-shader-with-3d-content-f3324ca8ffdc&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://youtu.be/EIlJxFBbA2k&#34; target=&#34;_blank&#34; id=&#34;[video] NEW – Video: Radeon GPU Profiler v1.10&#34;&gt;[video] NEW – Video: Radeon GPU Profiler v1.10&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a summary of the new features in the radeon GPU profiler&lt;/li&gt;
&lt;li&gt;covering cache counters and raytracing integration&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-181/amd_gpu_counters.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://threadreaderapp.com/thread/1388449767928311810.html&#34; target=&#34;_blank&#34; id=&#34;Graphics technique names&#34;&gt;Graphics technique names&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;twitter thread author provides summaries of 3 common technques&lt;/li&gt;
&lt;li&gt;covering Ambient occlusion, Shadow pancaking and Waterfall loop&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-181/screenshot-ao.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210503062237/https://threadreaderapp.com/thread/1388449767928311810.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/pseudorandom-noise/hashing-space/&#34; target=&#34;_blank&#34; id=&#34;Hashing Space Hashing in an Arbitrary Grid&#34;&gt;Hashing Space Hashing in an Arbitrary Grid&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial explains how to generate consistent hashes based on integer positions&lt;/li&gt;
&lt;li&gt;covering how to vectorize position and normal calculations&lt;/li&gt;
&lt;li&gt;additionally presents how to correctly update normals to deal with non-linear scaling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-181/hashing_space.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210430155923/https://catlikecoding.com/unity/tutorials/pseudorandom-noise/hashing-space/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/keithoconor&#34; target=&#34;_blank&#34;&gt;Keith O&amp;rsquo;Conor&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 180 — April 25, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-180/</link>
      <pubDate>Sun, 25 Apr 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-180/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/hlsl-shader-model-6-6/&#34; target=&#34;_blank&#34; id=&#34;Announcing HLSL Shader Model 6.6&#34;&gt;Announcing HLSL Shader Model 6.6&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;64-bit integer atomics are now supported&lt;/li&gt;
&lt;li&gt;some new capability bits got introduced as not all views, sources support it on all hardware&lt;/li&gt;
&lt;li&gt;dynamic resources allow indexing into a single array of descriptors,&lt;/li&gt;
&lt;li&gt;explains what helper lanes are and how they relate to lanes and quads&lt;/li&gt;
&lt;li&gt;compute shader derivatives and how they are derived from thread group layout&lt;/li&gt;
&lt;li&gt;Wave Size attribute allows shaders to specialize shaders for wave sizes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-180/shader_model_66.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.youtube.com/watch?v=5rYBLjUmGkA&amp;amp;list=PLRs2lXTYCDQ2Dbiwf8VIBmROp41A6SgG_&amp;amp;index=7&#34; style=&#34;color:white;&#34;&gt;video &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210420215411/https://devblogs.microsoft.com/directx/hlsl-shader-model-6-6/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://kelvinvanhoorn.wordpress.com/2021/04/20/supermassive-black-hole-tutorial/&#34; target=&#34;_blank&#34; id=&#34;Supermassive black hole tutorial&#34;&gt;Supermassive black hole tutorial&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial provides a walkthrough of a raymarching supermassive black hole shader&lt;/li&gt;
&lt;li&gt;implementation is an approximated physically-based done using Unity&lt;/li&gt;
&lt;li&gt;author presents the sources, approximations done and discusses limitations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-180/black_hole.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210420124159/https://kelvinvanhoorn.wordpress.com/2021/04/20/supermassive-black-hole-tutorial/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=EgxPL4VKCps&amp;amp;list=PLRs2lXTYCDQ2Dbiwf8VIBmROp41A6SgG_&amp;amp;index=3&#34; target=&#34;_blank&#34; id=&#34;[video] RTXDI: Details on Achieving Real Time Performance&#34;&gt;[video] RTXDI: Details on Achieving Real Time Performance&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Talk discusses how the performance of the ray-traced direct illumination was greatly improved&lt;/li&gt;
&lt;li&gt;presents an overview of what ReSTIR importance sampling algorithm&lt;/li&gt;
&lt;li&gt;shows to the memory coherence and bandwidth was reduced through pre-randomization of input lists&lt;/li&gt;
&lt;li&gt;additionally discusses how the number of rays could be reduced by decoupling shading, reuse, and visibility&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-180/rtxdi.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=RTtVC-Zk5yI&amp;amp;list=PLRs2lXTYCDQ2Dbiwf8VIBmROp41A6SgG_&amp;amp;index=8&#34; target=&#34;_blank&#34; id=&#34;[video] Denoising Raytraced Soft Shadows on Xbox Series X|S and Windows with FidelityFX&#34;&gt;[video] Denoising Raytraced Soft Shadows on Xbox Series X|S and Windows with FidelityFX&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains shadow denoising process&lt;/li&gt;
&lt;li&gt;broken down into 5 blocks that are explained individually&lt;/li&gt;
&lt;li&gt;shadow mask creation, local neighborhood, occlusion, reproject, and spatial filters&lt;/li&gt;
&lt;li&gt;first covers the functionality of these blocks&lt;/li&gt;
&lt;li&gt;afterward shows optimizations applied to each stage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-180/dxr_denoising_blocks.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=-exWLpgnOJ4&amp;amp;list=PLRs2lXTYCDQ2Dbiwf8VIBmROp41A6SgG_&amp;amp;index=9&#34; target=&#34;_blank&#34; id=&#34;[video] Tier 2 Variable Rate Shading in Gears&#34;&gt;[video] Tier 2 Variable Rate Shading in Gears&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of Variable Rate Shading (VRS), what is supported with Tier 1 and 2&lt;/li&gt;
&lt;li&gt;edge detection run as part of the tone mapping step, generating two shading images (default and conservative)&lt;/li&gt;
&lt;li&gt;VRS shading rate image is also read in compute shaders for reduced shading rate for compute shaders&lt;/li&gt;
&lt;li&gt;presents performance numbers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-180/vrs_tier2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://threadreaderapp.com/thread/1384961617926963200.html&#34; target=&#34;_blank&#34; id=&#34;Inverse Z-Buffer&#34;&gt;Inverse Z-Buffer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;visual representation that shows why inverted depth buffer range with floating-point formats improves precision&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-180/inverse_z_buffer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210426065603/https://threadreaderapp.com/thread/1384961617926963200.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://i3dsymposium.github.io/2021/posters.html&#34; target=&#34;_blank&#34; id=&#34;i3D 2021 - Posters&#34;&gt;i3D 2021 - Posters&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;list of posters presented at I3D&lt;/li&gt;
&lt;li&gt;covering Linearly Transformed Spherical Harmonics, Style-Preserving Pixel Art Magnification, Rendering of Many Lights with Grid-Based Reservoirs and others&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-180/new_poster_space.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210426065618/http://i3dsymposium.github.io/2021/posters.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/shaderquest-part-5-shader-code-syntax-colors/&#34; target=&#34;_blank&#34; id=&#34;ShaderQuest Part 5: Shader code syntax &amp;amp; Colors&#34;&gt;ShaderQuest Part 5: Shader code syntax &amp;amp; Colors&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 5 of beginner-focused shader tutorial series&lt;/li&gt;
&lt;li&gt;focuses on data types, representation of color&lt;/li&gt;
&lt;li&gt;shows how to output constant colors in Unity shaders code, visual shader graph, and unreal engine&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-180/SQ_Part_5.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210420074630/https://halisavakis.com/shaderquest-part-5-shader-code-syntax-colors/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphicscodex.courses.nvidia.com/app.html&#34; target=&#34;_blank&#34; id=&#34;The Graphics Codex&#34;&gt;The Graphics Codex&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Graphics Codex online textbox is now a free&lt;/li&gt;
&lt;li&gt;covering an extensive range of topics, model of light, Rendering equation, camera, material models, path tracing, parallel architectures, and much more&lt;/li&gt;
&lt;li&gt;additionally contains many references to further sources on the topics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-180/ray-march-reference.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210420080748/https://graphicscodex.courses.nvidia.com/app.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://i3dsymposium.github.io/2021/posters/hansen2021_rendering_decals_and_many_lights_paper.pdf&#34; target=&#34;_blank&#34; id=&#34;Rendering Decals and Many Lights with Ray Tracing Acceleration Structures&#34;&gt;Rendering Decals and Many Lights with Ray Tracing Acceleration Structures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a method that uses the AABS from hardware raytracing shaders to apply decals and lights&lt;/li&gt;
&lt;li&gt;uses a zero-length ray to collect all overlapping decals/lights per pixel&lt;/li&gt;
&lt;li&gt;compares performance against deferred decals&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-180/aabb_decals.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210426065825/http://i3dsymposium.github.io/2021/posters/hansen2021_rendering_decals_and_many_lights_paper.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/unai_landa&#34; target=&#34;_blank&#34;&gt;Unai Landa&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 179 — April 18, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-179/</link>
      <pubDate>Sun, 18 Apr 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-179/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://meistdan.github.io/&#34; target=&#34;_blank&#34; id=&#34;A Survey on Bounding Volume Hierarchies for Ray Tracing&#34;&gt;A Survey on Bounding Volume Hierarchies for Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents comprehensive coverage of BVH hierarchies, especially focused on ray tracing&lt;/li&gt;
&lt;li&gt;provides an overview of the basics, compare many state of the art algorithms for construction and traversal&lt;/li&gt;
&lt;li&gt;provides a comprehensive overview of existing hardware and frameworks&lt;/li&gt;
&lt;li&gt;additionally presents the most common techniques and recommendations for the different algorithms to be used&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-179/BVHsurvey.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://meistdan.github.io/publications/bvh_star/paper.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20210419071654/https://meistdan.github.io/publications/bvh_star/paper.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210417035953/https://meistdan.github.io/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=nd7Auhb9YN8&#34; target=&#34;_blank&#34; id=&#34;[video] Newton&amp;#39;s Cradle: Modeling &amp;amp; Animation&#34;&gt;[video] Newton&amp;#39;s Cradle: Modeling &amp;amp; Animation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial presents how to render and animate a newton&amp;rsquo;s cradle with SDFs&lt;/li&gt;
&lt;li&gt;implementation is done using shader toy&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-179/NewtonCradle.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bgolus.medium.com/distinctive-derivative-differences-cce38d36797b&#34; target=&#34;_blank&#34; id=&#34;Distinctive Derivative Differences&#34;&gt;Distinctive Derivative Differences&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the difference between ddx/y ddx/y_fine&lt;/li&gt;
&lt;li&gt;presents the history of these instructions in HLSL and how different hardware/API behaves&lt;/li&gt;
&lt;li&gt;shows example use cases on how fine and coarse rasterization affect seamless sphere mapping&lt;/li&gt;
&lt;li&gt;additionally presents how fine derivatives can be used for quad-level communication&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-179/ddx_ddy.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210413073033/https://bgolus.medium.com/distinctive-derivative-differences-cce38d36797b&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://marmoset.co/jobs/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphics Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Remote&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Marmoset is the developer of Toolbag, an industry standard 3D rendering and authoring suite. We’re looking for experienced programmers to work on challenging problems in rendering, texture authoring, baking, and more. If you’re interested in pushing a GPU as far as it can go, we’d like to meet you.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_marmoset.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;marmoset_week_178&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/an-introduction-to-vulkan-video&#34; target=&#34;_blank&#34; id=&#34;An Introduction to Vulkan Video&#34;&gt;An Introduction to Vulkan Video&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Vulkan API now exposes video support&lt;/li&gt;
&lt;li&gt;extended the concept of the queue to support decode/encode queues with different extensions for several codecs&lt;/li&gt;
&lt;li&gt;the article presents a walkthrough of the API through the usage of an encoder example&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-179/2021-blog-Figure-4-Video-decode-process-in-Vulkan_2.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210416135725/https://www.khronos.org/blog/an-introduction-to-vulkan-video&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jorenjoestar.github.io/post/pixel_art_filtering/&#34; target=&#34;_blank&#34; id=&#34;Pixel Art Filtering&#34;&gt;Pixel Art Filtering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of why filtering for pixel art at non-integer values is vital to prevent artifacts&lt;/li&gt;
&lt;li&gt;provides an overview of numerous filters and links to resources&lt;/li&gt;
&lt;li&gt;additionally provides a demo application to compare the different filters&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-179/pixel_art_filtering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210415215638/https://jorenjoestar.github.io/post/pixel_art_filtering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.nvidia.com/publication/2021-04_Appearance-Driven-Automatic-3D&#34; target=&#34;_blank&#34; id=&#34;Appearance-Driven Automatic 3D Model Simplification&#34;&gt;Appearance-Driven Automatic 3D Model Simplification&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a machine learning-based approach that uses differential rendering to approximate several simplifications effects simultaneously&lt;/li&gt;
&lt;li&gt;presents a model that can jointly optimize over shape, appearance, and animation parameters&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-179/model_simplification.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210412220508/https://research.nvidia.com/publication/2021-04_Appearance-Driven-Automatic-3D&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2021/04/18/how-to-read-shader-assembly&#34; target=&#34;_blank&#34; id=&#34;How to read shader assembly&#34;&gt;How to read shader assembly&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of shader assembly reading&lt;/li&gt;
&lt;li&gt;focuses on GCN instructions&lt;/li&gt;
&lt;li&gt;provides a brief overview of the hardware, the different operations, and how small changes can make significant differences in generated code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-179/srgb_vgpr.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210419061019/https://interplayoflight.wordpress.com/2021/04/18/how-to-read-shader-assembly/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wallisc.github.io/rendering/2021/04/18/Fullscreen-Pass.html&#34; target=&#34;_blank&#34; id=&#34;Optimizing Triangles for a Full-screen Pass&#34;&gt;Optimizing Triangles for a Full-screen Pass&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents two common approaches to fullscreen passes&lt;/li&gt;
&lt;li&gt;using PIX shows why using a single large triangle is more efficient and describes why this is the case&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-179/fullscreen_triangle.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210419023323/https://wallisc.github.io/rendering/2021/04/18/Fullscreen-Pass.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://top-or.de/projects&#34; target=&#34;_blank&#34;&gt;Top-OR&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 178 — April 11, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-178/</link>
      <pubDate>Sun, 11 Apr 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-178/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wickedengine.net/2021/04/06/bindless-descriptors/&#34; target=&#34;_blank&#34; id=&#34;Bindless Descriptors&#34;&gt;Bindless Descriptors&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a walkthrough of the bindless implementation in Wicked Engine for both Vulkan and D3D12&lt;/li&gt;
&lt;li&gt;starting with an overview of what the bindless model is, how it interacts with subresource and different resource types&lt;/li&gt;
&lt;li&gt;additionally presents the implementation considerations and device capabilities that need to be respected&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-178/bindless_wiked_engine.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210407001134/https://wickedengine.net/2021/04/06/bindless-descriptors/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.stevestreeting.com/2021/04/06/skyboxes-in-ue4/&#34; target=&#34;_blank&#34; id=&#34;Skyboxes in UE4&#34;&gt;Skyboxes in UE4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to integrate skyboxes into UE4&lt;/li&gt;
&lt;li&gt;explains how cube maps are encoded and how to write the shader to render them&lt;/li&gt;
&lt;li&gt;additionally covers how to generate and convert data into the suitable format&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-178/equirectangular.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210407170544/https://www.stevestreeting.com/2021/04/06/skyboxes-in-ue4/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://boards.greenhouse.io/cesium/jobs/4273632003&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Software Developer, Emerging Technologies&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Philadelphia, PA&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;With more than one million downloads and millions of end users, Cesium is defining the standard for 3D geospatial across industries from the construction site to the battlefield, from outer space to underground. We are in an extraordinary position and are looking for an extraordinary entrepreneurially-minded customer-focused JavaScript developer.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;We need a skilled fast-moving JavaScript developer with experience in at least one tech stack using libraries and frameworks like Node.js, React, or similar.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;A continuous learner who loves to explore emerging technologies, introduce innovations, and learn and improve their skill set.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Ability to work in a fast-paced environment, wear multiple hats, and juggle multiple high-profile projects with competing deadlines.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_cesium.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;cesium_week_177&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.paavo.me/gpu-tilemap-rendering/&#34; target=&#34;_blank&#34; id=&#34;Rendering large 3D tilemaps with a single draw call at 3000 FPS&#34;&gt;Rendering large 3D tilemaps with a single draw call at 3000 FPS&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the articles describes the evolution of a multiple layered tilemap renderer&lt;/li&gt;
&lt;li&gt;starting at using the build-in Unity renderers, showing the incremental improvements&lt;/li&gt;
&lt;li&gt;the final solution is a custom rendering stack that stores the layers as voxels, containing indices into texture array slices&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-178/unity-minecraftesque.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210410202733/https://blog.paavo.me/gpu-tilemap-rendering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=I6HVbfMx2s4&#34; target=&#34;_blank&#34; id=&#34;[video] The Basics of SmoothStep, a Useful Shader Function in Unity URP&#34;&gt;[video] The Basics of SmoothStep, a Useful Shader Function in Unity URP&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains the smoothstep curve visually&lt;/li&gt;
&lt;li&gt;provides examples of uses cases, including a showcase of a simple toon shading implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-178/smoothstep.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://threadreaderapp.com/thread/1381256235211706375.html&#34; target=&#34;_blank&#34; id=&#34;how do you calculate correct normals when doing vertex displacement shaders?&#34;&gt;how do you calculate correct normals when doing vertex displacement shaders?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Twitter thread provides a detailed explanation on how to correctly calculate normal vectors from vertex displacement&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-178/vertex_displacement.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/Z4uhx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://marmoset.co/jobs/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Graphics Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Remote&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Marmoset is the developer of Toolbag, an industry standard 3D rendering and authoring suite. We’re looking for experienced programmers to work on challenging problems in rendering, texture authoring, baking, and more. If you’re interested in pushing a GPU as far as it can go, we’d like to meet you.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_marmoset.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;marmoset_week_178&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.microsoft.com/en-us/games/events/game-stack-live/&#34; target=&#34;_blank&#34; id=&#34;Game Stack Live&#34;&gt;Game Stack Live&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;registration for Microsoft&amp;rsquo;s online conference on April 20-21&lt;/li&gt;
&lt;li&gt;includes talks about several new DirectX features, Xbox innovations, as well as talks from partners&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-178/game_stack_live.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210410191536/https://developer.microsoft.com/en-us/games/events/game-stack-live/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=aX2WdCBgZ-k&#34; target=&#34;_blank&#34; id=&#34;[video] rendering numbers single quad&#34;&gt;[video] rendering numbers single quad&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an in-depth walkthrough of a debugging vertex ID shader&lt;/li&gt;
&lt;li&gt;IDs are visualized by generating camera facing quads with applied digits from a texture atlas&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-178/debug_quads.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/abs/2104.02789&#34; target=&#34;_blank&#34; id=&#34;NeuMIP: Multi-Resolution Neural Materials&#34;&gt;NeuMIP: Multi-Resolution Neural Materials&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a neural-network-based approach that is aimed at encoding detailed patterns into mipmap style lower resolution representations&lt;/li&gt;
&lt;li&gt;introduces the idea of neural offset for improved handling of parallax effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-178/neural_mips.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://arxiv.org/pdf/2104.02789.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210408014202/https://arxiv.org/abs/2104.02789&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/JasperBekkers/&#34; target=&#34;_blank&#34;&gt;Jasper Bekkers&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 177 — April 4, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-177/</link>
      <pubDate>Sun, 04 Apr 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-177/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/abs/2103.15163&#34; target=&#34;_blank&#34; id=&#34;Countering Racial Bias in Computer Graphics Research&#34;&gt;Countering Racial Bias in Computer Graphics Research&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents racial bias that can be found in the technical language and numerical measures used in skin and hair research&lt;/li&gt;
&lt;li&gt;presents suggestion on how graphics research practices can be improved to include a larger spectrum of humanity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-177/RacialBiasResearch.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://arxiv.org/pdf/2103.15163.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20210405050757/https://arxiv.org/pdf/2103.15163.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210405050744/https://arxiv.org/abs/2103.15163&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=KqWfo6EPjCw&#34; target=&#34;_blank&#34; id=&#34;[video] Create a Sand Dune Shader Graph in Unity URP! No Textures Needed!&#34;&gt;[video] Create a Sand Dune Shader Graph in Unity URP! No Textures Needed!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Tutorial presents how to generate sand dunes in pixel shaders using Unity&lt;/li&gt;
&lt;li&gt;presents a normal vector based sand shine reflection&lt;/li&gt;
&lt;li&gt;for more in-depth realistic sand, check out &lt;a href=&#34;https://www.gdcvault.com/play/1017742/Sand-Rendering-in&#34; target=&#34;_blank&#34;&gt;Sand Rendering in Journey&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-177/SandDune.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/rgp1-10/&#34; target=&#34;_blank&#34; id=&#34;Radeon™ GPU Profiler v1.10 introduces GPU cache counters, Vulkan® ray tracing, and more&#34;&gt;Radeon™ GPU Profiler v1.10 introduces GPU cache counters, Vulkan® ray tracing, and more&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;updated version supports reporting of memory, instruction, and scalar cache usage on RDNA hardware&lt;/li&gt;
&lt;li&gt;article presents how the data is visualized&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-177/RGP_CacheCounter_overview.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210402123806/https://gpuopen.com/learn/rgp1-10/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://boards.greenhouse.io/cesium/jobs/4273632003&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Software Developer, Emerging Technologies&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Philadelphia, PA&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;With more than one million downloads and millions of end users, Cesium is defining the standard for 3D geospatial across industries from the construction site to the battlefield, from outer space to underground. We are in an extraordinary position and are looking for an extraordinary entrepreneurially-minded customer-focused JavaScript developer.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;We need a skilled fast-moving JavaScript developer with experience in at least one tech stack using libraries and frameworks like Node.js, React, or similar.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;A continuous learner who loves to explore emerging technologies, introduce innovations, and learn and improve their skill set.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Ability to work in a fast-paced environment, wear multiple hats, and juggle multiple high-profile projects with competing deadlines.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_cesium.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;cesium_week_177&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.linkedin.com/pulse/managing-shader-code-complexity-nvidia-omniverse-tim-foley/&#34; target=&#34;_blank&#34; id=&#34;Managing Shader Code Complexity in NVIDIA Omniverse&#34;&gt;Managing Shader Code Complexity in NVIDIA Omniverse&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the Slang Shading language and its use inside of NVIDIA Omniverse&lt;/li&gt;
&lt;li&gt;Slang is HLSL based, can be used to generate SPIR-V, DXIL, and DXBC&lt;/li&gt;
&lt;li&gt;the main additions are interfaces, generics, and modules&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-177/SlangShading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210405050924/https://www.linkedin.com/pulse/managing-shader-code-complexity-nvidia-omniverse-tim-foley/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2021/04/01/mean-squared-error-is-variance/&#34; target=&#34;_blank&#34; id=&#34;Mean Squared Error is Variance&#34;&gt;Mean Squared Error is Variance&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to calculate the variance of a stream of values&lt;/li&gt;
&lt;li&gt;only the average and average square value are required to be tracked&lt;/li&gt;
&lt;li&gt;variance and standard deviation can be derived from these&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-177/grand-teton.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210402110144/https://blog.demofox.org/2021/04/01/mean-squared-error-is-variance/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://phog.github.io/snerg/index.html&#34; target=&#34;_blank&#34; id=&#34;Baking Neural Radiance Fields for Real-Time View Synthesis&#34;&gt;Baking Neural Radiance Fields for Real-Time View Synthesis&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a novel sparse Neural Radiance Grid representation&lt;/li&gt;
&lt;li&gt;this representation allows Neural Radiance Fields (NeRF) to be baked so that rendering can be archived in realtime&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-177/SNeRG_breakdown.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://arxiv.org/pdf/2103.14645.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://archive.is/eNvHt&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210331172832/https://phog.github.io/snerg/index.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.danielsieger.com/blog/2021/03/27/generating-spheres.html&#34; target=&#34;_blank&#34; id=&#34;Generating Meshes of a Sphere&#34;&gt;Generating Meshes of a Sphere&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents 4 different ways to generate a sphere mesh&lt;/li&gt;
&lt;li&gt;UV Sphere, Icosphere, Quad Sphere, and Goldberg Polyhedra&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-177/generating_spheres_teaser.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210326231249/https://www.danielsieger.com/blog/2021/03/27/generating-spheres.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/leonardoetcheverry/&#34; target=&#34;_blank&#34;&gt;Leonardo Etcheverry&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 176 — March 28, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-176/</link>
      <pubDate>Sun, 28 Mar 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-176/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.embree.org/related.html&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing Lossy Compressed Grid Primitives&#34;&gt;Ray Tracing Lossy Compressed Grid Primitives&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a method that allows a 5−7× reduction in memory footprint compared to indexed triangle meshes&lt;/li&gt;
&lt;li&gt;this is archived by converting vertices into vertex grids and using compressed displacement vectors to compress the vertex data&lt;/li&gt;
&lt;li&gt;the additional work required to decompress the data adds around 15% of overhead&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-176/2021-EG-LossyGrids-000.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.embree.org/papers/2021-EG-LossyGrids.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20210329060053/https://www.embree.org/papers/2021-EG-LossyGrids.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210329060014/https://www.embree.org/related.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/understanding-vulkan-synchronization&#34; target=&#34;_blank&#34; id=&#34;Understanding Vulkan Synchronization&#34;&gt;Understanding Vulkan Synchronization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog posts provides an easy to understand summary of the Vulkan Synchronization&lt;/li&gt;
&lt;li&gt;additionally includes information about what parts of the API have changed with Synchronization2&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-176/vulkan_sync.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210329055410/https://www.khronos.org/blog/understanding-vulkan-synchronization&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://simonstechblog.blogspot.com/2021/03/importance-sampling-visible-wavelength.html&#34; target=&#34;_blank&#34; id=&#34;Importance sampling visible wavelength&#34;&gt;Importance sampling visible wavelength&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents experiments with spectral rendering to find an importance sampled wavelength sampling approximation&lt;/li&gt;
&lt;li&gt;presents comparisons of the different approximations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-176/100_0_smoothstep.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210329055622/http://simonstechblog.blogspot.com/2021/03/importance-sampling-visible-wavelength.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.nvidia.com/publication/2021-03_Interactive-Path-Tracing&#34; target=&#34;_blank&#34; id=&#34;Interactive Path Tracing and Reconstruction of Sparse Volumes&#34;&gt;Interactive Path Tracing and Reconstruction of Sparse Volumes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a technique to allow path tracing through sparse volumes&lt;/li&gt;
&lt;li&gt;based on NanoVDB with unbiased multiple scattering volume path tracing and neural denoising&lt;/li&gt;
&lt;li&gt;able to render Disney Clouds in 60 ms&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-176/realtime_path_tracing_volume.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://d1qx31qr3h6wln.cloudfront.net/publications/paper_v3.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210320195106/https://research.nvidia.com/publication/2021-03_Interactive-Path-Tracing&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=DW4DypNUcTY&#34; target=&#34;_blank&#34; id=&#34;[video] Compositional Neural Scene Representations for Shading Inference - SIGGRAPH 2020 Paper Presentation&#34;&gt;[video] Compositional Neural Scene Representations for Shading Inference - SIGGRAPH 2020 Paper Presentation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video recording of the SIGGRAPH 2020 was released&lt;/li&gt;
&lt;li&gt;the paper presents how to use a neural representation to infer additional results such as reflections and global illumination&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-176/neural_scene_representation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/JarkkoPFC/meshlete&#34; target=&#34;_blank&#34; id=&#34;Meshlete&#34;&gt;Meshlete&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;open-source release of a tool to generate meshlets (for use with mesh shaders, GPU based culling, etc)&lt;/li&gt;
&lt;li&gt;additionally can generate bounding sphere and visibility cones&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-176/suzanne_meshlets.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210329055941/https://github.com/JarkkoPFC/meshlete&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/nvpro-samples/vk_raytracing_tutorial_KHR&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Vulkan Ray Tracing Tutorials&#34;&gt;NVIDIA Vulkan Ray Tracing Tutorials&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Vulkan Ray tracing tutorials have been updated&lt;/li&gt;
&lt;li&gt;added new tutorials on how to use vkCmdTraceRaysIndirectKHR and how to ray cast ambient occlusion using ray queries&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-176/ray_indirect_intro.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210329055946/https://github.com/nvpro-samples/vk_raytracing_tutorial_KHR&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.kocht.eu/gvspp.html&#34; target=&#34;_blank&#34; id=&#34;Guided Visibility Sampling&amp;#43;&amp;#43;&#34;&gt;Guided Visibility Sampling&amp;#43;&amp;#43;&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a technique to discover a potentially visible set (PVS) of triangles visible from a region of space&lt;/li&gt;
&lt;li&gt;this technique uses ray shooting guided by Adaptive Border Sampling and  Reverse Sampling&lt;/li&gt;
&lt;li&gt;provides an overview of how the method was implemented using Vulkan hardware Raytracing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-176/guided_visibility_sampling.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210329055959/https://www.kocht.eu/gvspp.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=DVVcHDf-bYc&#34; target=&#34;_blank&#34; id=&#34;[video] Sparkling Grass Lawn in Shader Graph! Unity URP Procedural Material&#34;&gt;[video] Sparkling Grass Lawn in Shader Graph! Unity URP Procedural Material&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to generate a procedural stylized lawn shader&lt;/li&gt;
&lt;li&gt;uses a combination of noises to create the shading&lt;/li&gt;
&lt;li&gt;additionally adds support for sparking based on view angle&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-176/sparkling_grass.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://threadreaderapp.com/thread/1375270184953389060.html&#34; target=&#34;_blank&#34; id=&#34;Twitter Thread - Valheim rendering performance&#34;&gt;Twitter Thread - Valheim rendering performance&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Twitter thread presents a breakdown of the Valheim rendering pipeline (implemented using Unity)&lt;/li&gt;
&lt;li&gt;shows the different rendering passes, what shaders are expensive, and usage patterns responsible for suboptimal performance&lt;/li&gt;
&lt;li&gt;additionally provides pointers at possible improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-176/valheim_particle_overdraw.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210326193146/https://threadreaderapp.com/thread/1375270184953389060.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-91-26-03-2021/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 91 (26.03.2021)&#34;&gt;Technically Art: Issue 91 (26.03.2021)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tech art tweets&lt;/li&gt;
&lt;li&gt;covering art style demonstration, material creation, destruction, and much more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-176/technically_art_template_91.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210327002116/https://halisavakis.com/technically-art-issue-91-26-03-2021/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://danielilett.com/2021-03-19-tut5-15-wall-cutout/&#34; target=&#34;_blank&#34; id=&#34;Wall Cutout in Shader Graph and URP&#34;&gt;Wall Cutout in Shader Graph and URP&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial explains an approach how to implement cutting walls into 3D walls&lt;/li&gt;
&lt;li&gt;used method uses a screenspace projected sphere that is placed on walls using raycasting&lt;/li&gt;
&lt;li&gt;implementation walkthrough is using visual scripting in Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-176/part15-cutout-complete.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210326110625/https://danielilett.com/2021-03-19-tut5-15-wall-cutout/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/vivitsum&#34; target=&#34;_blank&#34;&gt;Vivitsu Maharaja&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 175 — March 21, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-175/</link>
      <pubDate>Sun, 21 Mar 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-175/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://igg.unistra.fr/People/chermain/glint_anti_aliasing/&#34; target=&#34;_blank&#34; id=&#34;Real-Time Geometric Glint Anti-Aliasing with Normal Map Filtering&#34;&gt;Real-Time Geometric Glint Anti-Aliasing with Normal Map Filtering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a Geometric glint anti-aliasing method that is compatible with LEAN mapping&lt;/li&gt;
&lt;li&gt;this is archived by using mipmapping on the tabulated slope distribution function (SDF) of the microfacet BRDF&lt;/li&gt;
&lt;li&gt;a slope correlation coefficient is additionally introduced to make it compatible with normal mapping&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-175/glint_filtering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://igg.unistra.fr/People/chermain/assets/pdf/Chermain2021RealTime.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20210322050809/http://igg.unistra.fr/People/chermain/assets/pdf/Chermain2021RealTime.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210310102943/http://igg.unistra.fr/People/chermain/glint_anti_aliasing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jhstrom.blogspot.com/2021/03/screen-space-reflections-explained.html&#34; target=&#34;_blank&#34; id=&#34;Screen-Space Reflections Explained&#34;&gt;Screen-Space Reflections Explained&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the first steps required to implement screen space reflection into an OpenGL based renderer&lt;/li&gt;
&lt;li&gt;shows what artifacts can be expected and what the author tried to improve but didn&amp;rsquo;t work out&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-175/ssr.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210322051006/https://jhstrom.blogspot.com/2021/03/screen-space-reflections-explained.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.dsdambuster.com/careers/rendering-programmer&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Rendering Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;Nottingham, UK (remote to begin with)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Deep Silver Dambuster Studios is looking for a Rendering Programmer to join our Engineering Department to work on our high-end graphics pipeline.&lt;/p&gt;

&lt;p&gt;You will be contributing towards the development of the upcoming AAA title, Dead Island, using Unreal engine.&lt;/p&gt;

&lt;p&gt;For this role, we are looking for a regular level programmer (two years’ experience) or a very strong graduate with relevant qualifications and interests.&lt;/p&gt;

&lt;p&gt;Experience with DXR and compute are a must, as you will be heavily involved in raising our visual bar on high-end platforms using the latest rendering technologies.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/Dambuster_logo_4.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;Dambuster_week_175&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://towardsdatascience.com/how-to-reconstruct-an-image-if-you-see-only-a-few-pixels-e3899d038bf9#4218-42d96b4589ee&#34; target=&#34;_blank&#34; id=&#34;How to reconstruct an image if you see only a few pixels&#34;&gt;How to reconstruct an image if you see only a few pixels&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an introduction to Compressive Sensing&lt;/li&gt;
&lt;li&gt;presents the basis of the underlying theory that allows the reconstruction from a limited set of data point&lt;/li&gt;
&lt;li&gt;explains the fundamentals of the frequency domain&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-175/image_reconstruction.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210322051157/https://towardsdatascience.com/how-to-reconstruct-an-image-if-you-see-only-a-few-pixels-e3899d038bf9?gi=4b19c923be6d&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/auto-hdr-preview-for-pc-available-today/&#34; target=&#34;_blank&#34; id=&#34;Auto HDR Preview for PC Available Today&#34;&gt;Auto HDR Preview for PC Available Today&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes provides a brief overview of AutoHDR&lt;/li&gt;
&lt;li&gt;the feature allows SDR games to be transformed to HDR transparently to the underlying game&lt;/li&gt;
&lt;li&gt;additionally shows how to enable a split-screen feature that will render the game with SDR one half and HDR for the other&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-175/auto_hdr_heatmap.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210319152048/https://devblogs.microsoft.com/directx/auto-hdr-preview-for-pc-available-today/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=IPoHY_yJxMc&#34; target=&#34;_blank&#34; id=&#34;[video] Adding Shadow Casting to Grass Baked with Compute Shaders&#34;&gt;[video] Adding Shadow Casting to Grass Baked with Compute Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows how to change grass to cast shadows using Unity&lt;/li&gt;
&lt;li&gt;this presents how to generate double-sided grass geometry and output depth in the shadow pass&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-175/shadow_casting_grass.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gamehacker1999.github.io/posts/bluenoiseerrors/&#34; target=&#34;_blank&#34; id=&#34;Distributing Monte Carlo errors as Blue Noise in Screen Space, Part 1 - Theory and Sorting&#34;&gt;Distributing Monte Carlo errors as Blue Noise in Screen Space, Part 1 - Theory and Sorting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes how blue noise can help to improve converge of ray tracing results&lt;/li&gt;
&lt;li&gt;explains how to transform white noise into blue noise using a compute shader (code provided)&lt;/li&gt;
&lt;li&gt;presents the limitations of the presented solution&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-175/blue_noise_capture.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210319003109/https://gamehacker1999.github.io/posts/bluenoiseerrors/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/shaderquest-part-4-shader-environment-architecture/&#34; target=&#34;_blank&#34; id=&#34;ShaderQuest Part 4: Shader Environment Architecture&#34;&gt;ShaderQuest Part 4: Shader Environment Architecture&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial aimed at Unity beginners explained how shaders are set up and structured&lt;/li&gt;
&lt;li&gt;additionally provides a brief look at visual shader creation experience in Unity and Unreal Engine&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-175/SQ_Part_4.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210317235544/https://halisavakis.com/shaderquest-part-4-shader-environment-architecture/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.datawrapper.de/which-color-scale-to-use-in-data-vis/&#34; target=&#34;_blank&#34; id=&#34;Which color scale to use when visualizing data&#34;&gt;Which color scale to use when visualizing data&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article series provides information about the role of color in data visualization&lt;/li&gt;
&lt;li&gt;shows what kind of scales exits, how different colors should be used and how the way data is presented provides a further understanding of the underlying data&lt;/li&gt;
&lt;li&gt;covers color scales, qualitative, quantitative, sequential, diverging as well as classed and unclassed scales&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-175/data_visualization.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210320160030/https://blog.datawrapper.de/which-color-scale-to-use-in-data-vis/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://i3dsymposium.github.io/2021/papers.html&#34; target=&#34;_blank&#34; id=&#34;i3D 2021 - Papers Program&#34;&gt;i3D 2021 - Papers Program&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;list of all papers that will be presented as part of I3D 2021 in April&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-175/i3d_2021.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210316085423/http://i3dsymposium.github.io/2021/papers.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cyanilux.com/tutorials/soft-foliage-shader-breakdown/&#34; target=&#34;_blank&#34; id=&#34;Soft Foliage Shader Breakdown&#34;&gt;Soft Foliage Shader Breakdown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how soft shading for foliage was implemented&lt;/li&gt;
&lt;li&gt;using a combination of spherical normal generation and gradient remapping&lt;/li&gt;
&lt;li&gt;additionally covers how to add wind to the tree&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-175/soft_shading_foliage.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210317233452/https://www.cyanilux.com/tutorials/soft-foliage-shader-breakdown/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphics.tudelft.nl/Publications-new/2021/VSE21/&#34; target=&#34;_blank&#34; id=&#34;Stochastic-Depth Ambient Occlusion&#34;&gt;Stochastic-Depth Ambient Occlusion&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a novel approach to screen space ambient occlusion that accounts for occluded geometry through the use of a stochastic depth map&lt;/li&gt;
&lt;li&gt;Stochastic-Depth map is created through a global random that will discard pixels based on a tweakable cutoff value and store the results into separate samples per pixel
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-175/sd_hbao.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://graphics.tudelft.nl/Publications-new/2021/VSE21/SDAO.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20210322052243/https://graphics.tudelft.nl/Publications-new/2021/VSE21/SDAO.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210321200745/https://graphics.tudelft.nl/Publications-new/2021/VSE21/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Stephen Hill for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 174 — March 14, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-174/</link>
      <pubDate>Sun, 14 Mar 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-174/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=IjQWRjWZGn0&#34; target=&#34;_blank&#34; id=&#34;[video] Shading the World of Anthem&#34;&gt;[video] Shading the World of Anthem&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video for the GDC 2019 talk has been released&lt;/li&gt;
&lt;li&gt;the talk presents a walkthrough of how the lava, weather, water effects were created&lt;/li&gt;
&lt;li&gt;shows what references were collected, identified key steps that need to be replicated and how it was implemented into Frostbite&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-174/shading_anthem.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.gdcvault.com/play/1026274/Shading-the-World-of-Anthem&#34; style=&#34;color:white;&#34;&gt;slides &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://archive.is/9tHmC&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://raphlinus.github.io/curves/2021/03/11/bezier-fitting.html&#34; target=&#34;_blank&#34; id=&#34;Fitting cubic Bézier curves&#34;&gt;Fitting cubic Bézier curves&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog posts discusses an approach for efficiently fitting bezier curves to an existing technique&lt;/li&gt;
&lt;li&gt;presents prior art, distance metrics, as well as a novel approach that allows curve fitting to be done more efficiently&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-174/bezier_heatmap_area.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210315011816/https://raphlinus.github.io/curves/2021/03/11/bezier-fitting.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=3WWKHt92XKQ&#34; target=&#34;_blank&#34; id=&#34;[video] Unity Basics: Triangle Winding, Culling Modes &amp;amp; Double Sided Materials&#34;&gt;[video] Unity Basics: Triangle Winding, Culling Modes &amp;amp; Double Sided Materials&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity video tutorial explains triangle winding order, how it connects to culling&lt;/li&gt;
&lt;li&gt;presents how to adjust the culling mode in the different Unity rendering pipeline&lt;/li&gt;
&lt;li&gt;how to set up double-sided meshes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-174/triangle_culling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://apply.workable.com/ndreams/j/04C875D608/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Principal Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;(Farnborough, Hampshire, UK)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;nDreams is an award-winning independent developer and publisher, delivering world-leading interactive virtual reality experiences. We recently launched Phantom: Covert Ops, a stealth action game redefined for VR, and we couldn’t be more proud of what the team have achieved. We are seeking a Principal Graphics Programmer to join our growing team and help build the systems that let our artists and designers breathe life in to the VR experiences we create. We can’t wait to show you what we’re working on next …&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_nDreams.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;nDreams_week_171&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.elopezr.com/the-rendering-of-jurassic-world-evolution/&#34; target=&#34;_blank&#34; id=&#34;The Rendering of Jurassic World: Evolution&#34;&gt;The Rendering of Jurassic World: Evolution&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a frame breakdown of Jurassic World, a forward D3D11 based  tiled forward renderer&lt;/li&gt;
&lt;li&gt;covers grass movement, Tiled Forward Lighting,  Atmospheric effects, Reflections, Shadows, AO, rain, temporal effects&lt;/li&gt;
&lt;li&gt;additionally offers insights into post effects and TAA (temporal antialiasing)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-174/jurassic_park.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210313000045/http://www.elopezr.com/the-rendering-of-jurassic-world-evolution/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shadered.org/blog?id=7&#34; target=&#34;_blank&#34; id=&#34;Visual debugging and profiling&#34;&gt;Visual debugging and profiling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of the new debugging features in SHADERed&lt;/li&gt;
&lt;li&gt;shows undefined behavior detector, variable inspectors, global breakpoint views&lt;/li&gt;
&lt;li&gt;additionally presents a heatmap view of SPIR-V instructions executed&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-174/shader_debugging.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210311135218/https://shadered.org/blog?id=7&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://kusma.xyz/blog/2021/03/10/d3d12-upstreaming.html&#34; target=&#34;_blank&#34; id=&#34;OpenGL on DirectX: Conformance &amp;amp; upstreaming of the D3D12 driver&#34;&gt;OpenGL on DirectX: Conformance &amp;amp; upstreaming of the D3D12 driver&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the state of OpenGL on D3D12; it&amp;rsquo;s now used to run OpenGL applications on ARM windows&lt;/li&gt;
&lt;li&gt;provides insights into the problems when implementing APIs on top of existing API layers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-174/opengl_on_d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210315043235/https://kusma.xyz/blog/2021/03/10/d3d12-upstreaming.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://agraphicsguynotes.com/posts/making_a_shading_lagnauge_for_my_offline_renderer/&#34; target=&#34;_blank&#34; id=&#34;Making a Shading Language for my Offline Renderer&#34;&gt;Making a Shading Language for my Offline Renderer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents an overview of the custom shading language design for an offline renderer&lt;/li&gt;
&lt;li&gt;the author presents the motivation behind the project, the design decisions, and an overview of the implementation&lt;/li&gt;
&lt;li&gt;main building block of the language is similar to OSL (open shading language)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-174/compiler_stages.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210315043235/https://kusma.xyz/blog/2021/03/10/d3d12-upstreaming.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shadertoyunofficial.wordpress.com/2021/03/09/advanced-tricks/&#34; target=&#34;_blank&#34; id=&#34;shadertoy - Advanced tricks&#34;&gt;shadertoy - Advanced tricks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post shows a number of tricks for shadertoy development&lt;/li&gt;
&lt;li&gt;covers signal difference aware subsampling, Smart Gaussian blur as well as mipmap generation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-174/adaptive_sampling_example.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210315043312/https://shadertoyunofficial.wordpress.com/2021/03/09/advanced-tricks/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gamemath.com/&#34; target=&#34;_blank&#34; id=&#34;3D Math Primer for Graphics and Game Development - Free Online&#34;&gt;3D Math Primer for Graphics and Game Development - Free Online&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introductory math book released for free in updated form from the original release&lt;/li&gt;
&lt;li&gt;focused on providing thorough coverage on fundamental 3D concepts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-174/3d_math_primer.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210313153323/https://gamemath.com/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.neilbickford.com&#34; target=&#34;_blank&#34;&gt;Neil Bickford&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 173 — March 7, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-173/</link>
      <pubDate>Sun, 07 Mar 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-173/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://boksajak.github.io/blog/BRDF&#34; target=&#34;_blank&#34; id=&#34;Crash Course in BRDF Implementation&#34;&gt;Crash Course in BRDF Implementation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the extensive article provides an overview explaining BRDFs&lt;/li&gt;
&lt;li&gt;shows the derivation of many standard models used in rasterization and ray tracing applications&lt;/li&gt;
&lt;li&gt;explains the different terms and offers many sources for even more information&lt;/li&gt;
&lt;li&gt;source code is also provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-173/BRDF.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://boksajak.github.io/files/CrashCourseBRDF.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://archive.is/pc3Vy&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34;&gt;
            &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                &lt;a href=&#34;https://github.com/boksajak/brdf/blob/master/brdf.h&#34; style=&#34;color:white;&#34;&gt;code &lt;/a&gt; 
            &lt;/button&gt;
            
            &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                &lt;a href=&#34;https://web.archive.org/web/20210302151147/https://github.com/boksajak/brdf/blob/master/brdf.h&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
            &lt;/button&gt;
            
        &lt;/div&gt;
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210303115012/https://boksajak.github.io/blog/BRDF&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.naughtydog.com/blog/naughty_dog_at_siggraph_2020&#34; target=&#34;_blank&#34; id=&#34;NAUGHTY DOG AT SIGGRAPH 2020&#34;&gt;NAUGHTY DOG AT SIGGRAPH 2020&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;videos and slides from SIGGRAPH 2020 presentations by Naughty Dog&lt;/li&gt;
&lt;li&gt;low-level optimizations, volumetric effects, the technical art, and lighting technology of the Last of Us Part 2&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-173/TechArt_TLOU2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210304062103/https://www.naughtydog.com/blog/naughty_dog_at_siggraph_2020&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/vulkan-sdk-offers-developers-a-smooth-transition-path-to-synchronization2&#34; target=&#34;_blank&#34; id=&#34;Vulkan SDK Offers Developers a Smooth Transition Path to Synchronization2&#34;&gt;Vulkan SDK Offers Developers a Smooth Transition Path to Synchronization2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents an overview of improvements of Synchronization2&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;presents a path to upgrading to the new extension&lt;/li&gt;
&lt;li&gt;using an incremental approach and relying on a new layer that translates Synchronization2 API calls to Synchronization1 (if required)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-173/synchronization2-layer.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210301150032/https://www.khronos.org/blog/vulkan-sdk-offers-developers-a-smooth-transition-path-to-synchronization2&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/developer/tools-software/graphics/b/blog/posts/vulkan-timeline-semaphores&#34; target=&#34;_blank&#34; id=&#34;New game changing Vulkan extensions for mobile: Timeline Semaphores&#34;&gt;New game changing Vulkan extensions for mobile: Timeline Semaphores&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of Vulkan timeline semaphores&lt;/li&gt;
&lt;li&gt;presents the problems with VkSemaphore&lt;/li&gt;
&lt;li&gt;shows what new uses cases timeline semaphores enable&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-173/timeline_semaphores.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210304140012/https://community.arm.com/developer/tools-software/graphics/b/blog/posts/vulkan-timeline-semaphores&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://apply.workable.com/ndreams/j/04C875D608/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Principal Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;(Farnborough, Hampshire, UK)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;nDreams is an award-winning independent developer and publisher, delivering world-leading interactive virtual reality experiences. We recently launched Phantom: Covert Ops, a stealth action game redefined for VR, and we couldn’t be more proud of what the team have achieved. We are seeking a Principal Graphics Programmer to join our growing team and help build the systems that let our artists and designers breathe life in to the VR experiences we create. We can’t wait to show you what we’re working on next …&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_nDreams.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;nDreams_week_171&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://jcgt.org/published/0010/01/03/&#34; target=&#34;_blank&#34; id=&#34;Ray Traversal of OpenVDB Frustum Grids&#34;&gt;Ray Traversal of OpenVDB Frustum Grids&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an incremental approach for the traversal OpenVDB frustum grids&lt;/li&gt;
&lt;li&gt;explains the difference between frustum grids and uniform grids&lt;/li&gt;
&lt;li&gt;shows how to deal with the non-linearity of frustums&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-173/FrustumGrids.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://jcgt.org/published/0010/01/03/paper.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://archive.is/7tOJL&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/Sg6rl&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=9kllWAX9tHw&#34; target=&#34;_blank&#34; id=&#34;[video] Differentiable Material Synthesis Is Amazing!&#34;&gt;[video] Differentiable Material Synthesis Is Amazing!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a high-level overview of differential rendering papers&lt;/li&gt;
&lt;li&gt;presents papers that can generate material graphics from reference photos&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-173/DifferentiableMaterialSynthesis.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=6BwAlN1Rz5I&#34; target=&#34;_blank&#34; id=&#34;[video] Nioh 2 DLSS Analysis: AI Upscaling&amp;#39;s Toughest Test Yet?&#34;&gt;[video] Nioh 2 DLSS Analysis: AI Upscaling&amp;#39;s Toughest Test Yet?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video comparison of DLSS 2.0 against a native 4k rendering&lt;/li&gt;
&lt;li&gt;presents visual quality differences&lt;/li&gt;
&lt;li&gt;additionally offers why Mip biasing is required when rendering at sub-resolutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-173/DLSS_vs_4k_native.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2021/02/28/computing-gradients-on-grids-forward-central-and-diagonal-differences/&#34; target=&#34;_blank&#34; id=&#34;Computing gradients on grids of pixels and voxels – forward, central, and… diagonal differences&#34;&gt;Computing gradients on grids of pixels and voxels – forward, central, and… diagonal differences&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post presents an overview of what gradients are, what they are used for&lt;/li&gt;
&lt;li&gt;presents standard methods with cons and pros for each&lt;/li&gt;
&lt;li&gt;additionally offers a look at the Frequency analysis of differences&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-173/gradients.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210303030347/https://bartwronski.com/2021/02/28/computing-gradients-on-grids-forward-central-and-diagonal-differences/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/custom-srp/fxaa/&#34; target=&#34;_blank&#34; id=&#34;FXAA Fast approXimate Anti-Aliasing&#34;&gt;FXAA Fast approXimate Anti-Aliasing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial shows how to implement FXAA into a Unity custom scriptable render pipeline&lt;/li&gt;
&lt;li&gt;explains the different components that define FXAA&lt;/li&gt;
&lt;li&gt;presents the effects of controllable settings and how they affect visual quality and performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-173/fxaa-tutorial.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210307183717/https://catlikecoding.com/unity/tutorials/custom-srp/fxaa/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://panagiotis.tsiapkolis.com/&#34; target=&#34;_blank&#34;&gt;Panagiotis Tsiapkolis&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 172 — February 28, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-172/</link>
      <pubDate>Sun, 28 Feb 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-172/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=34S3onEr3r8&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] The CRYENGINE Rendering Pipeline&#34;&gt;[video] The CRYENGINE Rendering Pipeline&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Video provides a 90-minute in-depth look at the rendering architecture used in CryEngine&lt;/li&gt;
&lt;li&gt;providing an overview of the abstraction layers&lt;/li&gt;
&lt;li&gt;discusses API abstractions, draw call generations, interactions with the higher-level rendering pipeline&lt;/li&gt;
&lt;li&gt;provides an overview of the different rendering stages of the pipeline&lt;/li&gt;
&lt;li&gt;covering GBuffer, shadows, tile shading, tone mapping, post-processing&lt;/li&gt;
&lt;li&gt;additionally provides an overview of the shader system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-172/CryengineRenderingPipeline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://phosphoer.medium.com/tech-breakdown-hiding-water-in-boat-interiors-26e0f03b5b0e&#34; target=&#34;_blank&#34; id=&#34;Tech Breakdown: Hiding Water in Boat Interiors&#34;&gt;Tech Breakdown: Hiding Water in Boat Interiors&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents two methods to hide water from the inside of boats&lt;/li&gt;
&lt;li&gt;the first method uses an invisible inside mesh for the ship to draw depth before the water to block it from rendering&lt;/li&gt;
&lt;li&gt;second method involves using the stencil buffer to mask out parts of the water&lt;/li&gt;
&lt;li&gt;presents difficulties with either technique and how to deal with them&lt;/li&gt;
&lt;li&gt;source code for use with Unity is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-172/WaterInBoat.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/nBXlH&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blogs.unity3d.com/2021/02/24/experimenting-with-shader-graph-doing-more-with-less/&#34; target=&#34;_blank&#34; id=&#34;Experimenting with Shader Graph: Doing more with less&#34;&gt;Experimenting with Shader Graph: Doing more with less&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an alternative way to pack PBR textures into a single 4 channel texture&lt;/li&gt;
&lt;li&gt;albedo information stored as a gradient with gradient reconstruction, normals stored as height derivates, and linear smoothness&lt;/li&gt;
&lt;li&gt;presents how this was integrated into Unity&lt;/li&gt;
&lt;li&gt;shows the setup tested on a 6 material blend setup and presents performance comparison against the classical packing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-172/PBR_texture_packing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210226175237/https://blogs.unity3d.com/2021/02/24/experimenting-with-shader-graph-doing-more-with-less/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/developer/tools-software/graphics/b/blog/posts/vulkan-descriptor-indexing&#34; target=&#34;_blank&#34; id=&#34;New game changing Vulkan extensions for mobile: Descriptor Indexing&#34;&gt;New game changing Vulkan extensions for mobile: Descriptor Indexing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how the Vulkan extensions enable bindless indexing on Android&lt;/li&gt;
&lt;li&gt;presents an overview of dynamic indexing (and restrictions), update after bind, and GPU based validation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-172/VulkanIndexing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/LTTF0&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ourmachinery.com/post/moving-the-machinery-to-bindless/&#34; target=&#34;_blank&#34; id=&#34;Moving The Machinery to Bindless&#34;&gt;Moving The Machinery to Bindless&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how the bindless binding model has been integrated into The Machinery&lt;/li&gt;
&lt;li&gt;shows the setup, lifetime management as well as integration with the shader system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-172/our-machinery-logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210222204516/https://ourmachinery.com/post/moving-the-machinery-to-bindless/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://apply.workable.com/ndreams/j/04C875D608/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Principal Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;(Farnborough, Hampshire, UK)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;nDreams is an award-winning independent developer and publisher, delivering world-leading interactive virtual reality experiences. We recently launched Phantom: Covert Ops, a stealth action game redefined for VR, and we couldn’t be more proud of what the team have achieved. We are seeking a Principal Graphics Programmer to join our growing team and help build the systems that let our artists and designers breathe life in to the VR experiences we create. We can’t wait to show you what we’re working on next …&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_nDreams.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;nDreams_week_171&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/playlist?list=PLImQaTpSAdsCnJon-Eir92SZMl7tPBS4Z&#34; target=&#34;_blank&#34; id=&#34;[video] Shaders For Game Devs&#34;&gt;[video] Shaders For Game Devs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;10h Video online class about shader development&lt;/li&gt;
&lt;li&gt;whole series covers an entire spectrum from basics, over lighting, mesh deformation, skyboxes, and image-based lighting&lt;/li&gt;
&lt;li&gt;provides assignment and discusses different approaches to solve it&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-172/shader_course.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/developer/tools-software/graphics/b/blog/posts/vulkan-buffer-device-address&#34; target=&#34;_blank&#34; id=&#34;New game changing Vulkan extensions for mobile: Buffer Device Address&#34;&gt;New game changing Vulkan extensions for mobile: Buffer Device Address&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the buffer_device_address (BDA) extension for Vulkan&lt;/li&gt;
&lt;li&gt;this extension adds pointer support for Vulkan resources&lt;/li&gt;
&lt;li&gt;allows users to request the virtual memory address of each resource, operate on it, and even resolve it from within shaders&lt;/li&gt;
&lt;li&gt;shows how to use a pointer in a shader&lt;/li&gt;
&lt;li&gt;additionally covers debugging advice and how this is handled inside of SPIR-V&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-172/BufferDeviceAccess.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210301060247/https://community.arm.com/developer/tools-software/graphics/b/blog/posts/vulkan-buffer-device-address&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.kickstarter.com/projects/prophetgoddess/anathema/posts/3109106&#34; target=&#34;_blank&#34; id=&#34;Per-Texel Deferred Lighting&#34;&gt;Per-Texel Deferred Lighting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides an idea on how to maintain a pixel art style with dynamic lighting in a 3D environment&lt;/li&gt;
&lt;li&gt;technique uses position and UV derivatives to quantize the lighting results onto the center of the texel&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-172/per_texel_lighting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/STNGv&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=6SFTcDNqwaA&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Blade Grass! Generate and Bake a Field Mesh Using a Compute Shader&#34;&gt;[video] Blade Grass! Generate and Bake a Field Mesh Using a Compute Shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows how to generate a grass mesh using a compute shader&lt;/li&gt;
&lt;li&gt;animate the grass from the vertex shader to apply movement&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-172/blade_grass_unity.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=dqGsgG_cH3E&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] GODOT 2D Dissolve Effect : Visual Shader&#34;&gt;[video] GODOT 2D Dissolve Effect : Visual Shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows how to implement a dissolve shader for 2D sprites using the Visual Shader language of Godot&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-172/dissolve_2d.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 171 — February 21, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-171/</link>
      <pubDate>Sun, 21 Feb 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-171/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2021/02/15/bilinear-down-upsampling-pixel-grids-and-that-half-pixel-offset/&#34; target=&#34;_blank&#34; id=&#34;Bilinear down/upsampling, aligning pixel grids, and that infamous GPU half pixel offset&#34;&gt;Bilinear down/upsampling, aligning pixel grids, and that infamous GPU half pixel offset&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows a few ways of doing bilinear upsampling and downsampling&lt;/li&gt;
&lt;li&gt;explains why it&amp;rsquo;s essential to follow the same convention everywhere and verify that no unintended shifts are introduced&lt;/li&gt;
&lt;li&gt;suggests that the same half-pixel offset convention as used by GPUs should also be followed in CPU code&lt;/li&gt;
&lt;li&gt;discussing the different tradeoffs for performance/aliasing/smoothing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-171/bilinear.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210216020108/https://bartwronski.com/2021/02/15/bilinear-down-upsampling-pixel-grids-and-that-half-pixel-offset/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://threadreaderapp.com/thread/1362466015976783872.html&#34; target=&#34;_blank&#34; id=&#34;second tech art thread on the stylized rendering of “Dungeons of #Hinterberg”&#34;&gt;second tech art thread on the stylized rendering of “Dungeons of #Hinterberg”&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Twitter thread presents details about how the outline rendering has been implemented&lt;/li&gt;
&lt;li&gt;based on several different outline classification types are combined as a post-process&lt;/li&gt;
&lt;li&gt;the edge detection for outlines is additionally leveraged for SMAA improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-171/DungeonsOfHinterberg.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210221031854/https://threadreaderapp.com/thread/1362466015976783872.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://sites.cs.ucsb.edu/~lingqi/#publications&#34; target=&#34;_blank&#34; id=&#34;Temporally Reliable Motion Vectors for Real-time Ray Tracing&#34;&gt;Temporally Reliable Motion Vectors for Real-time Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new technique to generate more accurate motion vectors for shadows, glossy reflections, and occlusions&lt;/li&gt;
&lt;li&gt;the key idea is to detect and track the source of the effect (for example, the object blocking the light) and use the change of the source to adjust the back-projection accordingly&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-171/MotionVectors.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://sites.cs.ucsb.edu/~lingqi/publications/paper_trmv.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://archive.is/QmoSD&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210222023620/https://sites.cs.ucsb.edu/~lingqi/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://apply.workable.com/ndreams/j/4F128FDBB7/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Principal Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;(Farnborough, Hampshire, UK)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;nDreams is an award-winning independent developer and publisher, delivering world-leading interactive virtual reality experiences. We recently launched Phantom: Covert Ops, a stealth action game redefined for VR, and we couldn’t be more proud of what the team have achieved. We are seeking a Principal Graphics Programmer to join our growing team and help build the systems that let our artists and designers breathe life in to the VR experiences we create. We can’t wait to show you what we’re working on next…&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_nDreams.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;nDreams_week_171&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bruop.github.io/improved_frustum_culling/&#34; target=&#34;_blank&#34; id=&#34;More (Robust) Frustum Culling&#34;&gt;More (Robust) Frustum Culling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents Separating Axis Theorem for OBB (oriented bounding box) against the view Frustum&lt;/li&gt;
&lt;li&gt;additionally covers how to use Intel ISPC to generate the SSE accelerated version of the algorithm&lt;/li&gt;
&lt;li&gt;presents performance comparison with/without SEE and compares against the previous implementation from part 1&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-171/obb_frustum_intersection_example.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210217163658/https://bruop.github.io/improved_frustum_culling/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/developer/tools-software/graphics/b/blog/posts/vulkan-maintenance-extensions&#34; target=&#34;_blank&#34; id=&#34;New Vulkan extensions for mobile: Maintenance Extensions&#34;&gt;New Vulkan extensions for mobile: Maintenance Extensions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents an overview of Vulkan extensions added as part of Android R&lt;/li&gt;
&lt;li&gt;lists the extensions, what problem it solves and how it works&lt;/li&gt;
&lt;li&gt;covering uniform alignment rules, separate depth stencil views, SPIR-V support, loop control, 16-bit subgroup operations as well as imageless framebuffers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-171/VulkanMaintendanceExtensions.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210216140119/https://community.arm.com/developer/tools-software/graphics/b/blog/posts/vulkan-maintenance-extensions&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ravkum.medium.com/opencl-hide-data-transfer-behind-gpu-kernels-runtime-699fbfe4d8e&#34; target=&#34;_blank&#34; id=&#34;OpenCL: Hide data transfer behind GPU Kernels runtime&#34;&gt;OpenCL: Hide data transfer behind GPU Kernels runtime&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to use 3 parallel work queues in OpenCL to read, write and process a GPU kernel at the same time&lt;/li&gt;
&lt;li&gt;presents source code for buffer creation, queue creation, and synchronization&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-171/AsyncCopyOpenCL.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210215032808/https://ravkum.medium.com/opencl-hide-data-transfer-behind-gpu-kernels-runtime-699fbfe4d8e&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/minnaert-for-who-47518737&#34; target=&#34;_blank&#34; id=&#34;Minnaert For People Who Don&amp;#39;t Know How To Minnaert&#34;&gt;Minnaert For People Who Don&amp;#39;t Know How To Minnaert&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;article presents how to integrate a custom shading model into the Unity rendering pipeline&lt;/li&gt;
&lt;li&gt;implements the Minnaert shading model&lt;/li&gt;
&lt;li&gt;this model makes the surface seem darker from certain viewing/lighting direction&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-171/MinnaertShading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/Q6kOY&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1740_vulkan_memory_types_on_pc_and_how_to_use_them&#34; target=&#34;_blank&#34; id=&#34;Vulkan Memory Types on PC and How to Use Them&#34;&gt;Vulkan Memory Types on PC and How to Use Them&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses the different memory types and how applications should use them&lt;/li&gt;
&lt;li&gt;provides overviews on what is reported on Intel, Nvidia, and AMD hardware&lt;/li&gt;
&lt;li&gt;additionally explains how integrated and external GPUs expose different available memory&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-171/vulkan_memory_types.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210222023924/https://asawicki.info/news_1740_vulkan_memory_types_on_pc_and_how_to_use_them&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/vulkan-sync2-support/&#34; target=&#34;_blank&#34; id=&#34;VK_KHR_synchronization2 extension support in our latest developer driver&#34;&gt;VK_KHR_synchronization2 extension support in our latest developer driver&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the AMD driver now supports the new Vulkan synchronization extension&lt;/li&gt;
&lt;li&gt;post provides a brief overview of how the capabilities of the extension allow the drivers to be more efficient in reducing GPU cache flushes and stalls&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-171/VulkanAmdLogo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210222024012/https://gpuopen.com/vulkan-sync2-support/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/jhfredriksen&#34; target=&#34;_blank&#34;&gt;Jan-Harald Fredriksen&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 170 — February 14, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-170/</link>
      <pubDate>Sun, 14 Feb 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-170/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mechanicsfoundry.github.io/Physically-Based-Rendering-and-BRDFs/&#34; target=&#34;_blank&#34; id=&#34;Real-Time Physically Based Rendering and BRDFs&#34;&gt;Real-Time Physically Based Rendering and BRDFs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog posts provides a walkthrough of the Cook-Torrance shading model&lt;/li&gt;
&lt;li&gt;starts with the Lambert shading model and then presents step-by-step how to arrive at the final model&lt;/li&gt;
&lt;li&gt;shows results at each step with source code provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-170/Cook-Torrance.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210208215926/https://mechanicsfoundry.github.io/Physically-Based-Rendering-and-BRDFs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/rga-dxr/&#34; target=&#34;_blank&#34; id=&#34;Using Radeon™ GPU Analyzer v2.4.1 with DirectX® Raytracing&#34;&gt;Using Radeon™ GPU Analyzer v2.4.1 with DirectX® Raytracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Radeon GPU Analyzer now supports DXR shader disassembly, live VGPR analysis as well as control-flow graph analysis&lt;/li&gt;
&lt;li&gt;shows what of the two compilation models (fully inline vs. Indirect ) has been chosen by the runtime&lt;/li&gt;
&lt;li&gt;also provides the disassembly for the driver generated acceleration structure traversal&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-170/amd_dxr_gen_naming.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210212184808/https://gpuopen.com/learn/rga-dxr/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://raw.githubusercontent.com/giuliom95/msc-thesis/master/martella-mscthesis.pdf&#34; target=&#34;_blank&#34; id=&#34;Visual Exploration Of Light Transport In Path Tracing&#34;&gt;Visual Exploration Of Light Transport In Path Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;master thesis that covers a tool for interactive exploration of all contributing paths from a path tracer&lt;/li&gt;
&lt;li&gt;including a heatmap visualization and area filters&lt;/li&gt;
&lt;li&gt;show how to use the proposed visualization to help in debugging scenarios&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-170/ray_visualization.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210209182514/https://raw.githubusercontent.com/giuliom95/msc-thesis/master/martella-mscthesis.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.redlynx.com/jobs/lead-graphics-programmer-2/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Lead Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;(Helsinki, Finland)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Ubisoft RedLynx is a multiplatform game development studio located in Helsinki. Along with the hugely popular Trials series, we have developed and published more than 100 games and we are a passionate team of over 140 people of 21 different nationalities. We are seeking an experienced Graphics Programmer to join our core technology team in creating impactful game experiences&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_redlynx.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;redlynx_week_168&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://richg42.blogspot.com/2021/02/rdo-texture-encoding-notes.html&#34; target=&#34;_blank&#34; id=&#34;RDO texture encoding notes&#34;&gt;RDO texture encoding notes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author provides a list of lessons learned and advice that should be considered when working on rate-distortion optimization algorithms&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-170/rate_distortion.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210208220619/http://richg42.blogspot.com/2021/02/rdo-texture-encoding-notes.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://mateigiurgiu.com/unity-sdf-generator-part-2/&#34; target=&#34;_blank&#34; id=&#34;Unity SDF Generator – Part 2&#34;&gt;Unity SDF Generator – Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;second particle in articles series about SDF (signed distance field) generation with Unity&lt;/li&gt;
&lt;li&gt;this part presents how to visualize an SDF using a pixel shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-170/visualized-sdf_cube2.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210209200131/http://mateigiurgiu.com/unity-sdf-generator-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=AiWCPiGr10o&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Generate a Mesh Asset Using Compute Shaders in the Unity Editor! &#34;&gt;[video] Generate a Mesh Asset Using Compute Shaders in the Unity Editor! &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial explains how to generate meshes from a compute shader&lt;/li&gt;
&lt;li&gt;in the process, it explains the fundamentals of compute shaders and read back data from the GPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-170/mesh_gen_unity.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.alanzucconi.com/2021/01/24/linear-interpolation/&#34; target=&#34;_blank&#34; id=&#34;Linear Interpolation&#34;&gt;Linear Interpolation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a geometric interpretation of linear interpolation, range mapping, and how it relates to Bézier curves&lt;/li&gt;
&lt;li&gt;provides links towards articles with further information on why lerp for colors and rotations doesn&amp;rsquo;t always work as expected&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-170/multi-lerp-01.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210212203905/https://www.alanzucconi.com/2021/01/24/linear-interpolation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.deepaksurti.com&#34; target=&#34;_blank&#34;&gt;Deepak Surti&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 169 — February 7, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-169/</link>
      <pubDate>Sun, 07 Feb 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-169/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://poniesandlight.co.uk/reflect/bitonic_merge_sort/&#34; target=&#34;_blank&#34; id=&#34;Implementing Bitonic Merge Sort in Vulkan Compute&#34;&gt;Implementing Bitonic Merge Sort in Vulkan Compute&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Shows how to sort data on the GPU using Bitonic Merge Sort networks using GLSL/Vulkan compute&lt;/li&gt;
&lt;li&gt;Derives how to non-recursively calculate per-thread index pairs for sorting networks&lt;/li&gt;
&lt;li&gt;Explains how to orchestrate compute-shader dispatches for large input data&lt;/li&gt;
&lt;li&gt;provides example implementation that sorts pixel by the brightness&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-169/bitonic_sort.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210204163533/https://poniesandlight.co.uk/reflect/bitonic_merge_sort/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://danielilett.com/2021-02-04-tut5-14-ice-refraction/&#34; target=&#34;_blank&#34; id=&#34;Ice Refraction in Shader Graph and URP&#34;&gt;Ice Refraction in Shader Graph and URP&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to implement ice shading&lt;/li&gt;
&lt;li&gt;uses an approximate for ice refraction controlled by textures and fresnel shading&lt;/li&gt;
&lt;li&gt;effect is implemented using Unity Shader Graph&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-169/IceRefractionShaderGraph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210204143003/https://danielilett.com/2021-02-04-tut5-14-ice-refraction/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=xDxAnguEOn8&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;Coding a fireworks effect&#34;&gt;Coding a fireworks effect&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows how to implement fireworks using fullscreen shader using Shadertoy&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-169/ShadertoyFireworks.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.redlynx.com/jobs/lead-graphics-programmer-2/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Lead Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;(Helsinki, Finland)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Ubisoft RedLynx is a multiplatform game development studio located in Helsinki. Along with the hugely popular Trials series, we have developed and published more than 100 games and we are a passionate team of over 140 people of 21 different nationalities. We are seeking an experienced Graphics Programmer to join our core technology team in creating impactful game experiences&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_redlynx.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;redlynx_week_168&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.jcgt.org/published/0010/01/02/&#34; target=&#34;_blank&#34; id=&#34;Fast Radius Search Exploiting Ray Tracing Frameworks&#34;&gt;Fast Radius Search Exploiting Ray Tracing Frameworks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a method that maps spacial search in a fixed radius into a ray tracing paradigm&lt;/li&gt;
&lt;li&gt;this allows the ways to take advantage of ray tracing hardware to speed up the operations&lt;/li&gt;
&lt;li&gt;presents an application for GI with progressive photon mapping and point-cloud registration of partial surface scans&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-169/FastRadiusSearch.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://www.jcgt.org/published/0010/01/02/paper.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20210208032459/http://www.jcgt.org/published/0010/01/02/paper.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210205161908/http://www.jcgt.org/published/0010/01/02/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cyanilux.com/tutorials/crystal-shader-breakdown/&#34; target=&#34;_blank&#34; id=&#34;Crystal Shader Breakdown&#34;&gt;Crystal Shader Breakdown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a walkthrough of a stylized crystal shader implemented using Unity Shader Graph&lt;/li&gt;
&lt;li&gt;effect is implemented as an unlit effect based on color gradient and uses a copy of the scene to implement a refraction approximation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-169/UnityChristals.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210205193639/https://www.cyanilux.com/tutorials/crystal-shader-breakdown/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2021/02/01/a-voxel-renderer-for-learning-c-c/&#34; target=&#34;_blank&#34; id=&#34;A Voxel Renderer for Learning C/C&amp;#43;&amp;#43;&#34;&gt;A Voxel Renderer for Learning C/C&amp;#43;&amp;#43;&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of a GPU voxel renderer using raytracing&lt;/li&gt;
&lt;li&gt;shows the data structure layout, how GPU and CPU updates are overlapped&lt;/li&gt;
&lt;li&gt;presents a technique to archive interactive world updates by using incremental parallel updates&lt;/li&gt;
&lt;li&gt;additionally offers advice to improve the performance of the multi-threaded implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-169/VoxelRenderer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210201161256/https://jacco.ompf2.com/2021/02/01/a-voxel-renderer-for-learning-c-c/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.tomlooman.com/dlss-unrealengine/&#34; target=&#34;_blank&#34; id=&#34;Exploring DLSS 2.0 in Unreal Engine 4.26&#34;&gt;Exploring DLSS 2.0 in Unreal Engine 4.26&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a comparison of DLSS 2.0 and the default TAA implementation of UE 4.26&lt;/li&gt;
&lt;li&gt;comparing performance and quality&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-169/DLSS_UE4.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210204141626/https://www.tomlooman.com/dlss-unrealengine/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://threadreaderapp.com/thread/1354827696707002384.html&#34; target=&#34;_blank&#34; id=&#34;Stylized rendering for Dungeons of Hinterberg&#34;&gt;Stylized rendering for Dungeons of Hinterberg&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Twitter thread presents an overview of the stylized g-buffer based rendering pipeline implemented using Unity&lt;/li&gt;
&lt;li&gt;presents how each material ID written into the g-buffer is later used to adjust post effects based on the affected materials&lt;/li&gt;
&lt;li&gt;lighting is applied in two stages with a second pass to toon ramp combined lights as well&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-169/DungeonsOfHinterberg.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210208032726/https://threadreaderapp.com/thread/1354827696707002384.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://godotengine.org/article/godot-40-optimization-progress-report&#34; target=&#34;_blank&#34; id=&#34;Godot 4.0 optimization progress report&#34;&gt;Godot 4.0 optimization progress report&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post presents an overview of optimizations done for Godot 4.0&lt;/li&gt;
&lt;li&gt;list contains but CPU and GPU optimizations&lt;/li&gt;
&lt;li&gt;offers a good starting point for everyone looking into optimizing their own renderers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-169/GodotOptimizations.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210203122237if_/https://godotengine.org/article/godot-40-optimization-progress-report&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.mattkeeter.com/projects/rayray/&#34; target=&#34;_blank&#34; id=&#34;A simple path tracer on the GPU&#34;&gt;A simple path tracer on the GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of a simple GPU based path tracer written in Zig&lt;/li&gt;
&lt;li&gt;shows how to have two data layouts for changing scenes vs. static scenes&lt;/li&gt;
&lt;li&gt;presents how to implement spectral rendering and how it affects objects made from glass&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-169/spheres_basic.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210206225814/https://www.mattkeeter.com/projects/rayray/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://zincfox.red&#34; target=&#34;_blank&#34;&gt;Jonathan Tinkham&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 168 — January 31, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-168/</link>
      <pubDate>Sun, 31 Jan 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-168/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://jcgt.org/published/0010/01/01/&#34; target=&#34;_blank&#34; id=&#34;Improved Shader and Texture Level of Detail Using Ray Cones&#34;&gt;Improved Shader and Texture Level of Detail Using Ray Cones&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a new method for Mip level selection, including anisotropic filtering in a raytracer&lt;/li&gt;
&lt;li&gt;presented technique is not based on screen space derivatives&lt;/li&gt;
&lt;li&gt;extends the technique to apply to textures with different dimensions&lt;/li&gt;
&lt;li&gt;shows how ray cones can be used to select LOD for shading too&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-168/MipForRaytracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210128183513/http://jcgt.org/published/0010/01/01/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bottosson.github.io/posts/gamutclipping/&#34; target=&#34;_blank&#34; id=&#34;sRGB gamut clipping &#34;&gt;sRGB gamut clipping &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an introduction to Gamut Clipping (mapping colors outside of the target  color space back into valid colors)&lt;/li&gt;
&lt;li&gt;presents different approaches for mapping techniques&lt;/li&gt;
&lt;li&gt;shows how to apply these for the Oklab color space and presents comparisons of the results&lt;/li&gt;
&lt;li&gt;code is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-168/sRGB_gamut_clipping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210128190327/https://bottosson.github.io/posts/gamutclipping/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/analysis-driven-optimization-preparing-for-analysis-with-nvidia-nsight-compute-part-1/&#34; target=&#34;_blank&#34; id=&#34;Analysis-Driven Optimization: Preparing for Analysis with NVIDIA Nsight Compute, Part 1&#34;&gt;Analysis-Driven Optimization: Preparing for Analysis with NVIDIA Nsight Compute, Part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;first part of a three-part series that focuses on optimizing a CUDA workload&lt;/li&gt;
&lt;li&gt;articles present the methodology, how to use the Nsight provided information to iteratively optimize the application&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-168/Memory-workload-anaylsis.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210127220849/https://developer.nvidia.com/blog/analysis-driven-optimization-preparing-for-analysis-with-nvidia-nsight-compute-part-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/managing-memory-for-acceleration-structures-in-dxr/&#34; target=&#34;_blank&#34; id=&#34;Managing Memory for Acceleration Structures in DirectX Raytracing&#34;&gt;Managing Memory for Acceleration Structures in DirectX Raytracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to reduce memory usage of bottom level acceleration structure (BLAS)&lt;/li&gt;
&lt;li&gt;instead of using placed resources for each BLAS, it is recommended to sub allocate from one larger structure&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-168/NVIDIADXR-625x423.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210131084653/https://developer.nvidia.com/blog/managing-memory-for-acceleration-structures-in-dxr/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://www.redlynx.com/jobs/lead-graphics-programmer-2/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Lead Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;(Helsinki, Finland)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Ubisoft RedLynx is a multiplatform game development studio located in Helsinki. Along with the hugely popular Trials series, we have developed and published more than 100 games and we are a passionate team of over 140 people of 21 different nationalities. We are seeking an experienced Graphics Programmer to join our core technology team in creating impactful game experiences.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_redlynx.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;redlynx_week_168&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=jcMRaFF9RRI&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;Rim Light Shader Graph in Unity URP! Moody and Atmospheric Lighting!&#34;&gt;Rim Light Shader Graph in Unity URP! Moody and Atmospheric Lighting!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity video tutorial shows how to implement rim lighting (an effect that only applies to the edges of a model)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-168/RimLights.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=vLSphLtKQ0o&amp;amp;list=PLplnkTzzqsZTfYh4UbhLGpI5kGd5oW_Hh&#34; target=&#34;_blank&#34; id=&#34;Introduction to Computer Graphics&#34;&gt;Introduction to Computer Graphics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Video lectures for the Introduction to Computer Graphics Course at the University of Utah&lt;/li&gt;
&lt;li&gt;more classes will be released over the next few weeks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-168/IntrotoGraphics00.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://nv-tlabs.github.io/nglod/&#34; target=&#34;_blank&#34; id=&#34;Neural Geometric Level of Detail Real-time Rendering with Implicit 3D Surfaces&#34;&gt;Neural Geometric Level of Detail Real-time Rendering with Implicit 3D Surfaces&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a deep neural network to generate signed distance functions using a fixed network and sparse oct-tree&lt;/li&gt;
&lt;li&gt;the network also generates the level of detail representations&lt;/li&gt;
&lt;li&gt;shows real-time reconstruction and rendering with ray tracing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-168/neural_sdf_arch.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210129003354/https://nv-tlabs.github.io/nglod/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://beforesandafters.com/2021/01/26/wrapping-around-the-uv-map-in-80-frames&#34; target=&#34;_blank&#34; id=&#34;Wrapping around the uv map in 80 frames&#34;&gt;Wrapping around the uv map in 80 frames&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of UV mapping&lt;/li&gt;
&lt;li&gt;showing different mapping techniques, problems, and uses cases&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-168/uv_packing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210130170020/https://beforesandafters.com/2021/01/26/wrapping-around-the-uv-map-in-80-frames%E2%80%A8/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/nvidia-announces-nsight-graphics-2021-1/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Announces Nsight Graphics 2021.1&#34;&gt;NVIDIA Announces Nsight Graphics 2021.1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;updated tools adds support for inline raytracing and capturing applications that are not frame-based&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-168/nsightUpdate.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210129015139/https://news.developer.nvidia.com/nvidia-announces-nsight-graphics-2021-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://bruop.github.io&#34; target=&#34;_blank&#34;&gt;Bruno Opsenica&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 167 — January 24, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-167/</link>
      <pubDate>Sun, 24 Jan 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-167/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://alextardif.com/Antialiasing.html&#34; target=&#34;_blank&#34; id=&#34;A Failed Adventure in Avoiding Temporal Anti-Aliasing&#34;&gt;A Failed Adventure in Avoiding Temporal Anti-Aliasing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author provides an overview of anti-aliasing solutions&lt;/li&gt;
&lt;li&gt;what problems temporal techniques have, look at alternative solutions&lt;/li&gt;
&lt;li&gt;and experience trying to avoid using temporal techniques in a game production&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-167/smaa.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210124002212/http://alextardif.com/Antialiasing.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rosenzweig.io/blog/asahi-gpu-part-2.html&#34; target=&#34;_blank&#34; id=&#34;Dissecting the Apple M1 GPU, part II&#34;&gt;Dissecting the Apple M1 GPU, part II&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the progress on an open-source graphics stack for Apple M1&lt;/li&gt;
&lt;li&gt;provides insights into how Apple GPU commands are expressed on the lowest level&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-167/M1HelloTriangle.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210124050638/https://rosenzweig.io/blog/asahi-gpu-part-2.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=yG4ChOPyC-4&#34; target=&#34;_blank&#34; id=&#34;[video] Beyond Emitters: Shader and Surface Driven GPU Particle FX Techniques&#34;&gt;[video] Beyond Emitters: Shader and Surface Driven GPU Particle FX Techniques&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video from GDC 2018 was released&lt;/li&gt;
&lt;li&gt;the talk presents different iterations of a system to allow particles emission from everything in the world&lt;/li&gt;
&lt;li&gt;contains many examples, pro/cons of several techniques&lt;/li&gt;
&lt;li&gt;shows how to unfold meshes so that particles can be emitted in a view independent fashion&lt;/li&gt;
&lt;li&gt;additionally provides insights into particle workflows&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-167/particles.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/videos/graphics-pipeline/&#34; target=&#34;_blank&#34; id=&#34;All the Pipelines - Journey through the GPU&#34;&gt;All the Pipelines - Journey through the GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation provides an overview of the rendering pipeline from mesh creation to screen output&lt;/li&gt;
&lt;li&gt;focuses on the RDNA2 architecture, presenting what each piece of hardware in the pipeline is called and the function it serves&lt;/li&gt;
&lt;li&gt;providing insights into why specific workloads can achieve better performance than others&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-167/AmdPipeline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://gpuopen.com/wp-content/uploads/2021/01/AMD_Graphics_pipeline_GIC2020.pdf&#34; style=&#34;color:white;&#34;&gt;slides &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210121174033/https://gpuopen.com/videos/graphics-pipeline/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=SjTn6LAZjNc&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Neon Noir – Raytracing on Mobile&#34;&gt;[video] Neon Noir – Raytracing on Mobile&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;talk provides an overview of the Crytek rendering pipeline&lt;/li&gt;
&lt;li&gt;how a Micro-G buffer is used to reduce the bandwidth required&lt;/li&gt;
&lt;li&gt;encoding, reconstruction errors, and performance comparison&lt;/li&gt;
&lt;li&gt;how the raytracing is implemented using compute shaders&lt;/li&gt;
&lt;li&gt;BVH data structures, using interlaced ray tracing for ray count reduction&lt;/li&gt;
&lt;li&gt;data optimizations for BVH objects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-167/MicroGBuffer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.napframework.com/2020/porting-nap-opengl-to-vulkan/&#34; target=&#34;_blank&#34; id=&#34;OpenGL to Vulkan&#34;&gt;OpenGL to Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the process of porting the NAP creative coding Framework to Vulkan&lt;/li&gt;
&lt;li&gt;focuses on presenting the high-level concepts and considerations instead of API details&lt;/li&gt;
&lt;li&gt;presents synchronization, main API objects, frame setup, descriptor set management, mesh and texture handling as well as coordinate space conversions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-167/command-buffering.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210120192235/https://blog.napframework.com/2020/porting-nap-opengl-to-vulkan/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/basics/organic-variety/&#34; target=&#34;_blank&#34; id=&#34;Organic Variety Making the Artificial Look Natural&#34;&gt;Organic Variety Making the Artificial Look Natural&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial shows how to create procedural fractals&lt;/li&gt;
&lt;li&gt;enable color and position modifications&lt;/li&gt;
&lt;li&gt;present performance comparisons&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-167/organic-fractal.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210120180512/https://catlikecoding.com/unity/tutorials/basics/organic-variety/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dev.to/keaukraine/rendering-dunes-terrain-in-webgl-30k2&#34; target=&#34;_blank&#34; id=&#34;Rendering dunes terrain in WebGL&#34;&gt;Rendering dunes terrain in WebGL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how a sand dune wallpaper was implemented using WebGL&lt;/li&gt;
&lt;li&gt;demonstrates how the scene was composed, dust particle implementation, wind simulation as well as texture&lt;/li&gt;
&lt;li&gt;source code is available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-167/WebGlDunes.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210120113123/https://dev.to/keaukraine/rendering-dunes-terrain-in-webgl-30k2&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=arCHjoQHgEU&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] How to calculate Normal Vectors in Shader Graph&#34;&gt;[video] How to calculate Normal Vectors in Shader Graph&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows why normals need to be recalculated if a mesh shape is changed in a vertex shader&lt;/li&gt;
&lt;li&gt;presents how to re-calculate the normals by applying the same offsets to approximate neighbors and recalculating the normal from this&lt;/li&gt;
&lt;li&gt;simplified video version of &lt;a href=&#34;https://gamedevbill.com/shader-graph-normal-calculation/&#34; target=&#34;_blank&#34;&gt;How to Calculate Shader Graph Normals&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-167/CalculateNormals.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/vivitsum&#34; target=&#34;_blank&#34;&gt;Vivitsu Maharaja&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 166 — January 17, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-166/</link>
      <pubDate>Sun, 17 Jan 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-166/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.yosoygames.com.ar/wp/2021/01/renderdoc-ref-all-resources-vulkan-memory-aliasing-beware/&#34; target=&#34;_blank&#34; id=&#34;RenderDoc ‘Ref All Resources’ &amp;#43; Vulkan &amp;#43; Memory Aliasing = Beware &#34;&gt;RenderDoc ‘Ref All Resources’ &amp;#43; Vulkan &amp;#43; Memory Aliasing = Beware &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post shows how aliased resources can cause problems when doing render doc captures&lt;/li&gt;
&lt;li&gt;aliased textures that are captured might need barrier transitions, which can corrupt other textures in the same memory range&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-166/RenderDocTerrainCorruption.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210114193818/https://www.yosoygames.com.ar/wp/2021/01/renderdoc-ref-all-resources-vulkan-memory-aliasing-beware/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://waitwho.is/john-carmack/essays&#34; target=&#34;_blank&#34; id=&#34;John Carmack - Essays&#34;&gt;John Carmack - Essays&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of articles/ blog post written by John Carmack on a variety of topics
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-166/JohnCarmack.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210114061814/https://waitwho.is/john-carmack/essays&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=4oqT2l7VLSg&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Unity: Frosty Icicle Shader with Amplify [URP]&#34;&gt;[video] Unity: Frosty Icicle Shader with Amplify [URP]&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows how to implement a shader for freezing objects&lt;/li&gt;
&lt;li&gt;this includes blending ice material on top of existing objects, tessellation shaders to extend meshes to form icicles, and mesh normal generation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-166/FrostyIcicleShader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.playstation.com/2021/01/12/how-stunning-visual-effects-bring-ghost-of-tsushima-to-life/&#34; target=&#34;_blank&#34; id=&#34;How stunning visual effects bring Ghost of Tsushima to life&#34;&gt;How stunning visual effects bring Ghost of Tsushima to life&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post shows the interactive particle implementation used in Ghost of Tsushima&lt;/li&gt;
&lt;li&gt;particles are controllable through expressions and can react to runtime information&lt;/li&gt;
&lt;li&gt;shows different use cases such as interactive leaves, candles, and crabs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-166/GhostVFXFI.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210115223117/https://blog.playstation.com/2021/01/12/how-stunning-visual-effects-bring-ghost-of-tsushima-to-life/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://docs.google.com/document/d/15z2Vp-24S69jiZnxqSHb9dX-A-o4n3tYiPQOCRkCt5Q/edit&#34; target=&#34;_blank&#34; id=&#34;Step by step recipe for Temporal Anti-Aliasing&#34;&gt;Step by step recipe for Temporal Anti-Aliasing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial shows how to implement Temporal Anti-Aliasing using an example OpenGL implementation&lt;/li&gt;
&lt;li&gt;provides a walkthrough of all steps required&lt;/li&gt;
&lt;li&gt;shows how to calculate velocity vectors, use history buffers, calculate jittering matrix&lt;/li&gt;
&lt;li&gt;additionally shows how dithering can be used to create alpha-blended looks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-166/TAA_Tutorial.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rust-tutorials.github.io/triangle-from-scratch/loading_opengl/win32.html&#34; target=&#34;_blank&#34; id=&#34;Loading OpenGL With Win32&#34;&gt;Loading OpenGL With Win32&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Rust tutorial provides an extensive walkthrough of the steps required to use OpenGL using native rust&lt;/li&gt;
&lt;li&gt;explains all the necessary interop to load OpenGL, initialize a swap chain, and start presenting&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-166/empty_win32_window.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210118110624/https://rust-tutorials.github.io/triangle-from-scratch/loading_opengl/win32.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/gears-vrs-tier2/&#34; target=&#34;_blank&#34; id=&#34;Moving Gears to Tier 2 Variable Rate Shading&#34;&gt;Moving Gears to Tier 2 Variable Rate Shading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how VRS tier 2 shading was integrated into Gears&lt;/li&gt;
&lt;li&gt;uses the previous frame color buffer results to run a Sobel edge detection compute shader to detect the shading rate&lt;/li&gt;
&lt;li&gt;a conservative VRS allows systems to opt-in for special quality if required&lt;/li&gt;
&lt;li&gt;contains advice on optimizations for VRS tile texture generation&lt;/li&gt;
&lt;li&gt;additionally provides guidance on how to estimate performance using Tier 1&lt;/li&gt;
&lt;li&gt;provides performance numbers for the savings from different render passes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-166/GearsVRS.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210114103642/https://devblogs.microsoft.com/directx/gears-vrs-tier2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.alanzucconi.com/2021/01/11/gamedev-pronunciation-guide/&#34; target=&#34;_blank&#34; id=&#34;Gamedev Pronunciation Guide&#34;&gt;Gamedev Pronunciation Guide&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article contains a list of common graphics programming terms and how to pronounce them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-166/pronunciation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210114165210/https://www.alanzucconi.com/2021/01/11/gamedev-pronunciation-guide/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://toomuchvoltage.github.io/nv_to_khr_raytracing/&#34; target=&#34;_blank&#34; id=&#34;Transition guide from VK_NV_raytracing to (final) VK_KHR_raytracing!&#34;&gt;Transition guide from VK_NV_raytracing to (final) VK_KHR_raytracing!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a guide for porting from the original VK_NV_raytracing extension to official VK_KHR_raytracing extensions&lt;/li&gt;
&lt;li&gt;show what changes are required for device creation, memory management, acceleration structure build, pipeline management&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-166/VulkanRaytracingGuide.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210110091030/https://toomuchvoltage.github.io/nv_to_khr_raytracing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ourmachinery.com/post/summer-fun-with-creation-graphs/&#34; target=&#34;_blank&#34; id=&#34;Summer Fun with Creation Graphs&#34;&gt;Summer Fun with Creation Graphs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of Creation Graphs and what it enables the user to create in The Machinery&lt;/li&gt;
&lt;li&gt;an extensible node-based system that allows the flexible combination of data from different kinds of data to create new combinations
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-166/sumcg__poster.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210114184704/https://ourmachinery.com/post/summer-fun-with-creation-graphs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=w0I2Ng-W01Y&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Stylized grass Tutorial || Houdini and Unreal Engine&#34;&gt;[video] Stylized grass Tutorial || Houdini and Unreal Engine&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to create stylized grass in the Unreal engine&lt;/li&gt;
&lt;li&gt;shows how to create the meshes in Houdini, textures in Unreal and integrate them into the rendering pipeline&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-166/StylizedGrassTutorialUnreal.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/aortizelguero&#34; target=&#34;_blank&#34;&gt;Angel Ortiz&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 165 — January 10, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-165/</link>
      <pubDate>Sun, 10 Jan 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-165/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bgolus.medium.com/rendering-a-sphere-on-a-quad-13c92025570c&#34; target=&#34;_blank&#34; id=&#34;Rendering a Sphere on a Quad&#34;&gt;Rendering a Sphere on a Quad&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains in detail how to render a raytraced sphere that interacts with other parts of the Unity rendering pipeline&lt;/li&gt;
&lt;li&gt;covers how to use a billboard to render there sphere, explaining how to calculate an optimal camera facing quad and texture mapping&lt;/li&gt;
&lt;li&gt;extending to support shadow casting, receiving, and use of conservative depth output to enable early depth rejection
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-165/SphereOnQuad.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210111014929/https://bgolus.medium.com/rendering-a-sphere-on-a-quad-13c92025570c&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cyanilux.com/tutorials/intro-to-shaders/&#34; target=&#34;_blank&#34; id=&#34;Intro to Shaders&#34;&gt;Intro to Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;beginner-focused tutorial that explains how 3D data is structured in computer graphics&lt;/li&gt;
&lt;li&gt;covers what shaders are, what type exists, and how they are used within Unity to define the look&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-165/CubeNormals.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210111103744/https://www.cyanilux.com/tutorials/intro-to-shaders/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=BXo97H55EhA&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Christmas special, making it snow.&#34;&gt;[video] Christmas special, making it snow.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to create interactive snow on terrain and objects using Godot&lt;/li&gt;
&lt;li&gt;interactive snow is implemented via a snow mask that is updated and blends between textures and modifies vertex positions&lt;/li&gt;
&lt;li&gt;snow on objects is world space projected snow textures that also is interactive&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-165/SnowRendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.gamasutra.com/blogs/EgorYusov/20210106/375829/A_Diligent_Approach_to_Ray_Tracing.php&#34; target=&#34;_blank&#34; id=&#34;A Diligent Approach to Ray Tracing&#34;&gt;A Diligent Approach to Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a walkthrough of a RayTracing abstraction layer that was implemented for D3D12 and Vulkan&lt;/li&gt;
&lt;li&gt;provides a walkthrough of how to combine the elements to a example scene&lt;/li&gt;
&lt;li&gt;shows what the different raytracing shaders are and what they contribute to the final image&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-165/trace_depth_8.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210110070621/https://www.gamasutra.com/blogs/EgorYusov/20210106/375829/A_Diligent_Approach_to_Ray_Tracing.php&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/rgp-1-9/&#34; target=&#34;_blank&#34; id=&#34;Radeon™ GPU Profiler 1.9 introduces support for Radeon™ RX 6000 Series&#34;&gt;Radeon™ GPU Profiler 1.9 introduces support for Radeon™ RX 6000 Series&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the updated tool allows an in-depth view into the raytracing details on AMD hardware&lt;/li&gt;
&lt;li&gt;reveals that the driver might inline all shaders into a single shader or keep shaders separate&lt;/li&gt;
&lt;li&gt;the new update provides a shader table view to see the relative cost of different stages&lt;/li&gt;
&lt;li&gt;additional shows all shaders with costs, call count, and ability to see ISA&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-165/AMD_ray_tracing.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210111104233/https://gpuopen.com/learn/rgp-1-9/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=VJ1QLrmfQws&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] CUDA Memory Model&#34;&gt;[video] CUDA Memory Model&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains the CUDA memory model&lt;/li&gt;
&lt;li&gt;covering the rules of how memory operations on shared memory from multiple threads are processed&lt;/li&gt;
&lt;li&gt;looking at loading, reordering, barriers, etc.. and explains with examples (source code published)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-165/cuda_memory_model.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/shaderquest-part-0-series-introduction/&#34; target=&#34;_blank&#34; id=&#34;ShaderQuest Part 0: Series Introduction&#34;&gt;ShaderQuest Part 0: Series Introduction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Overview for the start of a new shader tutorial series for beginners&lt;/li&gt;
&lt;li&gt;starts by providing the motivation, approach, and topics that will be covered
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-165/SQ_Part_0.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210111104319/https://halisavakis.com/shaderquest-part-0-series-introduction/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://surma.dev/things/ditherpunk/&#34; target=&#34;_blank&#34; id=&#34;Ditherpunk — The article I wish I had about monochrome image dithering&#34;&gt;Ditherpunk — The article I wish I had about monochrome image dithering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article focuses on providing a walkthrough of dithering techniques&lt;/li&gt;
&lt;li&gt;provides an overview of what dithering is, use cases&lt;/li&gt;
&lt;li&gt;showcase of different dithering patterns and what results they produce
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-165/dark-riemersma.f1523202.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210111104251/https://surma.dev/things/ditherpunk/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://codedeposit.blogspot.com/2021/01/cvtt-texture-compressor-technical.html&#34; target=&#34;_blank&#34; id=&#34;CVTT Texture Compressor Technical Breakdown&#34;&gt;CVTT Texture Compressor Technical Breakdown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the CVTT compression techniques used (DirecXTex fork aims to be an experiment to improve state of the art)&lt;/li&gt;
&lt;li&gt;shows how the different formats are compressed, common themes across formats, and lists possible improvements
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-165/BC7Subset.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210111104305/http://codedeposit.blogspot.com/2021/01/cvtt-texture-compressor-technical.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Michael Hazani for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 164 — January 3, 2021</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-164/</link>
      <pubDate>Sun, 03 Jan 2021 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-164/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=VaYyPTw0V84&#34; target=&#34;_blank&#34; id=&#34;[video] How to texture a procedural object&#34;&gt;[video] How to texture a procedural object&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains the fundamentals of texture mapping in ShaderToy&lt;/li&gt;
&lt;li&gt;describes how to apply a texture map to a 3D cube, sphere using tri-planar mapping&lt;/li&gt;
&lt;li&gt;additionally describes how to animate a second texture set onto a sphere as well as displacement mapping&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-164/TextureAproceduralObject.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=BrZ4pWwkpto&#34; target=&#34;_blank&#34; id=&#34;[video] Getting Started with Compute Shaders in Unity&#34;&gt;[video] Getting Started with Compute Shaders in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this Unity tutorial aimed at beginners presents a starter guide for compute shaders&lt;/li&gt;
&lt;li&gt;shows how to convert CPU based random cube generation tp GPU&lt;/li&gt;
&lt;li&gt;demonstrates how much quicker even a simple GPU based version can be&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-164/ComputeShadersUnity.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://jcgt.org/published/0009/04/02/&#34; target=&#34;_blank&#34; id=&#34;Unorganized Unit Vectors Sets Quantization&#34;&gt;Unorganized Unit Vectors Sets Quantization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new technique of on-the-fly quantization for unorganized sets of unit vectors&lt;/li&gt;
&lt;li&gt;approach detects groups of windows that are then uniformly mapped onto the whole sphere surface before unit vector quantization is applied&lt;/li&gt;
&lt;li&gt;the presented technique can archive better results than octahedral quantization with only 16 bits&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-164/QuantizationOfUnorganizedUnitVectorSets.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://jcgt.org/published/0009/04/02/paper.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20210104000010/http://jcgt.org/published/0009/04/02/paper.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201231194255/http://jcgt.org/published/0009/04/02/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/custom-srp/render-scale/&#34; target=&#34;_blank&#34; id=&#34;Render Scale - Scaling Up and Down&#34;&gt;Render Scale - Scaling Up and Down&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tutorial series about creating a custom scriptable render pipeline in Unity&lt;/li&gt;
&lt;li&gt;decoupling the render resolution from the target resolution to allow variable resolution at runtime&lt;/li&gt;
&lt;li&gt;presents how to deal with post FX and the difference between upscaling with different color spaces&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-164/IndependentRenderScale.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210103174253/https://catlikecoding.com/unity/tutorials/custom-srp/render-scale/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/basic-setup-in-45320078&#34; target=&#34;_blank&#34; id=&#34;Basic Tessellation setup in URP&#34;&gt;Basic Tessellation setup in URP&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial provides a starting point for how to use tessellation shaders&lt;/li&gt;
&lt;li&gt;example shows to tessellate a simple terrain&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-164/TessellationURP.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/xDSWb&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.adriancourreges.com/blog/2020/12/29/graphics-studies-compilation/&#34; target=&#34;_blank&#34; id=&#34;Graphics Studies Compilation&#34;&gt;Graphics Studies Compilation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of articles that provide a breakdown of various games&lt;/li&gt;
&lt;li&gt;contains links from analyses since 2015 from multiple authors&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-164/gfx_studies.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210103164623/http://www.adriancourreges.com/blog/2020/12/29/graphics-studies-compilation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jorenjoestar.github.io/post/realistic_stars/realistic_stars/&#34; target=&#34;_blank&#34; id=&#34;Rendering Astronomic Stars&#34;&gt;Rendering Astronomic Stars&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows the steps required to use star databases to enable the correct rendering of stars&lt;/li&gt;
&lt;li&gt;covers data parsing, dealing with different time reference frames, color conversion&lt;/li&gt;
&lt;li&gt;provides sources and code for the implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-164/RenderingStars.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201231214152/https://jorenjoestar.github.io/post/realistic_stars/realistic_stars/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://fransbouma.com/best-shots-from-2020&#34; target=&#34;_blank&#34; id=&#34;Best shots from 2020&#34;&gt;Best shots from 2020&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Collection of impressive screenshots from Games (mostly PC, a few from PS4 Pro)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-164/valhalla.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20210101163532/https://fransbouma.com/best-shots-from-2020&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.jcgt.org/published/0009/04/01/&#34; target=&#34;_blank&#34; id=&#34;Practical Hash-based Owen Scrambling&#34;&gt;Practical Hash-based Owen Scrambling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an implementation of a hash-based Owen scrambling for Sobol sampling with nested uniform shuffling to enable
multidimensional padding&lt;/li&gt;
&lt;li&gt;presents practical considerations for use cases and provides an example implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-164/PracticalHashBasedOwenScrambling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://www.jcgt.org/published/0009/04/01/paper.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20210104000902/http://www.jcgt.org/published/0009/04/01/paper.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201229181125/http://www.jcgt.org/published/0009/04/01/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Dirk Dörr for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 163 — December 27, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-163/</link>
      <pubDate>Sun, 27 Dec 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-163/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2020/12/27/why-are-video-games-graphics-still-a-challenge-productionizing-rendering-algorithms/&#34; target=&#34;_blank&#34; id=&#34;Why are video games graphics (still) a challenge? Productionizing rendering algorithms&#34;&gt;Why are video games graphics (still) a challenge? Productionizing rendering algorithms&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of considerations when developing a graphics technique for video games&lt;/li&gt;
&lt;li&gt;presents how game design, workflow, performance, artist controllability, &amp;hellip; affect the possible solution space&lt;/li&gt;
&lt;li&gt;provides a case studio from the vegetation system from The Witcher 2&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-163/god_of_war.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201228125518/https://bartwronski.com/2020/12/27/why-are-video-games-graphics-still-a-challenge-productionizing-rendering-algorithms/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bruop.github.io/frustum_culling/&#34; target=&#34;_blank&#34; id=&#34;Frustum Culling&#34;&gt;Frustum Culling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to implement frustum culling and the effects on CPU and GPU performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-163/bounding_volume_types.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201224211526/https://bruop.github.io/frustum_culling/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://c0de517e.blogspot.com/2020/12/why-raytracing-wont-simplify-aaa-real.html&#34; target=&#34;_blank&#34; id=&#34;Why Raytracing won&amp;#39;t simplify AAA real-time rendering.&#34;&gt;Why Raytracing won&amp;#39;t simplify AAA real-time rendering.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides a look back at the evolution of graphics technology and how they affect game production&lt;/li&gt;
&lt;li&gt;author expresses his view on how ray tracing will repeat history and complexity will continue to increase as we want to archive more complex goals&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-163/robloxscreenshot20201225.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201228100314/http://c0de517e.blogspot.com/2020/12/why-raytracing-wont-simplify-aaa-real.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2020/12/27/rdna-2-hardware-raytracing/&#34; target=&#34;_blank&#34; id=&#34;RDNA 2 hardware raytracing&#34;&gt;RDNA 2 hardware raytracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog posts takes a look at the RNDA ISA and presents how ray tracing has been implemented in AMD hardware&lt;/li&gt;
&lt;li&gt;look at the instructions to accelerate ray/triangle and ray/BVH intersection logic in hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-163/RDNA2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201227200023/https://interplayoflight.wordpress.com/2020/12/27/rdna-2-hardware-raytracing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bottosson.github.io/posts/oklab/&#34; target=&#34;_blank&#34; id=&#34;A perceptual color space for image processing&#34;&gt;A perceptual color space for image processing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a new perceptual color space&lt;/li&gt;
&lt;li&gt;illustrates how the color space conversion is used and how it was derived&lt;/li&gt;
&lt;li&gt;color space is designed to use D65 white point (easier interop with Rec202 and sRGB) with even transitions when used in blending&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-163/hue_oklab.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201225070928/https://bottosson.github.io/posts/oklab/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1738_states_and_barriers_of_aliasing_render_targets&#34; target=&#34;_blank&#34; id=&#34;States and Barriers of Aliasing Render Targets&#34;&gt;States and Barriers of Aliasing Render Targets&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of D3D12 aliasing barriers, Discard/Clear semantics, and how they interact with resource states&lt;/li&gt;
&lt;li&gt;presents three approaches to the problem&lt;/li&gt;
&lt;li&gt;it appears no way exists that doesn&amp;rsquo;t trigger debug-runtime errors and archives optimal performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-163/States_and_Barriers_of_Aliasing_Render_Targets_1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201222213433/https://asawicki.info/news_1738_states_and_barriers_of_aliasing_render_targets&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://zincfox.red&#34; target=&#34;_blank&#34;&gt;Jonathan Tinkham&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 162 — December 20, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-162/</link>
      <pubDate>Sun, 20 Dec 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-162/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://c0de517e.blogspot.com/2020/12/hallucinations-re-rendering-of.html&#34; target=&#34;_blank&#34; id=&#34;Hallucinations re: the rendering of Cyberpunk 2077&#34;&gt;Hallucinations re: the rendering of Cyberpunk 2077&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a breakdown of a Cyberpunk 2077 frame&lt;/li&gt;
&lt;li&gt;looking at the different passes that create the final image, what techniques are employed&lt;/li&gt;
&lt;li&gt;how the gbuffer is structured, volumetrics, decals, culling &amp;hellip;.&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-162/CyberpunkCapture.PNG&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201219095004/http://c0de517e.blogspot.com/2020/12/hallucinations-re-rendering-of.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/nvpro-samples/vk_mini_path_tracer&#34; target=&#34;_blank&#34; id=&#34;vk_mini_path_tracer&#34;&gt;vk_mini_path_tracer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Vulkan tutorial that shows how to implement a Path Tracer in 300 lines of C++ using Vulkan compute shaders&lt;/li&gt;
&lt;li&gt;broken into multiple chapters that explain the fundamental concepts of Vulkan and path tracing&lt;/li&gt;
&lt;li&gt;additional chapters provide further information on optimizations, multiple materials, blurs, &amp;hellip;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-162/12-vk_mini_path_tracer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201218113636/https://github.com/nvpro-samples/vk_mini_path_tracer&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.shironekolabs.com/posts/superrt/&#34; target=&#34;_blank&#34; id=&#34;SuperRT&#34;&gt;SuperRT&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the project that presents the implementation of a custom external raytracing card for use with the SNES&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-162/SnesRTHardware.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201221022105/https://www.shironekolabs.com/posts/superrt/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/grass-geometry-1-40090373&#34; target=&#34;_blank&#34; id=&#34;Grass Geometry Shader with Interactivity (Part 1, the shader)&#34;&gt;Grass Geometry Shader with Interactivity (Part 1, the shader)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial explains how interactivity between player and grass can be implemented for geometry shader based grass&lt;/li&gt;
&lt;li&gt;additionally covers how to apply point light shading&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-162/InteractiveGrassShader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/a8kCr&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/xrlo-extended-reality-lowdown/how-to-create-a-coiled-cable-shader-in-ue4-8bb47777d8ab&#34; target=&#34;_blank&#34; id=&#34;How To Create A Coiled Cable Shader In UE4&#34;&gt;How To Create A Coiled Cable Shader In UE4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to generate cables from cylinders&lt;/li&gt;
&lt;li&gt;based on the Unreal Cable component for the physics simulation, but all visual effects are implemented as pixel shader&lt;/li&gt;
&lt;li&gt;covers the spiral generation, normal generation, silhouette handling, and support for stretching&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-162/CoiledCable.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201219215424/https://medium.com/xrlo-extended-reality-lowdown/how-to-create-a-coiled-cable-shader-in-ue4-8bb47777d8ab&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2020/12/21/to-z-prepass-or-not-to-z-prepass/&#34; target=&#34;_blank&#34; id=&#34;to z-prepass or not to z-prepass&#34;&gt;to z-prepass or not to z-prepass&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of what a Z-pre-pass is&lt;/li&gt;
&lt;li&gt;what benefits and drawbacks this technique has&lt;/li&gt;
&lt;li&gt;additionals discussion of techniques that can benefit from having access to a full scene z-buffer early in the frame&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-162/z_prepass.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201221224548/https://interplayoflight.wordpress.com/2020/12/21/to-z-prepass-or-not-to-z-prepass/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=6bqA8F6B6NQ&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Cyberpunk 2077 PC: What Does Ray Tracing Deliver... And Is It Worth It?&#34;&gt;[video] Cyberpunk 2077 PC: What Does Ray Tracing Deliver... And Is It Worth It?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;in-depth Digital Foundry comparison between Raytracing and classical rendering features on PC&lt;/li&gt;
&lt;li&gt;presents what Raytracing adds to the final look of the game&lt;/li&gt;
&lt;li&gt;comparison of performance with different settings and the importance of DLSS&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-162/raytracing_cyberpunk.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://www.plane9.com&#34; target=&#34;_blank&#34;&gt;Joakim Dahl&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 161 — December 13, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-161/</link>
      <pubDate>Sun, 13 Dec 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-161/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ciechanow.ski/cameras-and-lenses/&#34; target=&#34;_blank&#34; id=&#34;Cameras and Lenses&#34;&gt;Cameras and Lenses&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article gives an understanding of how different types of camera and lenses work&lt;/li&gt;
&lt;li&gt;provides many interactive examples that explain the various elements, aspects and how they interact&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-161/CamerasAndLenses.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201213023627/https://ciechanow.ski/cameras-and-lenses/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=1b5hIMqz_wM&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Glyphs, shapes, fonts, signed distance fields.&#34;&gt;[video] Glyphs, shapes, fonts, signed distance fields.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial provides an overview of signed distance fields&lt;/li&gt;
&lt;li&gt;explains how to use SDFs for font rendering&lt;/li&gt;
&lt;li&gt;provides an example implementation of multiple font effects (thickness, feather, outline color)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-161/SDF.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=wOBCWZJq6zs&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Moving Mobile Graphics - SIGGRAPH 2020 Course&#34;&gt;[video] Moving Mobile Graphics - SIGGRAPH 2020 Course&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video recording from all talks in the Siggraph 2020 course in a single video&lt;/li&gt;
&lt;li&gt;covering Intro to Moving Mobile Graphics, Mobile Graphics 101, Vulkan on Mobile Done Right, Deferred Shading in Unity URP,&lt;/li&gt;
&lt;li&gt;Large Voxel Landscapes on Mobile, High Quality, High-Performance Graphics in Filament are covered below in more detail&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-161/MovingMobileGraphics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://drive.google.com/file/d/1N9rCXvuXfTqumxfoGRv3qBXe_7MHUQKC/view&#34; target=&#34;_blank&#34; id=&#34;Physically Based Rendering - Phong BRDF&#34;&gt;Physically Based Rendering - Phong BRDF&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introductory slides for physically based rendering course&lt;/li&gt;
&lt;li&gt;provides an overview of fundamental terms and concepts&lt;/li&gt;
&lt;li&gt;explaining how the different ideas fit together to create a basic physically based shading implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-161/pbr_intro.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/MfhZp&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=DeATXF4Szqo&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Grass Fields in Unity URP! Procedurally Generate Blades with Compute Shaders | Game Dev Tutorial&#34;&gt;[video] Grass Fields in Unity URP! Procedurally Generate Blades with Compute Shaders | Game Dev Tutorial&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows how to generate grass blades that swing in the wind&lt;/li&gt;
&lt;li&gt;LODs are supported, reducing the number of segments for each blade of grass when it&amp;rsquo;s further away from the camera&lt;/li&gt;
&lt;li&gt;implemented as compute shaders using Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-161/grass_compute_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gamedevbill.com/shockwave-shader-graph/&#34; target=&#34;_blank&#34; id=&#34;Shockwave Shader Graph&#34;&gt;Shockwave Shader Graph&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to implement a ripple effect&lt;/li&gt;
&lt;li&gt;first implements a sprite-based effect, extends this afterward to support 3D mesh deformation&lt;/li&gt;
&lt;li&gt;implemented using Unity shader graph&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-161/shockwave.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201208020237/https://gamedevbill.com/shockwave-shader-graph/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://psgraphics.blogspot.com/2020/12/debugging-refraction-in-ray-tracer.html&#34; target=&#34;_blank&#34; id=&#34;Debugging refraction in a ray tracer&#34;&gt;Debugging refraction in a ray tracer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;short blog post that provides advice on how to debug refraction in a raytracer&lt;/li&gt;
&lt;li&gt;provides what values to expect when debugging refraction on a glass sphere&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-161/refraction_debug.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201214054655/http://psgraphics.blogspot.com/2020/12/debugging-refraction-in-ray-tracer.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2020/12/08/Texture-Compression-in-2020/&#34; target=&#34;_blank&#34; id=&#34;Texture Compression in 2020&#34;&gt;Texture Compression in 2020&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of different compression formats and libraries&lt;/li&gt;
&lt;li&gt;comparing quality and compression speed for several texture types&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-161/chartpic-all-annot.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201208124608/https://aras-p.info/blog/2020/12/08/Texture-Compression-in-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/generating-ray-traced-caustic-effects-in-unreal-engine-4-part-1/&#34; target=&#34;_blank&#34; id=&#34;Generating Ray-Traced Caustic Effects in Unreal Engine 4, Part 1&#34;&gt;Generating Ray-Traced Caustic Effects in Unreal Engine 4, Part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the implementation of Caustics using a photon mapping technique that takes advantage of DXR capabilities&lt;/li&gt;
&lt;li&gt;the first part focuses on caustics from meshes (such as bottles, glasses)&lt;/li&gt;
&lt;li&gt;additional provides a performance comparison between Nvidia GPUs&lt;/li&gt;
&lt;li&gt;part 2 focuses on water-based caustics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-161/figure_3-625x388.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201210084624/https://developer.nvidia.com/blog/generating-ray-traced-caustic-effects-in-unreal-engine-4-part-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/using-mesh-shaders-for-professional-graphics/&#34; target=&#34;_blank&#34; id=&#34;Using Mesh Shaders for Professional Graphics&#34;&gt;Using Mesh Shaders for Professional Graphics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows examples of how to use mesh shaders (code examples in GLSL)&lt;/li&gt;
&lt;li&gt;show how different data types and models influence the performance&lt;/li&gt;
&lt;li&gt;gives advice on best-practices when designing a solution for Nvidia hardware&lt;/li&gt;
&lt;li&gt;additionally provides pointers on what might be different on other hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-161/decorative-mesh-shader-graphic-450x300.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201208224411/https://developer.nvidia.com/blog/using-mesh-shaders-for-professional-graphics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/rdna2-isa-available/&#34; target=&#34;_blank&#34; id=&#34;AMD RDNA™ 2 Instruction Set Architecture&#34;&gt;AMD RDNA™ 2 Instruction Set Architecture&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the RDNA 2 Instruction Set has been released&lt;/li&gt;
&lt;li&gt;shows that RDNA 2 supports dedicated instructions for BVH intersection to accelerate ray tracing workloads&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-161/featured_rdna2-768x420.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201209195410/https://gpuopen.com/rdna2-isa-available/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/rmv-opensource/&#34; target=&#34;_blank&#34; id=&#34;Radeon™ Memory Visualizer is now Open Source&#34;&gt;Radeon™ Memory Visualizer is now Open Source&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD released the source code for the Memory Visualizer&lt;/li&gt;
&lt;li&gt;tools support Vulkan and D3D12 to provide insights into memory usage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-161/rmv_resourceoverview-1-768x280.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201210121414/https://gpuopen.com/rmv-opensource/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.gamasutra.com/blogs/JoostVanDongen/20201210/375058/Softening_polygon_intersections_in_Blightbound.php&#34; target=&#34;_blank&#34; id=&#34;Softening polygon intersections in Blightbound&#34;&gt;Softening polygon intersections in Blightbound&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how fading our transparent objects when getting close to an intersection helps them to appear more volumetric&lt;/li&gt;
&lt;li&gt;technique presented in the article uses the depth buffer information from opaque objects to fade out the transparent&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-161/depth_fade.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201213120631/https://www.gamasutra.com/blogs/JoostVanDongen/20201210/375058/Softening_polygon_intersections_in_Blightbound.php&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.willusher.io/publications/rtx-points-tvcg&#34; target=&#34;_blank&#34; id=&#34;Accelerating Unstructured Mesh Point Location with RT Cores&#34;&gt;Accelerating Unstructured Mesh Point Location with RT Cores&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents the results of research into using the RTX raytracing hardware for unstructured point rendering&lt;/li&gt;
&lt;li&gt;presents multiple iterations from a reference CUDA implementation to more complex RTX solutions&lt;/li&gt;
&lt;li&gt;comparing performance for the different approaches&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-161/unstructured_point_data.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201210173234/https://www.willusher.io/publications/rtx-points-tvcg&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=gbeN4lcjJDA&#34; target=&#34;_blank&#34; id=&#34;[video] SIGGRAPH 2020 — High Quality, High Performance Rendering in Filament&#34;&gt;[video] SIGGRAPH 2020 — High Quality, High Performance Rendering in Filament&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video for the talk has been released, was covered in the week &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-147/&#34; target=&#34;_blank&#34;&gt;147&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;how to take advantage of tiling GPU architecture and enable the use of fp16 math&lt;/li&gt;
&lt;li&gt;cloth shading, reduction of energy loss for rough metals, multi-bounce AO&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-161/filament.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=LktNeVkofKU&#34; target=&#34;_blank&#34; id=&#34;[video] SIGGRAPH 2020 - Large Voxel Landscapes On Mobile&#34;&gt;[video] SIGGRAPH 2020 - Large Voxel Landscapes On Mobile&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk explains the Voxel-based terrain system used in Roblox&lt;/li&gt;
&lt;li&gt;voxels store material id and material occupancy (0,1) range&lt;/li&gt;
&lt;li&gt;how to generate meshes from the sparse voxel representation&lt;/li&gt;
&lt;li&gt;texture mapping, tiling reduction, water considerations, and various performance advice&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-161/water_sphere.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/robert-wallis&#34; target=&#34;_blank&#34;&gt;Robert Wallis&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 160 — December 6, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-160/</link>
      <pubDate>Sun, 06 Dec 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-160/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/44718776&#34; target=&#34;_blank&#34; id=&#34;Black skin in your stylized dimly-lit video game&#34;&gt;Black skin in your stylized dimly-lit video game&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The article presents how important reflectivity of Black skin is for believable results&lt;/li&gt;
&lt;li&gt;it shows how to adjust textures and the Unity PBR shaders (specular workflow) to decouple specular color from the glossiness&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-160/BlackSkin.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/fAI9U&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=wOEKjawI0gc&#34; target=&#34;_blank&#34; id=&#34;Open Problems in Real-Time Rendering&#34;&gt;Open Problems in Real-Time Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk from Digital Dragons looks at open questions in rendering&lt;/li&gt;
&lt;li&gt;walkthrough of the various assumptions and approximations and raises the question of the most significant source of error in modern rendering pipeline?&lt;/li&gt;
&lt;li&gt;presenting a look at the higher-level view at how are rendering and production pipeline might evolve&lt;/li&gt;
&lt;li&gt;discussing tradeoffs and how a more holistic view of rendering might lead to more productivity and better results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-160/OpenProblemsInRealtimeRendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.dropbox.com/s/0cn9t10xy8f69yz/DD-OpenProblems.pdf?dl=0&#34; style=&#34;color:white;&#34;&gt;slides &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/z0KvN&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=9X9VzEsRm2c&#34; target=&#34;_blank&#34; id=&#34;Angelo Pesce - Rendering the Metaverse across Space and Time&#34;&gt;Angelo Pesce - Rendering the Metaverse across Space and Time&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk provides an overview of Roblox and how the philosophy creates an environment with very different technical challenges&lt;/li&gt;
&lt;li&gt;a tech that favors scalable over optimal and how it&amp;rsquo;s been able to evolve existing data to take advantage of new device abilities&lt;/li&gt;
&lt;li&gt;provides an overview of the engine architecture and a walkthrough of a large number of rendering systems (clustering, lighting, shading)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-160/RenderingTheMetaverseAcrossSpaceAndTime.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.dropbox.com/s/9z7p6kg3utjzf7f/DD-Metaverse.pdf?dl=0&#34; style=&#34;color:white;&#34;&gt;slides &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/gDoaB&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/custom-srp/particles/&#34; target=&#34;_blank&#34; id=&#34;Particles Color and Depth Textures&#34;&gt;Particles Color and Depth Textures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part of tutorial series about the Unity scriptable rendering pipeline (SRP)&lt;/li&gt;
&lt;li&gt;covers how to support soft and distortion particles&lt;/li&gt;
&lt;li&gt;determining depth for orthographic and perspective projections&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-160/particles-srp.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201127173622/https://catlikecoding.com/unity/tutorials/custom-srp/particles/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=ool2E8SQPGU&#34; target=&#34;_blank&#34; id=&#34;Robin Taillandier &amp;amp; Jon Valdes - Every Strand Counts: Physics and Rendering Behind Frostbite’s Hair&#34;&gt;Robin Taillandier &amp;amp; Jon Valdes - Every Strand Counts: Physics and Rendering Behind Frostbite’s Hair&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presentation shows the in-progress state of the new Frostbite hair rendering system in the context of FIFA&lt;/li&gt;
&lt;li&gt;covering both the strand simulation and rendering&lt;/li&gt;
&lt;li&gt;rendering is done using a custom line rasterize, order-independent transparency, and strand space shading (texture space shading)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-160/StrandBasedRendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.tuxedolabs.com/2020/12/03/spraycan.html&#34; target=&#34;_blank&#34; id=&#34;The Spraycan&#34;&gt;The Spraycan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the articles discusses how the voxel rendering in teardown uses an 8-bit color palette for voxel materials and still allows coloring&lt;/li&gt;
&lt;li&gt;this is archived by precalculating multiple color variations for each material&lt;/li&gt;
&lt;li&gt;if not enough slots are available similar materials will be merged&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-160/spraycan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201207055647/https://blog.tuxedolabs.com/2020/12/03/spraycan.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.jallmenroeder.de/2020/11/19/linearly-transformed-spherical-harmonics/&#34; target=&#34;_blank&#34; id=&#34;Linearly Transformed Spherical Harmonics&#34;&gt;Linearly Transformed Spherical Harmonics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Bachelor thesis introduces Linearly Transformed Spherical Harmonics&lt;/li&gt;
&lt;li&gt;A technique for computing specular shading from to polygonal area lights&lt;/li&gt;
&lt;li&gt;compares the method against linearly transformed cosines, and it&amp;rsquo;s able to produce higher quality results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-160/sd_demo_ltsh_n4.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://www.jallmenroeder.de/wp-content/uploads/2020/10/LTSH_BA_Thesis_final.pdf&#34; style=&#34;color:white;&#34;&gt;thesis &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20201207055817/http://www.jallmenroeder.de/wp-content/uploads/2020/10/LTSH_BA_Thesis_final.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201207055655/http://www.jallmenroeder.de/2020/11/19/linearly-transformed-spherical-harmonics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://rastergrid.com/blog/gpu-tech/2020/11/memory-types-of-discrete-gpus/&#34; target=&#34;_blank&#34; id=&#34;Memory types of discrete GPUs&#34;&gt;Memory types of discrete GPUs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains a different kind of memory that exists&lt;/li&gt;
&lt;li&gt;how AMDs Smart Access Memory fits into the picture&lt;/li&gt;
&lt;li&gt;additionally covers considering of performance when using a device or host-local memory&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-160/GPUMemoryTypes-2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201130172838/http://rastergrid.com/blog/gpu-tech/2020/11/memory-types-of-discrete-gpus/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.gamasutra.com/blogs/RaviTejaSanampudi/20201201/374488/Intel_View_in_Mafia_III.php&#34; target=&#34;_blank&#34; id=&#34;Intel View in Mafia III&#34;&gt;Intel View in Mafia III&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how the effect was implemented that allows objects to be colorized/silhouetted to make them pop out of the scene&lt;/li&gt;
&lt;li&gt;this is implemented by rendering AABB with per-object depth into a separate render target, marking tagged objects via stencil&lt;/li&gt;
&lt;li&gt;and using post-processing to apply the outline effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-160/IntelView.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201207055915/https://www.gamasutra.com/blogs/RaviTejaSanampudi/20201201/374488/Intel_View_in_Mafia_III.php&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=VXp-HEAw-l4&#34; target=&#34;_blank&#34; id=&#34;Michał Olejnik - Raytraced Shadows in Call of Duty: Modern Warfare&#34;&gt;Michał Olejnik - Raytraced Shadows in Call of Duty: Modern Warfare&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video recording of the talk covered in &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-154/&#34; target=&#34;_blank&#34;&gt;week 154&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;the presentation explains how the raytracing for shadows has been implemented into Call of Duty&lt;/li&gt;
&lt;li&gt;covering acceleration structure separation, performance, denoising implementation, and supporting multiple local area lights&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-160/ShadowsCallOfDuty.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Peter Kohaut for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 159 — November 29, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-159/</link>
      <pubDate>Sun, 29 Nov 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-159/</guid>
      <description>&lt;p&gt;Daniel Jones has made a video summary of the articles included in this article available on &lt;a href=&#34;https://www.youtube.com/watch?v=EwN7yVcXJe8&#34; target=&#34;_blank&#34;&gt;Youtube&lt;/a&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=8--5LwHRhjk&#34; target=&#34;_blank&#34; id=&#34;[video] Painting a Selfie Girl, with Maths&#34;&gt;[video] Painting a Selfie Girl, with Maths&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents an in-depth walkthrough that shows how to use signed distance fields (SDF) to create an animated girl&lt;/li&gt;
&lt;li&gt;explains all used primitives as SDW, how they are combined, and the lighting implementation&lt;/li&gt;
&lt;li&gt;implementation is done in shadertoy&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-159/sdf_girl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://astralcode.blogspot.com/2020/11/reverse-engineering-rendering-of.html&#34; target=&#34;_blank&#34; id=&#34;Reverse engineering the rendering of The Witcher 3, part 21 - the painted world&#34;&gt;Reverse engineering the rendering of The Witcher 3, part 21 - the painted world&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how The Witcher 3 implements a fullscreen effect that gives the world a painterly look&lt;/li&gt;
&lt;li&gt;presents a step-by-step walkthrough, showing all components that define the noise generation&lt;/li&gt;
&lt;li&gt;author provides a &lt;a href=&#34;https://www.shadertoy.com/view/3stBD2&#34; target=&#34;_blank&#34;&gt;shadertoy&lt;/a&gt; implementation of the effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-159/the_witcher_painterly.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201127135307/https://astralcode.blogspot.com/2020/11/reverse-engineering-rendering-of.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://iquilezles.org/www/articles/biplanar/biplanar.htm&#34; target=&#34;_blank&#34; id=&#34;biplanar mapping - 2020&#34;&gt;biplanar mapping - 2020&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post presents a bi-planar mapping as an alternative to tri-planar mapping using only two texture fetches&lt;/li&gt;
&lt;li&gt;starts by giving an overview of the tri-planar mapping&lt;/li&gt;
&lt;li&gt;followed by an explanation of the bi-planar mapping technique, presenting strategies to improve the quality and how the quality compares&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-159/biplanar_mapping.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201130044616/https://iquilezles.org/www/articles/biplanar/biplanar.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cyanilux.com/tutorials/depth/&#34; target=&#34;_blank&#34; id=&#34;Depth&#34;&gt;Depth&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a very detailed article about depth buffers&lt;/li&gt;
&lt;li&gt;focusing on Unity, but most of the information is engine agnostic&lt;/li&gt;
&lt;li&gt;explains the different spaces, storage formats, and precision considerations&lt;/li&gt;
&lt;li&gt;additionally shows how to calculate world space positions from the depth buffer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-159/depth.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201125155117/https://www.cyanilux.com/tutorials/depth/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=c1JThTu6-Ok&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Endless Fields of Grass in URP with a Compute Shader! | Unity 2020.1&#34;&gt;[video] Endless Fields of Grass in URP with a Compute Shader! | Unity 2020.1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A Unity video tutorial that explains how to generate grass meshes using Compute shaders&lt;/li&gt;
&lt;li&gt;covers the setup, mesh generation, and LOD selection&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-159/compute_grass.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2020/11/25/multiple-importance-sampling-in-1d/&#34; target=&#34;_blank&#34; id=&#34;Multiple Importance Sampling in 1D&#34;&gt;Multiple Importance Sampling in 1D&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how Multiple Importance Sampling in 1D is used to improve the convergence of stochastic algorithms&lt;/li&gt;
&lt;li&gt;presents multiple experiments and shows how different techniques can reduce the sampling error&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-159/importance_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201129135715/https://blog.demofox.org/2020/11/25/multiple-importance-sampling-in-1d/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://c0de517e.blogspot.com/2020/11/baking-realistic-renderer-from-scratch.html&#34; target=&#34;_blank&#34; id=&#34;Baking a Realistic Renderer from Scratch and other resources for Beginners in Computer Graphics&#34;&gt;Baking a Realistic Renderer from Scratch and other resources for Beginners in Computer Graphics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of resources (books, talks, websites) the author recommends for beginners to get started with graphics programming&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-159/graphics_beginner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201127204459/http://c0de517e.blogspot.com/2020/11/baking-realistic-renderer-from-scratch.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/videos/amd-rdna-2-directx-variable-rate-shading/&#34; target=&#34;_blank&#34; id=&#34;DirectX 12 Ultimate - Variable Rate Shading&#34;&gt;DirectX 12 Ultimate - Variable Rate Shading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation provides an overview of Variable Rate Shading (VRS), the different features levels&lt;/li&gt;
&lt;li&gt;provides insights into VRS performance, features that disable VRS, and what bottlenecks will cause VRS to not offer performance improvements&lt;/li&gt;
&lt;li&gt;additionally shows how to integrate the AMD helper library to generate the VRS screenspace map&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-159/vrs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201125165300/https://gpuopen.com/videos/amd-rdna-2-directx-variable-rate-shading/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/GPUOpen-Effects/FidelityFX-Denoiser/blob/master/docs/FFX_Denoiser_Reflection_Technology.pdf&#34; target=&#34;_blank&#34; id=&#34;AMD FidelityFX Denoiser&#34;&gt;AMD FidelityFX Denoiser&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation explains the ray tracing denoising technique developed by AMD&lt;/li&gt;
&lt;li&gt;shows what inputs are used, how the algorithm uses these to decide ray count, and how to use temporal reprojection to further reduce sample counts&lt;/li&gt;
&lt;li&gt;the code for the technique is provided, and the &lt;a href=&#34;https://gpuopen.com/fidelityfx-denoiser/&#34; target=&#34;_blank&#34;&gt;website&lt;/a&gt; includes comparison pictures and images of the intermediate results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-159/denoising.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/73Gyc&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/vulkan-ray-tracing-final-specification-release&#34; target=&#34;_blank&#34; id=&#34;Vulkan Ray Tracing Final Specification Release&#34;&gt;Vulkan Ray Tracing Final Specification Release&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post explains what changes have been made to the Vulkan raytracing extension since the preview specification&lt;/li&gt;
&lt;li&gt;extension has been split into 3 layers (acceleration structure, raytracing shaders states, and ray queries)&lt;/li&gt;
&lt;li&gt;walkthrough of each stage of the extensions&lt;/li&gt;
&lt;li&gt;in contrast to DXR, Vulkan offers the ability to generate acceleration structures on the CPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-159/host_deferred.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201125211430/https://www.khronos.org/blog/vulkan-ray-tracing-final-specification-release&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/vulkan-ray-tracing-best-practices-for-hybrid-rendering&#34; target=&#34;_blank&#34; id=&#34;Exploring ray tracing techniques in Wolfenstein: Youngblood&#34;&gt;Exploring ray tracing techniques in Wolfenstein: Youngblood&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of how Vulkan raytracing has been implemented into Wolfenstein&lt;/li&gt;
&lt;li&gt;provides a brief overview of the different API concepts and how they are used&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-159/wolfenstein.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201123140523/https://www.khronos.org/blog/vulkan-ray-tracing-best-practices-for-hybrid-rendering&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/in-the-works-hlsl-shader-model-6-6/&#34; target=&#34;_blank&#34; id=&#34;In the works: HLSL Shader Model 6.6&#34;&gt;In the works: HLSL Shader Model 6.6&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article contains an overview of the new features that will be included in shader model 6.6&lt;/li&gt;
&lt;li&gt;64-bit Integer Atomic Operations, Dynamic Resource Binding, Compute Shader Derivatives and Samples, Packed 8-Bit Operations and variable Wave Size&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-159/d3d12.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201126122924/https://devblogs.microsoft.com/directx/in-the-works-hlsl-shader-model-6-6/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://atyuwen.github.io/&#34; target=&#34;_blank&#34;&gt;atyuwen&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 158 — November 22, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-158/</link>
      <pubDate>Sun, 22 Nov 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-158/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.froggi.es/d3d12-apitrace-capture-and-replay/&#34; target=&#34;_blank&#34; id=&#34;D3D12 APITrace - Capture and Replay&#34;&gt;D3D12 APITrace - Capture and Replay&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog posts describes how APITrace can intercept D3D12 applications (even complex AAA games such as Assassin&amp;rsquo;s Creed Valhalla)&lt;/li&gt;
&lt;li&gt;presents how the layer deals with Persistent Memory Mapping, Capturing and Replaying Descriptors, Fences, and Synchronization&lt;/li&gt;
&lt;li&gt;additional describes what issues are still left unsolved&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-158/ac_valhalla_d3dtrace.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201118012451/https://blog.froggi.es/d3d12-apitrace-capture-and-replay/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=M-0lr6HzjZ4&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Realistic Clouds - Sapiens Devlog 54&#34;&gt;[video] Realistic Clouds - Sapiens Devlog 54&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the dev vlog explains how the 2D billboard based clouds are implemented&lt;/li&gt;
&lt;li&gt;cloud volumes are generated in Blender, directional light information is baked into textures using single color lights along the principal coordinate system axis&lt;/li&gt;
&lt;li&gt;these directions are blended at runtime to integrate into the in-game PBR lighting system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-158/sapiens_clouds.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=GGTTHOpUQDE&amp;amp;t=72s&#34; target=&#34;_blank&#34; id=&#34;[video] Devlog 1: How we built the toon shading | Open Projects&#34;&gt;[video] Devlog 1: How we built the toon shading | Open Projects&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the devlog presents a walkthrough of the implementation of a toon shader&lt;/li&gt;
&lt;li&gt;contains a comparison between a toon shading model and a more realistic model&lt;/li&gt;
&lt;li&gt;the implementation is done using the Unity Universal Render Pipeline (URP) and ShaderGraph&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-158/toon_shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=EB5HiqDl7VE&#34; target=&#34;_blank&#34; id=&#34;[video] Introduction to Compute Shaders in Unity URP! Replace Geometry Shaders | Game Dev Tutorial&#34;&gt;[video] Introduction to Compute Shaders in Unity URP! Replace Geometry Shaders | Game Dev Tutorial&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to take an input mesh and use a compute shader to generate additional geometry&lt;/li&gt;
&lt;li&gt;provides an overview of compute shader concepts, showing the HLSL based implementation and how to integrate it into the Unit rendering pipeline&lt;/li&gt;
&lt;li&gt;additional explains how to use DrawIndirect to draw the results directly from the GPU timeline&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-158/compute_shaders.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gamedevbill.com/top-fire-shader-graphs/&#34; target=&#34;_blank&#34; id=&#34;Top Fire Shader Graphs&#34;&gt;Top Fire Shader Graphs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents three different approaches to archive a fire effect using Unity&lt;/li&gt;
&lt;li&gt;show a sprite-based flipbook effect, procedural shape generation for a toon, and more realistic shape&lt;/li&gt;
&lt;li&gt;the implementation is done in ShaderGraph&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-158/2d_fire_title_wp.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/p3ehu&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://threadreaderapp.com/thread/1326203569335267331.html&#34; target=&#34;_blank&#34; id=&#34;d3d12 - Vulkan&#34;&gt;d3d12 - Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;unrolled Twitter thread presenting an overview of differences between D3D12 and Vulkan&lt;/li&gt;
&lt;li&gt;the aim of the comparison is to be able to support both APIs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-158/vulkan_d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201123061618/https://threadreaderapp.com/thread/1326203569335267331.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-76-20-11-2020/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 76 (20.11.2020)&#34;&gt;Technically Art: Issue 76 (20.11.2020)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-158/technically_art_template_76.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201120172750/https://halisavakis.com/technically-art-issue-76-20-11-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://play.google.com/store/apps/developer?id=Piggybank+Software&#34; target=&#34;_blank&#34;&gt;Denis Gladkiy&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 157 — November 15, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-157/</link>
      <pubDate>Sun, 15 Nov 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-157/</guid>
      <description>&lt;p&gt;Daniel Jones has made a video summary of the articles included in this article available on &lt;a href=&#34;https://www.youtube.com/watch?v=9ugxkpAm2lY&#34; target=&#34;_blank&#34;&gt;Youtube&lt;/a&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1737_cascmdline_-_few_technical_details&#34; target=&#34;_blank&#34; id=&#34;CasCmdLine - Few Technical Details&#34;&gt;CasCmdLine - Few Technical Details&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;brief article that shows how to create a D3D11 device without a window&lt;/li&gt;
&lt;li&gt;presents that the FXC compiler can export compiled shader to a C compatible header&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-157/cas_header.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201116024737/https://asawicki.info/news_1737_cascmdline_-_few_technical_details&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://agraphicsguynotes.com/posts/practical_tips_for_implementing_subsurface_scattering_in_a_ray_tracer/&#34; target=&#34;_blank&#34; id=&#34;Practical Tips for Implementing Subsurface Scattering in a Ray Tracer&#34;&gt;Practical Tips for Implementing Subsurface Scattering in a Ray Tracer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents techniques to improve Subsurface Scattering (SSS) implementation based on the model used in &lt;a href=&#34;https://www.pbrt.org&#34; target=&#34;_blank&#34;&gt;PBRT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;presents a basic overview, how to importance sample the model&lt;/li&gt;
&lt;li&gt;shows several improvements that aim to reduce Fireflies, optimize the implementation&lt;/li&gt;
&lt;li&gt;additionally covers the material system that allows blending between materials that have SSS influence and not&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-157/practical_sss.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201114182716/https://agraphicsguynotes.com/posts/practical_tips_for_implementing_subsurface_scattering_in_a_ray_tracer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lexdev.net/tutorials/case_studies/frostpunk_heatmap.html&#34; target=&#34;_blank&#34; id=&#34;Frostpunk Heatmap&#34;&gt;Frostpunk Heatmap&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity explains how to implement a heat map view to visualize the temperatures in Buildings&lt;/li&gt;
&lt;li&gt;this effect is based on Frostpunk, the shader implemented as compute shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-157/heatmap.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201031225819/https://lexdev.net/tutorials/case_studies/frostpunk_heatmap.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://anki3d.org/resource-uniformity-bindless-access-in-vulkan/&#34; target=&#34;_blank&#34; id=&#34;Resource uniformity &amp;amp; bindless access in Vulkan&#34;&gt;Resource uniformity &amp;amp; bindless access in Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a brief overview of different kinds of array indexing types in shaders&lt;/li&gt;
&lt;li&gt;presents Vulkan caps required for a bindless access pattern&lt;/li&gt;
&lt;li&gt;shows when extra annotations are needed for correct results and how these interact on different hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-157/vulkan_d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201113213623/http://anki3d.org/resource-uniformity-bindless-access-in-vulkan/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2020/11/11/what-is-shader-occupancy-and-why-do-we-care-about-it/&#34; target=&#34;_blank&#34; id=&#34;What is shader occupancy and why do we care about it?&#34;&gt;What is shader occupancy and why do we care about it?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post explains what shader occupancy is and how it connects to vector registers usage&lt;/li&gt;
&lt;li&gt;provides a brief overview of GCN hardware details showing how shader compilers deal with data loading&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-157/occupancy.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201116024948/https://interplayoflight.wordpress.com/2020/11/11/what-is-shader-occupancy-and-why-do-we-care-about-it/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://babylonjs.medium.com/retro-crt-shader-a-post-processing-effect-study-1cb3f783afbc&#34; target=&#34;_blank&#34; id=&#34;Retro CRT Shader — A post processing effect study&#34;&gt;Retro CRT Shader — A post processing effect study&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to implement a CRT rendering effect using GLSL&lt;/li&gt;
&lt;li&gt;implements screen curvature, scanlines, and edge darkening&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-157/crt_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201115025206/https://babylonjs.medium.com/retro-crt-shader-a-post-processing-effect-study-1cb3f783afbc&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://joostdevblog.blogspot.com/2020/11/combining-2d-and-3d-in-blightbounds-vfx.html&#34; target=&#34;_blank&#34; id=&#34;Combining 2D and 3D in Blightbound&amp;#39;s VFX&#34;&gt;Combining 2D and 3D in Blightbound&amp;#39;s VFX&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how the 2D VFX effect has been integrated int the 3D world of Blightbound&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-157/BlightboundVFX.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201106125013/http://joostdevblog.blogspot.com/2020/11/combining-2d-and-3d-in-blightbounds-vfx.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ingowald.blog/2020/11/08/introducing-owl-a-node-graph-abstraction-layer-on-top-of-optix-7/&#34; target=&#34;_blank&#34; id=&#34;Introducing OWL: A Node Graph Abstraction Layer on top of OptiX 7&#34;&gt;Introducing OWL: A Node Graph Abstraction Layer on top of OptiX 7&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;article introduces OWL, an abstraction build on OptiX 7&lt;/li&gt;
&lt;li&gt;presents the difference abstraction difference between OptiX 6 and 7&lt;/li&gt;
&lt;li&gt;shows several projects using it and samples on how to use it&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-157/door_owl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201109162146/https://ingowald.blog/2020/11/08/introducing-owl-a-node-graph-abstraction-layer-on-top-of-optix-7/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://thegamedev.guru/unity-ray-tracing/global-illumination/&#34; target=&#34;_blank&#34; id=&#34;The Bright Side of Ray-Traced Global Illumination in Unity&#34;&gt;The Bright Side of Ray-Traced Global Illumination in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the difference between baked, screen-space rasterization and Ray-traced GI of unity&lt;/li&gt;
&lt;li&gt;shows how many visual influences can be expected from the different techniques&lt;/li&gt;
&lt;li&gt;brief look at the performance of the other techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-157/RayTracedGI.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201116025138/https://thegamedev.guru/unity-ray-tracing/global-illumination/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://miketuritzin.com&#34; target=&#34;_blank&#34;&gt;Mike Turitzin&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 156 — November 8, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-156/</link>
      <pubDate>Sun, 08 Nov 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-156/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.code-spot.co.za/2020/11/04/generating-meshes-procedurally-in-unity/&#34; target=&#34;_blank&#34; id=&#34;Generating meshes procedurally in Unity&#34;&gt;Generating meshes procedurally in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post explains how to generate a procedural mesh&lt;/li&gt;
&lt;li&gt;describes how to approach the development of an algorithm, provides a list of common mistakes&lt;/li&gt;
&lt;li&gt;lists advice on how to debug procedural mesh generation issues&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-156/GeneratedMesh.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201105092706/http://www.code-spot.co.za/2020/11/04/generating-meshes-procedurally-in-unity/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.surveymonkey.com/r/LXKFHCP&#34; target=&#34;_blank&#34; id=&#34;Vulkan Ecosystem &amp;amp; SDK Survey - 2020&#34;&gt;Vulkan Ecosystem &amp;amp; SDK Survey - 2020&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Vulkan survey to gather information about user experience, platform support, and future developments&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-156/VulkanSurvey.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=LaHvayJphdU&#34; target=&#34;_blank&#34; id=&#34;[video] Procedural Water Ripples in Unity using Shader Graph Only&#34;&gt;[video] Procedural Water Ripples in Unity using Shader Graph Only&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a Unity video tutorial that shows how to implement a water ripple effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-156/WaterRipple.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ourmachinery.com/post/linear-algebra-shenanigans-gizmo-repair/&#34; target=&#34;_blank&#34; id=&#34;Linear Algebra Shenanigans: Gizmo Repair&#34;&gt;Linear Algebra Shenanigans: Gizmo Repair&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to resolve issues with movement widget logic&lt;/li&gt;
&lt;li&gt;starts with an explanation of the problematic cases&lt;/li&gt;
&lt;li&gt;shows how extra debug visualization helps to understand the 3D problems to simplify debugging&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-156/GizmoDrawing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201102221304/https://ourmachinery.com/post/linear-algebra-shenanigans-gizmo-repair/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Q45KT0lGd7A&#34; target=&#34;_blank&#34; id=&#34;[video] SIGGRAPH Asia 2020 – Technical Papers Trailer&#34;&gt;[video] SIGGRAPH Asia 2020 – Technical Papers Trailer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of technical papers that will be presented at SIGGRAPH Asia 2020&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-156/TechnicalPapersTrailer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphics.geometrian.com/research/normalize_phong.html&#34; target=&#34;_blank&#34; id=&#34;Normalizing the Phong Specular BRDFs&#34;&gt;Normalizing the Phong Specular BRDFs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an energy normalization derivation of the Phong lighting model&lt;/li&gt;
&lt;li&gt;provides a C++ implementation of the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-156/PhongNormalization.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://geometrian.com/data/research/phong_normalize/CGI2020_ConstantTimeEnergyNormalizationForThePhongSpecularBRDFs.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20200922143447/https://geometrian.com/data/research/phong_normalize/CGI2020_ConstantTimeEnergyNormalizationForThePhongSpecularBRDFs.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201102174942/https://graphics.geometrian.com/research/normalize_phong.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://projectivegeometricalgebra.org&#34; target=&#34;_blank&#34; id=&#34;Projective Geometric Algebra&#34;&gt;Projective Geometric Algebra&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of resources by Eric Lengyel covering geometric algebra (this includes Grassmann algebra)&lt;/li&gt;
&lt;li&gt;mathematical model incorporates many common concepts (including homogeneous coordinates, quaternions) into a consistent model&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-156/ProjectiveGeometry.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201102195512/http://projectivegeometricalgebra.org/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/basics/compute-shaders/&#34; target=&#34;_blank&#34; id=&#34;Compute Shaders Rendering One Million Cubes&#34;&gt;Compute Shaders Rendering One Million Cubes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to use a compute shader to render moving cubes&lt;/li&gt;
&lt;li&gt;explains the basics of compute shaders and presents&lt;/li&gt;
&lt;li&gt;presents how to use the Unity profiler to validate the performance&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-156/gpu-cubes.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201106162456/https://catlikecoding.com/unity/tutorials/basics/compute-shaders/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.collabora.com/news-and-blog/blog/2020/11/06/bringing-near-native-performance-to-zink/&#34; target=&#34;_blank&#34; id=&#34;A summer sprint: bringing near-native performance to Zink&#34;&gt;A summer sprint: bringing near-native performance to Zink&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents an overview of the development progress of Zink(OpenGL on Vulkan layer)&lt;/li&gt;
&lt;li&gt;able to achieve 95% performance of native OpenGL in the Unigine Heaven&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-156/Zink.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201108075806/https://www.collabora.com/news-and-blog/blog/2020/11/06/bringing-near-native-performance-to-zink/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://metalkit.org/&#34; target=&#34;_blank&#34;&gt;Marius Horga&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 155 — November 1, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-155/</link>
      <pubDate>Sun, 01 Nov 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-155/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2020/11/01/adding-support-for-two-level-acceleration-for-raytracing/&#34; target=&#34;_blank&#34; id=&#34;Adding support for two-level acceleration for raytracing&#34;&gt;Adding support for two-level acceleration for raytracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the second part of the blog post series covering raytracing implementation with compute shaders presents the results of splitting the acceleration structure into two levels&lt;/li&gt;
&lt;li&gt;presents an overview of the implementation, performance comparison&lt;/li&gt;
&lt;li&gt;additionally shows that two-level separation provides additional flexibility advantages&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-155/compute_raytracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201102014740/https://interplayoflight.wordpress.com/2020/11/01/adding-support-for-two-level-acceleration-for-raytracing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/khronos-vulkan-working-group-releases-shading-rate-extension-to-increase-rendering-performance-and-quality&#34; target=&#34;_blank&#34; id=&#34;Khronos Vulkan Working Group Releases Shading Rate Extension to Increase Rendering Performance and Quality&#34;&gt;Khronos Vulkan Working Group Releases Shading Rate Extension to Increase Rendering Performance and Quality&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Vulkan extension for Variable Rate Shading (VRS) has been released as &lt;a href=&#34;https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_fragment_shading_rate.html&#34; target=&#34;_blank&#34;&gt;VK_KHR_fragment_shading_rate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;adds the necessary API and SPIR-V extensions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-155/2020-blog-vulkan-shading-rate-extension-example.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201028193118/https://www.khronos.org/blog/khronos-vulkan-working-group-releases-shading-rate-extension-to-increase-rendering-performance-and-quality&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-2010-26-commandlist-descriptor-heap/&#34; target=&#34;_blank&#34; id=&#34;PIX 2010.26  – Updated Command List Execution View &amp;amp; Descriptor Heap Viewer&#34;&gt;PIX 2010.26  – Updated Command List Execution View &amp;amp; Descriptor Heap Viewer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;latest PIX update adds support for visualizing the GPU execution of command list from a single ExecuteCommandLists call&lt;/li&gt;
&lt;li&gt;adds support for showing the resources that belong to each descriptor in a heap&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-155/CommandList1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201102014911/https://devblogs.microsoft.com/pix/pix-2010-26-commandlist-descriptor-heap/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-74-30-10-2020/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 74 (30.10.2020)&#34;&gt;Technically Art: Issue 74 (30.10.2020)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-155/technically_art_template_74.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201102014959/https://halisavakis.com/technically-art-issue-74-30-10-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ingowald.blog/2020/10/26/moana-on-rtx-first-light/&#34; target=&#34;_blank&#34; id=&#34;The Elephant on RTX – First Light. (or: Ray Tracing Disney’s Moana Island using RTX, OptiX, and OWL)&#34;&gt;The Elephant on RTX – First Light. (or: Ray Tracing Disney’s Moana Island using RTX, OptiX, and OWL)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents an overview of his raytracer setup&lt;/li&gt;
&lt;li&gt;explains the problems encountered and the current state&lt;/li&gt;
&lt;li&gt;provides an overview of how to trace the Ptex textures on the GPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-155/disney_moana.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201026232815/https://ingowald.blog/2020/10/26/moana-on-rtx-first-light/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/custom-srp/multiple-cameras/&#34; target=&#34;_blank&#34; id=&#34;Multiple Cameras Camera Blending and Rendering Layers&#34;&gt;Multiple Cameras Camera Blending and Rendering Layers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity article explains how to integrate multiple cameras into a scriptable render pipeline&lt;/li&gt;
&lt;li&gt;shows how to use it for split-screen, overlay camera (including correct blending), and in-game UI&lt;/li&gt;
&lt;li&gt;additionally shows how to filter objects for one viewport&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-155/tutorial-image.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201031172010/https://catlikecoding.com/unity/tutorials/custom-srp/multiple-cameras/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/shader-graph-43026766&#34; target=&#34;_blank&#34; id=&#34;Shader Graph - Stylized Glass&#34;&gt;Shader Graph - Stylized Glass&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the shader tutorial explains how to stylized toon glass shader&lt;/li&gt;
&lt;li&gt;shows the breakthrough of the individual component and what they contribute to the final result&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-155/StylizedGlass.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201102015156/https://www.patreon.com/posts/shader-graph-43026766&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/aortizelguero&#34; target=&#34;_blank&#34;&gt;Angel Ortiz&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 154 — October 25, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-154/</link>
      <pubDate>Sun, 25 Oct 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-154/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.gamasutra.com/blogs/JoostVanDongen/20201022/372121/Screen_Space_Reflections_in_Blightbound.php&#34; target=&#34;_blank&#34; id=&#34;Screen Space Reflections in Blightbound&#34;&gt;Screen Space Reflections in Blightbound&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the articles explains the pitfalls encountered when implementing Screen Space reflections&lt;/li&gt;
&lt;li&gt;discusses special cases for a 2D game and presents what fallback options have been used if the information is not available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-154/blightbound_ssr.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201024151141/https://www.gamasutra.com/blogs/JoostVanDongen/20201022/372121/Screen_Space_Reflections_in_Blightbound.php&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://thegamedev.guru/unity-ray-tracing/ambient-occlusion-rtao/&#34; target=&#34;_blank&#34; id=&#34;The Dark Side Of Ray-Traced Ambient Occlusion (RTAO)&#34;&gt;The Dark Side Of Ray-Traced Ambient Occlusion (RTAO)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an overview of ambient occlusion and what it approximates&lt;/li&gt;
&lt;li&gt;provides interactive examples to show the effect of screen space ambient occlusion&lt;/li&gt;
&lt;li&gt;additionally provides interactive examples to show the impact of different parameters for Ray-Traced Ambient Occlusion&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-154/RTAO.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201026015814/https://thegamedev.guru/unity-ray-tracing/ambient-occlusion-rtao/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-73-23-10-2020/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 73 (23.10.2020)&#34;&gt;Technically Art: Issue 73 (23.10.2020)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-154/technically_art_template_73.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201026015909/https://halisavakis.com/technically-art-issue-73-23-10-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.activision.com/publications/2020-10/raytraced-shadows-in-call-of-duty--modern-warfare&#34; target=&#34;_blank&#34; id=&#34;Raytraced Shadows in Call of Duty: Modern Warfare&#34;&gt;Raytraced Shadows in Call of Duty: Modern Warfare&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation explains how the raytracing for shadows has been implemented into Call of Duty&lt;/li&gt;
&lt;li&gt;covering acceleration structure separation, performance, denoising implementation, and supporting multiple local area lights&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-154/raytracing_shadows.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201022102948/https://research.activision.com/publications/2020-10/raytraced-shadows-in-call-of-duty--modern-warfare&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://jcgt.org/published/0009/03/04/&#34; target=&#34;_blank&#34; id=&#34;Surface Gradient–Based Bump Mapping Framework&#34;&gt;Surface Gradient–Based Bump Mapping Framework&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new framework for layering and compositing of bump maps from different sources&lt;/li&gt;
&lt;li&gt;presents how to use the framework with different techniques, including volumes, decals, dealing with multiple UV sets, etc..&lt;/li&gt;
&lt;li&gt;demo &lt;a href=&#34;https://github.com/mmikk/surfgrad-bump-standalone-demo&#34; target=&#34;_blank&#34;&gt;code&lt;/a&gt; provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-154/pirate_combined.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://jcgt.org/published/0009/03/04/paper.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/save/http://jcgt.org/published/0009/03/04/paper.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201026020231/http://jcgt.org/published/0009/03/04/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://hacksoflife.blogspot.com/2020/10/a-tip-for-hiz-ssr-parametric-t-tracing.html&#34; target=&#34;_blank&#34; id=&#34;A Tip for HiZ SSR - Parametric &amp;#39;t&amp;#39; Tracing&#34;&gt;A Tip for HiZ SSR - Parametric &amp;#39;t&amp;#39; Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how the precision HiZ tracing logic (used for screen space reflection) can be increased&lt;/li&gt;
&lt;li&gt;additionally also makes the technique more generalized&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-154/ssr2.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201026020414/http://hacksoflife.blogspot.com/2020/10/a-tip-for-hiz-ssr-parametric-t-tracing.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://maikklein.github.io/rlsl-update3/&#34; target=&#34;_blank&#34; id=&#34;The future of RLSL&#34;&gt;The future of RLSL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post explains the history of RLSL (Rust Like Shading Language)&lt;/li&gt;
&lt;li&gt;and how rust-gpu is the spiritual successor&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-154/rlsl.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201026020451/http://maikklein.github.io/rlsl-update3/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/EmbarkStudios/rust-gpu/releases/tag/v0.1&#34; target=&#34;_blank&#34; id=&#34;Introducing rust-gpu v0.1&#34;&gt;Introducing rust-gpu v0.1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;First public release of Rust-gpu, a new SPIR-V backend for the Rust&lt;/li&gt;
&lt;li&gt;post explains the motivation, current state, and planned scope&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-154/sky.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201024150025/https://github.com/EmbarkStudios/rust-gpu/releases/tag/v0.1&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1735_a_better_way_to_scalarize_a_shader&#34; target=&#34;_blank&#34; id=&#34;A Better Way to Scalarize a Shader&#34;&gt;A Better Way to Scalarize a Shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a brief overview of scalarization and suggests an alternative approach&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-154/scalarize.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201026020553/https://asawicki.info/news_1735_a_better_way_to_scalarize_a_shader&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/keithoconor&#34; target=&#34;_blank&#34;&gt;Keith O&amp;rsquo;Conor&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 153 — October 18, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-153/</link>
      <pubDate>Sun, 18 Oct 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-153/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.render-blog.com/2020/10/03/gpu-motunui/&#34; target=&#34;_blank&#34; id=&#34;GPU-Motunui&#34;&gt;GPU-Motunui&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post explains the implementation of a path tracer that enables the rendering of the Disney Moana island dataset on an RTX 2070&lt;/li&gt;
&lt;li&gt;provides an overview of the memory management strategies and scene splitting&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-153/ours-shotCam.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201019041820/https://www.render-blog.com/2020/10/03/gpu-motunui/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cyangamedev.wordpress.com/2020/10/06/watercolour-shader-experiments/&#34; target=&#34;_blank&#34; id=&#34;Watercolour Shader Experiments&#34;&gt;Watercolour Shader Experiments&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity-based effect presents how to create a watercolor rendering style&lt;/li&gt;
&lt;li&gt;uses a combination of object shaders, decal effects, and fullscreen post-processing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-153/Watercolour.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201019041849/https://cyangamedev.wordpress.com/2020/10/06/watercolour-shader-experiments/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.shahinrabbani.ca/torch2pd.html&#34; target=&#34;_blank&#34; id=&#34;Fast Eulerian Fluid Simulation In Games Using Poisson Filters&#34;&gt;Fast Eulerian Fluid Simulation In Games Using Poisson Filters&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the research presents a 2D fluid simulation in a 3D scene used to generate fire effects&lt;/li&gt;
&lt;li&gt;explains separable Poisson filters that are used to fluid simulations&lt;/li&gt;
&lt;li&gt;the demo video shows the technique interact within the 3D world to respond to wind, collision, and other forces&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-153/fire_bunny.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201019041921/https://www.shahinrabbani.ca/torch2pd.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gamedevbill.com/geometry-shaders-in-urp/&#34; target=&#34;_blank&#34; id=&#34;Geometry Shaders in URP&#34;&gt;Geometry Shaders in URP&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial provides a brief overview of the rendering pipeline&lt;/li&gt;
&lt;li&gt;provides an overview of vertex/geometry/pixel shaders&lt;/li&gt;
&lt;li&gt;presents how to use the geometry shader to generate normals using a cube to sphere morph as an example&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-153/fixed-normals.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201019041955/https://gamedevbill.com/geometry-shaders-in-urp/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gamedevbill.com/hsv-shader-graph/&#34; target=&#34;_blank&#34; id=&#34;HSV Shader Graph – Hue Saturation Value&#34;&gt;HSV Shader Graph – Hue Saturation Value&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial explains HSV color space and presents how to implement conversion&lt;/li&gt;
&lt;li&gt;an example implementation is accomplished using Unity shader graph&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-153/color_picker_labeled.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201019042053/https://gamedevbill.com/hsv-shader-graph/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://smeenk.com/blowing-bubbles-with-shader-graph/&#34; target=&#34;_blank&#34; id=&#34;Blowing bubbles with Shader Graph&#34;&gt;Blowing bubbles with Shader Graph&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to implement the rendering of a soap bubble in Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-153/soapbubble.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201019042612/https://smeenk.com/blowing-bubbles-with-shader-graph/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=NQ5Dllbxbz4&#34; target=&#34;_blank&#34; id=&#34;[Video] Vertex animation textures, beanbags and boneless animations&#34;&gt;[Video] Vertex animation textures, beanbags and boneless animations&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The video tutorial explains how vertex animations can be stored and played back from textures&lt;/li&gt;
&lt;li&gt;shows how to export animations from blender&lt;/li&gt;
&lt;li&gt;describes how to use the exported data inside of a Godot shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-153/book_vertex_data.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://jason-blog.jlekstrand.net/2020/10/does-subgroupwave-size-doesnt-matter.html&#34; target=&#34;_blank&#34; id=&#34;Does subgroup/wave size matter?&#34;&gt;Does subgroup/wave size matter?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the articles presents an overview of the GPU execution model, how divergent control flow is handled&lt;/li&gt;
&lt;li&gt;presents a statistical analysis of the relation of control flow and wave sizes&lt;/li&gt;
&lt;li&gt;derives three categories that conditions can be split into&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-153/probability-chart.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201019042707/http://jason-blog.jlekstrand.net/2020/10/does-subgroupwave-size-doesnt-matter.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://nyxtom.dev/2020/10/08/framebuffers/&#34; target=&#34;_blank&#34; id=&#34;Framebuffers, WGPU and Rust&#34;&gt;Framebuffers, WGPU and Rust&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the terms required to understand the initialization of a webGPU application&lt;/li&gt;
&lt;li&gt;shows how to call the API from Rust&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-153/rust-by-example-wgpu-clear.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/88lfE&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.jcgt.org/published/0009/03/02/&#34; target=&#34;_blank&#34; id=&#34;Hash Functions for GPU Rendering&#34;&gt;Hash Functions for GPU Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an evaluation of deterministic hash functions&lt;/li&gt;
&lt;li&gt;compares the performance and quality of several techniques&lt;/li&gt;
&lt;li&gt;presents how to extend the dimensionality of hashing functions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-153/hash_functions.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/vkXyz&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://lesleylai.info&#34; target=&#34;_blank&#34;&gt;Lesley Lai&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 152 — October 4, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-152/</link>
      <pubDate>Sun, 04 Oct 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-152/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=Popg7ej4AUU&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Beautiful Results From 30 Years Of Light Transport Simulation!&#34;&gt;[video] Beautiful Results From 30 Years Of Light Transport Simulation!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows the history of light transport techniques and presents how they perform in complex test cases&lt;/li&gt;
&lt;li&gt;leading up to &amp;ldquo;Specular Manifold Sampling for Rendering High-Frequency Caustics and Glints&amp;rdquo; and how it makes aims to make state of the art a more accessible&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-152/light_transport.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://kesen.realtimerendering.com/i3d2020Papers.htm&#34; target=&#34;_blank&#34; id=&#34;I3D 2020&#34;&gt;I3D 2020&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;links to the papers from I3D 2020&lt;/li&gt;
&lt;li&gt;the winners for best-award are &amp;ldquo;Passthrough+: Real-time Stereoscopic View Synthesis for Mobile Mixed Reality&amp;rdquo;, &amp;ldquo;Local Optimization for Robust Signed Distance Field Collision&amp;rdquo; and &amp;ldquo;Real-Time Stochastic Lightcuts&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-152/I3D.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201005135237/http://kesen.realtimerendering.com/i3d2020Papers.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=pCqqiwt3JZ4&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Variance-Aware Path Guiding (SIGGRAPH 2020 presentation)&#34;&gt;[video] Variance-Aware Path Guiding (SIGGRAPH 2020 presentation)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;SIGGRAPH 2020 presentation that provides an overview of Variance-Aware Path Guiding&lt;/li&gt;
&lt;li&gt;paper proposes to treat the problem as an error minimization problem using relMSE ( relative mean squared error )&lt;/li&gt;
&lt;li&gt;shows existing techniques that could be improved from the proposed solution&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-152/path_guiding.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://giordi91.github.io/post/grass/&#34; target=&#34;_blank&#34; id=&#34;Grass Shader&#34;&gt;Grass Shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post discusses the development of a GPU based grass rendering system&lt;/li&gt;
&lt;li&gt;provides an overview of the approach taken and provides videos for the different stages of implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-152/gpu_based_grass.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201005135515/https://giordi91.github.io/post/grass/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=crjbA-_SoFg&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Marvel&amp;#39;s Spider-Man PS5 Ray Tracing Analysis - The Challenge of RT in First-Gen Games&#34;&gt;[video] Marvel&amp;#39;s Spider-Man PS5 Ray Tracing Analysis - The Challenge of RT in First-Gen Games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows the Ray Tracing implementation and uses it to explain the considerations when designing a raytracing solution&lt;/li&gt;
&lt;li&gt;explains the steps raytracing requires and how changes in each step influence the total reflection budget&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-152/ray_tracing_budget.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halfpastyellow.com/blog/2020/10/01/Yet-Another-Stylised-Water-Shader.html&#34; target=&#34;_blank&#34; id=&#34;Yet Another Stylised Water Shader&#34;&gt;Yet Another Stylised Water Shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;breakdown shows how a Stylised Water Shader was implemented in Unity&lt;/li&gt;
&lt;li&gt;the post focuses on the overall look
-presents the different layers of the technique and what these contribute to the final look of the water&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-152/stylized_water.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201005135455/https://halfpastyellow.com/blog/2020/10/01/Yet-Another-Stylised-Water-Shader.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arxiv.org/abs/2009.10796&#34; target=&#34;_blank&#34; id=&#34;Scaling Probe-Based Real-Time Dynamic Global Illumination for Production&#34;&gt;Scaling Probe-Based Real-Time Dynamic Global Illumination for Production&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents extensions to the &lt;a href=&#34;http://jcgt.org/published/0008/02/01/&#34; target=&#34;_blank&#34;&gt;probe based irradiance-field-with-visibility
representation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;These extensions include a self-shadow bias, introduction of heuristics to speed transitions, re-use for recursive glossy
reflection, probe state machines as well as multiresolution cascaded volumes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-152/dynamic_gi.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.youtube.com/watch?v=vbJ2aNI94Ho&#34; style=&#34;color:white;&#34;&gt;video &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201005135522/https://arxiv.org/abs/2009.10796&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://simonstechblog.blogspot.com/2020/09/srgbacescg-luminance-comparison.html&#34; target=&#34;_blank&#34; id=&#34;sRGB/ACEScg Luminance Comparison&#34;&gt;sRGB/ACEScg Luminance Comparison&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post  presents a comparison between the usage of different color spaces on the results of path tracing&lt;/li&gt;
&lt;li&gt;compare Rec709 and ACEScg color space, providing the mathematical approximations for the color conversions required&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-152/color_ACEScg.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201005135524/http://simonstechblog.blogspot.com/2020/09/srgbacescg-luminance-comparison.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/custom-srp/color-grading/&#34; target=&#34;_blank&#34; id=&#34;Color Grading Playing with Colors&#34;&gt;Color Grading Playing with Colors&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the 13ths part of the scriptable render pipeline tutorial explains how to add color grading to the Unity pipeline&lt;/li&gt;
&lt;li&gt;presents several techniques to adjust the visual look of the scene&lt;/li&gt;
&lt;li&gt;shows different color space, how to convert them, and optimize the conversion steps with LUTs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-152/color_grading_tutorial.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200930061108/https://catlikecoding.com/unity/tutorials/custom-srp/color-grading/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1733_system_value_semantics_in_compute_shaders_-_cheat_sheet&#34; target=&#34;_blank&#34; id=&#34;System Value Semantics in Compute Shaders - Cheat Sheet&#34;&gt;System Value Semantics in Compute Shaders - Cheat Sheet&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a table of HLSL and GLSL compute shader semantics and how they the meanings maps between local and global references&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-152/sematics_table.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201005135603/https://asawicki.info/news_1733_system_value_semantics_in_compute_shaders_-_cheat_sheet&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/using_rdp_2-1/&#34; target=&#34;_blank&#34; id=&#34;New Tutorial – Unified Radeon™ GPU Profiler and Radeon™ Memory Visualizer usage with Radeon™ Developer Panel 2.1&#34;&gt;New Tutorial – Unified Radeon™ GPU Profiler and Radeon™ Memory Visualizer usage with Radeon™ Developer Panel 2.1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tutorial explains the new unified AMD interface for the GPU Profiler Memory Visualizer&lt;/li&gt;
&lt;li&gt;shows how to use the different workflows&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-152/RDP_Remote_Connection_V3.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20201005135234/https://gpuopen.com/learn/using_rdp_2-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/adalbertobruno/&#34; target=&#34;_blank&#34;&gt;Adalberto Bruno&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 151 — September 27, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-151/</link>
      <pubDate>Sun, 27 Sep 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-151/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/porting-detroit-1/&#34; target=&#34;_blank&#34; id=&#34;Porting detroit: become human from playstation® 4 to pc – part 1&#34;&gt;Porting detroit: become human from playstation® 4 to pc – part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post explains the experiences on porting the game from PS4 to PC using Vulkan&lt;/li&gt;
&lt;li&gt;part 1 of 3 focuses on optimize shader pipeline compilation  and descriptor allocation&lt;/li&gt;
&lt;li&gt;the descriptor allocation is based around dynamic indexing into large arrays for each resource type&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/detroit_img1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200922233844/https://gpuopen.com/learn/porting-detroit-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/porting-detroit-2/&#34; target=&#34;_blank&#34; id=&#34;Porting detroit: become human from playstation® 4 to pc – part 2&#34;&gt;Porting detroit: become human from playstation® 4 to pc – part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part two of the series provides on porting Detroit: become human offers an overview of indexing considerations using the VK_EXT_descriptor_indexing extension&lt;/li&gt;
&lt;li&gt;shows the AMD ISA disassembly related to sampling textures and how much extra work is required when texture indexing is not uniform&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/QD-1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200928053657/https://gpuopen.com/learn/porting-detroit-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/porting-detroit-3/&#34; target=&#34;_blank&#34; id=&#34;Porting detroit: become human from playstation® 4 to pc – part 3&#34;&gt;Porting detroit: become human from playstation® 4 to pc – part 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the last part of the series briefly explains how they used scalarization to optimize shader, split command list recording onto multiple threads&lt;/li&gt;
&lt;li&gt;looks at memory management in more detail, detailing the AMD libraries and tools available for memory management&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/detroit_img6.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200928053546/https://gpuopen.com/learn/porting-detroit-3/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@shahriyarshahrabi/making-a-real-time-stylized-sword-aura-effect-with-shaders-7af5e89f8f65&#34; target=&#34;_blank&#34; id=&#34;Making a Real Time Stylized Sword Aura Effect with Shaders&#34;&gt;Making a Real Time Stylized Sword Aura Effect with Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author explains his approach for the design of an aurora shader challenge&lt;/li&gt;
&lt;li&gt;provides an illustrated walk through how to start from a simple effect and incrementally improve towards the expected look&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/sword_aurora.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/ltb8Y&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ourmachinery.com/post/borderland-part-3-selection-highlighting/&#34; target=&#34;_blank&#34; id=&#34;Borderland between Rendering and Editor — Part 3: Selection Highlighting&#34;&gt;Borderland between Rendering and Editor — Part 3: Selection Highlighting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the articles explains how The Machinery implementing for rendering the outline of selected objects has been archived&lt;/li&gt;
&lt;li&gt;this is implemented as a screenspace effect using the object ID and depth buffer to detect the shape of the objects&lt;/li&gt;
&lt;li&gt;presents how to improve visual stability when TAA is used&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/selection_outline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200928053826/https://ourmachinery.com/post/borderland-part-3-selection-highlighting/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/fighting-fragmentation-vulkan-portability-extension-released-implementations-shipping&#34; target=&#34;_blank&#34; id=&#34;Fighting Fragmentation: Vulkan Portability Extension Released and Implementations Shipping&#34;&gt;Fighting Fragmentation: Vulkan Portability Extension Released and Implementations Shipping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an overview of the different API layering implementations (Vulkan on Metal, D3D11on12, etc..)&lt;/li&gt;
&lt;li&gt;Vulkan Portability Initiative exposes a new extension (VK_KHR_portability_subset) that allows these layers to mark features as unsupported&lt;/li&gt;
&lt;li&gt;progress on updating the conformance testing and device capabilities emulators to make them aware of these constraints&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/2020-blog-vulkan-portability-update-1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200923045324/https://www.khronos.org/blog/fighting-fragmentation-vulkan-portability-extension-released-implementations-shipping&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gamedevbill.com/math-in-art/&#34; target=&#34;_blank&#34; id=&#34;Math in Art&#34;&gt;Math in Art&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;beginner-focused tutorial explains how to store normals, noise, and positional data in textures&lt;/li&gt;
&lt;li&gt;explains what kind of effects can be archived with this data&lt;/li&gt;
&lt;li&gt;the example effects are implemented using ShaderGraph in Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/Color_Title_WP.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/d0jNo&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://linuxreviews.org/Vulkan_Will_Soon_Have_A_Vendor-Neutral_Cross-Platform_Ray-Tracing_API&#34; target=&#34;_blank&#34; id=&#34;Vulkan Will Soon Have A Vendor-Neutral Cross-Platform Ray-Tracing API&#34;&gt;Vulkan Will Soon Have A Vendor-Neutral Cross-Platform Ray-Tracing API&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video presentation from the X.Org Developer Conference provides an overview of the Vulkan vendor-neutral API extension&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/800px-Ray-tracing-explained-by-intel.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200919204802/https://linuxreviews.org/Vulkan_Will_Soon_Have_A_Vendor-Neutral_Cross-Platform_Ray-Tracing_API&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-speaking-challenge-1-retro-shaders/&#34; target=&#34;_blank&#34; id=&#34;Technically Speaking Challenge 1: Retro Shaders&#34;&gt;Technically Speaking Challenge 1: Retro Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection all entries for a tech art challenge with the theme Retro shaders&lt;/li&gt;
&lt;li&gt;the entries show a large variety of effects and implementations using different engines&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/TechnicallySpeakingChallenge_1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/Fqe9M&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://anteru.net/blog/2020/five-years-of-gpu-db/&#34; target=&#34;_blank&#34; id=&#34;Five years of GPU DB&#34;&gt;Five years of GPU DB&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents a look back at the last 5 years of the &lt;a href=&#34;https://db.thegpu.guru&#34; target=&#34;_blank&#34;&gt;GpuDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;a useful website to gather information about different GPUs and compare them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/GpuDB.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200928054634/https://anteru.net/blog/2020/five-years-of-gpu-db/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.oculus.com/blog/loads-stores-passes-and-advanced-gpu-pipelines/&#34; target=&#34;_blank&#34; id=&#34;Loads, Stores, Passes, and Advanced GPU Pipelines&#34;&gt;Loads, Stores, Passes, and Advanced GPU Pipelines&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the basic of the tiled GPU architectures used on mobile&lt;/li&gt;
&lt;li&gt;uses this information to explain the importance of using the correct load and store operations for Vulkan render passes&lt;/li&gt;
&lt;li&gt;additonally covers foveated rendering extension and how to structure rendering with multiple render passes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/vulkan_load_op.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://metalbyexample.com/&#34; target=&#34;_blank&#34;&gt;Warren Moore&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 150 — September 20, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-150/</link>
      <pubDate>Sun, 20 Sep 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-150/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=WMZ_Jpz4iFI&#34; target=&#34;_blank&#34; id=&#34;The Last of Us Part II, material blending, the SDF of a plane.&#34;&gt;The Last of Us Part II, material blending, the SDF of a plane.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains how to implement a rust effect on objects that intersect with a water plane&lt;/li&gt;
&lt;li&gt;describes how to calculate the distance between a point and a plane&lt;/li&gt;
&lt;li&gt;implemented using the Godot engine&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-150/sdf_blend.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.gamasutra.com/blogs/JulianColbus/20200916/370201/Rules_for_a_FutureProof_2D_Render_Order.php&#34; target=&#34;_blank&#34; id=&#34;Rules for a Future-Proof 2D Render Order&#34;&gt;Rules for a Future-Proof 2D Render Order&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the sorting, rendering layer design for a 2D game&lt;/li&gt;
&lt;li&gt;implemented using Unity&lt;/li&gt;
&lt;li&gt;sorting layers also interact with how the dynamic 2D lights interact with the sprites&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-150/render-order-all-layers.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/5Z8pF&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/write-up-vhs-image-effect/&#34; target=&#34;_blank&#34; id=&#34;Write-up: VHS Image Effect&#34;&gt;Write-up: VHS Image Effect&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;post discusses a shader approach to implement a VHS effect using Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-150/vhs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/3UOoh&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=OdbVCvPjRGg&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;Building WebGPU with Rust&#34;&gt;Building WebGPU with Rust&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk provides an overview of WebGPU and provides an overview of the implementation using Rust&lt;/li&gt;
&lt;li&gt;this implementation is used by Firefox&lt;/li&gt;
&lt;li&gt;shows the design considerations for the API, how to use it, and implementation discussions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-150/webgpu_binding.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/toon-lighting-41620461&#34; target=&#34;_blank&#34; id=&#34;Toon Lighting Basics&#34;&gt;Toon Lighting Basics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post explains how to implement a simple Toon Lighting shader using the Amplify Shader Editor inside of Unity&lt;/li&gt;
&lt;li&gt;shows how to configure the effect and use the idea to archive different looks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-150/tonemapping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200915174515/https://www.patreon.com/posts/toon-lighting-41620461&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ronja-tutorials.com/2020/09/16/draw-procedural.html&#34; target=&#34;_blank&#34; id=&#34;Graphics.DrawProcedural&#34;&gt;Graphics.DrawProcedural&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial shows how to generate mesh data on compute shaders and draw them from the GPU without a CPU roundtrip&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-150/draw_procedural.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/gqKwB&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/wp-content/uploads/2020/09/Final_LunarG_Guide_to_Vulkan-Synchronization_Validation_08_20.pdf&#34; target=&#34;_blank&#34; id=&#34;Guide to Vulkan Synchronization Validation&#34;&gt;Guide to Vulkan Synchronization Validation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this guide explains how to use the Vulkan Synchronization Validation layer&lt;/li&gt;
&lt;li&gt;shows what kind of problems it can detect, how to debug these issues, and explain how to understand the messages&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-150/lunarg_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/jyJyG&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/capturinggpuwork/&#34; target=&#34;_blank&#34; id=&#34;Capturing GPU Work&#34;&gt;Capturing GPU Work&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog posts explains how PIX for windows captures work&lt;/li&gt;
&lt;li&gt;provides insights into how the focus has shifted from API focused recording to GPU work recording&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-150/GpuCapture_OutersInners.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/FLlRB&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gamedevbill.com/heat-haze-shader-graph/&#34; target=&#34;_blank&#34; id=&#34;Heat Haze Shader Graph How-To&#34;&gt;Heat Haze Shader Graph How-To&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to implement a heat haze screenspace effect for a 2D game using Unity&lt;/li&gt;
&lt;li&gt;implementation is done using Shader Graph&lt;/li&gt;
&lt;li&gt;a video version of the tutorial is available too&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-150/Haze_Title.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/ERaEx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/radeon-gpu-profiler-1-8-released/&#34; target=&#34;_blank&#34; id=&#34;Radeon™ GPU Profiler 1.8 released&#34;&gt;Radeon™ GPU Profiler 1.8 released&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;article shows the new Instruction Timing, Theoretical occupancy, and UI improvements in the latest version&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-150/amd_profiler.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/03MXs&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/nvidia-announces-nsight-graphics-2020-5/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Announces Nsight Graphics 2020.5&#34;&gt;NVIDIA Announces Nsight Graphics 2020.5&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new release adds support for NVIDIA Ampere microarchitecture&lt;/li&gt;
&lt;li&gt;support for the Vulkan added to the Shader Profiler (including raytracing)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-150/nsights.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/FA6AS&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/error-reporting-improvements-for-validation-layers/&#34; target=&#34;_blank&#34; id=&#34;Error Reporting Improvements for Vulkan Validation Layers&#34;&gt;Error Reporting Improvements for Vulkan Validation Layers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Vulkan validation layer has been updated to include additional and improved validation messages&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-150/vulkan_error_reporting.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/Uu5OW&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://igg.unistra.fr/People/chermain/real_time_glint/&#34; target=&#34;_blank&#34; id=&#34;Procedural Physically based BRDF for Real-Time Rendering of Glints&#34;&gt;Procedural Physically based BRDF for Real-Time Rendering of Glints&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a physically-based model for the realtime rendering of sparkling materials&lt;/li&gt;
&lt;li&gt;the implementation uses a pre-computed BRDF dictionary of ~390KB size&lt;/li&gt;
&lt;li&gt;precomputation is independent of smoothness, so runtime variations are possible&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-150/glitter_sponza.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/LQ4E2&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/michael-riegger-33b55a11/&#34; target=&#34;_blank&#34;&gt;Michael Riegger&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 149 — September 13, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-149/</link>
      <pubDate>Sun, 13 Sep 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-149/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://cmis.rexwe.st&#34; target=&#34;_blank&#34; id=&#34;Continuous Multiple Importance Sampling (SIGGRAPH 2020 Presentation)&#34;&gt;Continuous Multiple Importance Sampling (SIGGRAPH 2020 Presentation)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides a great explanation of Monte Carlo integration importance sampling&lt;/li&gt;
&lt;li&gt;presents how to generalize MIS to a from distinct techniques to a continuum of techniques&lt;/li&gt;
&lt;li&gt;shows how to use the method for path reuse, spectral rendering, and photon planes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-149/cmis.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.youtube.com/watch?v=dxFSwplfdpk&amp;amp;feature=emb_title&#34; style=&#34;color:white;&#34;&gt;video &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200914002401/http://cmis.rexwe.st/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.realtimerendering.com/blog/i3d-2020-starts-this-monday/&#34; target=&#34;_blank&#34; id=&#34;I3D 2020 starts this Monday&#34;&gt;I3D 2020 starts this Monday&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;summary on how to take part and find the content of I3D 2020&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-149/i3d_poster_space.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200914001630/http://www.realtimerendering.com/blog/i3d-2020-starts-this-monday/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/debugging-d3d11-apps-using-d3d11on12/&#34; target=&#34;_blank&#34; id=&#34;Debugging D3D11 apps using D3D11On12&#34;&gt;Debugging D3D11 apps using D3D11On12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of debugging D3D11 applications using Pix for Windows&lt;/li&gt;
&lt;li&gt;shows what is supported and what limitations exist&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-149/pix_d3d11.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200914001632/https://devblogs.microsoft.com/pix/debugging-d3d11-apps-using-d3d11on12/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://cbloomrants.blogspot.com/2020/09/topics-in-quantization-for-games.html&#34; target=&#34;_blank&#34; id=&#34;Topics in Quantization for Games&#34;&gt;Topics in Quantization for Games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post discusses a variety of quantization topis to ensure conversion of precision&lt;/li&gt;
&lt;li&gt;GPU based workloads should prefer centered quantization&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-149/quantization_floor_or_centered_1000.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/rYOmR&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-67-11-09-2020/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 67 (11.09.2020)&#34;&gt;Technically Art: Issue 67 (11.09.2020)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-149/technically_art_template_67.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200914001803/https://halisavakis.com/technically-art-issue-67-11-09-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://amesyta.wordpress.com/2020/09/07/vhs-video-material-tutorial/&#34; target=&#34;_blank&#34; id=&#34;VHS Video Material Tutorial&#34;&gt;VHS Video Material Tutorial&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unreal tutorial explains how to apply a shader effect that converts a video into a VHS style looking video&lt;/li&gt;
&lt;li&gt;presents the walkthrough of the Material Graph&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-149/vrs_screen.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200914001809/https://amesyta.wordpress.com/2020/09/07/vhs-video-material-tutorial/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://computationalsciences.org/publications/haedrich-2020-stormscapes.html&#34; target=&#34;_blank&#34; id=&#34;Stormscapes: Simulating Cloud Dynamics in the Now&#34;&gt;Stormscapes: Simulating Cloud Dynamics in the Now&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the SIGGRAPH Asia 2020 paper presents a cloud simulation with high-level parameters&lt;/li&gt;
&lt;li&gt;the system can simulate cumulus, stratus, and stratocumulus for the formation of dynamic cloud formations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-149/cloud_simulation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200914001830/http://computationalsciences.org/publications/haedrich-2020-stormscapes.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/Jontology&#34; target=&#34;_blank&#34;&gt;Jon Greenberg&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 148 — September 6, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-148/</link>
      <pubDate>Sun, 06 Sep 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-148/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://simoncoenen.com/blog/programming/graphics/DoomEternalStudy.html&#34; target=&#34;_blank&#34; id=&#34;DOOM Eternal - Graphics Study&#34;&gt;DOOM Eternal - Graphics Study&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;in-depth breakdown of the the frame strutcure in Doom eternal&lt;/li&gt;
&lt;li&gt;major changes since Doom to 2016 include mesh decals, new GPU based light, decal culling and dynamic draw call merging&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-148/doom_eternal_breakdown.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/9zU2p&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wickedengine.net/2020/09/06/variable-rate-shading-first-impressions/&#34; target=&#34;_blank&#34; id=&#34;Variable Rate Shading: first impressions&#34;&gt;Variable Rate Shading: first impressions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an overview of VRS modes, presents some possible use cases and performance numbers from the first tests in Wicket Engine&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-148/vrs_classification.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200907045759/https://wickedengine.net/2020/09/06/variable-rate-shading-first-impressions/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2020/08/30/compressing-pbr-texture-sets-with-sparsity-and-dictionary-learning/&#34; target=&#34;_blank&#34; id=&#34;Compressing PBR material texture sets with sparsity and k-SVD dictionary learning&#34;&gt;Compressing PBR material texture sets with sparsity and k-SVD dictionary learning&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an introduction to sparse and dictionary learning methods and applies these to try to archive better compression for full PBR texture set&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-148/dictionary_learning.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200831182826/https://bartwronski.com/2020/08/30/compressing-pbr-texture-sets-with-sparsity-and-dictionary-learning/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://themaister.net/blog/2020/08/30/compressed-gpu-texture-formats-a-review-and-compute-shader-decoders-part-2/&#34; target=&#34;_blank&#34; id=&#34;Compressed GPU texture formats – a review and compute shader decoders – part 2&#34;&gt;Compressed GPU texture formats – a review and compute shader decoders – part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this part of the series presents a discussion of how the BC6 and BC7 format is implemented&lt;/li&gt;
&lt;li&gt;Additionally provides the necessary code to decode the format in a shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-148/bc7_comp.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200907045903/https://themaister.net/blog/2020/08/30/compressed-gpu-texture-formats-a-review-and-compute-shader-decoders-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/gpu-captures-how-we-support-placed-and-reserved-resources/&#34; target=&#34;_blank&#34; id=&#34;GPU Captures: How we support placed and reserved resources&#34;&gt;GPU Captures: How we support placed and reserved resources&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post explains how PIX for Windows tracks placed and reserved resources&lt;/li&gt;
&lt;li&gt;uses active/inactive state tracking and presents what limitations exist
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-148/pixscreenshot.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/e2Iif&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/nsight-the-most-important-ampere-tools-in-your-utility-belt/&#34; target=&#34;_blank&#34; id=&#34;Nsight: The Most Important Ampere Tools In Your Utility Belt&#34;&gt;Nsight: The Most Important Ampere Tools In Your Utility Belt&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the Nvidia tools available and how they can be combined to improve application performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-148/NSIght_DevNews.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200903210832/https://news.developer.nvidia.com/nsight-the-most-important-ampere-tools-in-your-utility-belt/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://outerloop.tumblr.com/post/628004985846792192/porting-falcon-age-to-the-oculus-quest&#34; target=&#34;_blank&#34; id=&#34;Porting Falcon Age to the Oculus Quest&#34;&gt;Porting Falcon Age to the Oculus Quest&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a post-mortem view about the kind of changes, optimizations, and quality reductions had to be done to make the game run on the Oculus quest&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-148/falcon_age.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200907045723/https://outerloop.tumblr.com/post/628004985846792192/porting-falcon-age-to-the-oculus-quest&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@shahriyarshahrabi/shader-studies-matrix-effect-3d2ead3a84c5&#34; target=&#34;_blank&#34; id=&#34;Shader Studies: Matrix Effect&#34;&gt;Shader Studies: Matrix Effect&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a detailed breakdown of a shader that implements a matrix style effect that can be applied via tri-planar mapping to every surface&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-148/matrix_effect.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/6oG8l&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-66-04-09-2020/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 66 (04.09.2020)&#34;&gt;Technically Art: Issue 66 (04.09.2020)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-148/technically_art_template_66.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200907050116/https://halisavakis.com/technically-art-issue-66-04-09-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.oculus.com/blog/renderdoc-for-oculus/&#34; target=&#34;_blank&#34; id=&#34;RenderDoc for Oculus&#34;&gt;RenderDoc for Oculus&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post describes the custom Occulus fork of RenderDoc that adds support for a profiling mode&lt;/li&gt;
&lt;li&gt;this mode offers a Tile Timeline view that allows investigation of tiled GPU performance&lt;/li&gt;
&lt;li&gt;additionally also ads a Vulkan draw call metrics collector
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-148/render_doc_occulus.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200907050246/https://developer.oculus.com/blog/renderdoc-for-oculus/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://trevord.black&#34; target=&#34;_blank&#34;&gt;Trevor Black&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 147 — August 30, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-147/</link>
      <pubDate>Sun, 30 Aug 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-147/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.selfshadow.com/publications/s2020-shading-course/&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2020 Course: Physically Based Shading in Theory and Practice&#34;&gt;SIGGRAPH 2020 Course: Physically Based Shading in Theory and Practice&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;slides and videos for all course talks are available&lt;/li&gt;
&lt;li&gt;covering Fresnel modeling, MaterialX, Material Composition, Atmospheres system, and Anisotropic shading&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-147/pbs_theory.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200826154209/https://blog.selfshadow.com/publications/s2020-shading-course/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.selfshadow.com/publications/s2020-shading-course/patry/slides/index.html&#34; target=&#34;_blank&#34; id=&#34;Samurai Shading in Ghost of Tsushima&#34;&gt;Samurai Shading in Ghost of Tsushima&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk discusses the anisotropic specular techniques&lt;/li&gt;
&lt;li&gt;presenting a new  SGGX based filtering approach and fuzz BRDF for use with deferred shading&lt;/li&gt;
&lt;li&gt;shows the importance of directional curvature&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-147/SamuraiShading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/H9Yek&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.gdquest.com/tutorial/godot/3d/optimization-3d/&#34; target=&#34;_blank&#34; id=&#34;Godot - OPTIMIZING A 3D SCENE&#34;&gt;Godot - OPTIMIZING A 3D SCENE&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a guide aimed at beginners with Godot engine that presents an overview of the available counters&lt;/li&gt;
&lt;li&gt;shows how to read the counters and use them to guide the process of optimizing rendering performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-147/godot_monitors.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200831050632/https://www.gdquest.com/tutorial/godot/3d/optimization-3d/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/new-in-directx-feature-level-12_2/&#34; target=&#34;_blank&#34; id=&#34;New in DirectX— Feature Level 12_2&#34;&gt;New in DirectX— Feature Level 12_2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post lists the minimum requirements and optional features for D3D feature level 12_2&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-147/DirectX12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200830132522/https://devblogs.microsoft.com/directx/new-in-directx-feature-level-12_2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@martinRenou/real-time-rendering-of-water-caustics-59cda1d74aa&#34; target=&#34;_blank&#34; id=&#34;Real-time rendering of water caustics&#34;&gt;Real-time rendering of water caustics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a WebGL based technique for caustics rendering&lt;/li&gt;
&lt;li&gt;using a shadow map inspired offscreen target to gather the underwater geometry for intersection testing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-147/caustics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/1FOm9&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-2008-26-new-capture-layer/?s=09&#34; target=&#34;_blank&#34; id=&#34;PIX Release 2008.26 – Our biggest update to GPU captures since 2017&#34;&gt;PIX Release 2008.26 – Our biggest update to GPU captures since 2017&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;blog post provides an overview the PIX for Windows changes&lt;/li&gt;
&lt;li&gt;seen GPU capture improvement up to 57X at capture time, broader API support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-147/pix_bundles.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200831050204/https://devblogs.microsoft.com/pix/pix-2008-26-new-capture-layer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/introducing-the-new-vulkan-configurator-vkconfig/&#34; target=&#34;_blank&#34; id=&#34;Introducing the new Vulkan Configurator (vkconfig)&#34;&gt;Introducing the new Vulkan Configurator (vkconfig)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post contains an overview of the Vulkan Configurator&lt;/li&gt;
&lt;li&gt;provides a demo video and a whitepaper&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-147/vkcong-cover-image.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200831050419/https://www.lunarg.com/introducing-the-new-vulkan-configurator-vkconfig/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.realtimerendering.com/blog/seven-things-for-august-27-2020/&#34; target=&#34;_blank&#34; id=&#34;Seven Things for August 27, 2020&#34;&gt;Seven Things for August 27, 2020&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of resources including a link to open Access Siggraph, interactive article on photogrammetry and history of the USD file format&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-147/seven_things.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200831051317/http://www.realtimerendering.com/blog/seven-things-for-august-27-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.dropbox.com/s/89pvx9obhv6m0pk/High%20Quality,%20High%20Performance%20Graphics%20in%20Filament%20%28Handout%29.pdf?dl=0&#34; target=&#34;_blank&#34; id=&#34;High Quality, High Performance Graphics in Filament&#34;&gt;High Quality, High Performance Graphics in Filament&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;how to take advantage of tiling GPU architecture and enable the use of fp16 math&lt;/li&gt;
&lt;li&gt;cloth shading, reduction of energy loss for rough metals, multi-bounce AO&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-147/filament.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/OfG1L&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zero-radiance.github.io/post/z-buffer/&#34; target=&#34;_blank&#34; id=&#34;Quantitative Analysis of Z-Buffer Precision&#34;&gt;Quantitative Analysis of Z-Buffer Precision&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog posts present an analysis of depth buffer precision&lt;/li&gt;
&lt;li&gt;investigates reversed-z with a fixed far plane as well as an infinite projection far plane&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-147/depth_log_2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200825144723/https://zero-radiance.github.io/post/z-buffer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shuangz.com/courses/pbdr-course-sg20/&#34; target=&#34;_blank&#34; id=&#34;Physics-Based Differentiable Rendering: A Comprehensive Introduction&#34;&gt;Physics-Based Differentiable Rendering: A Comprehensive Introduction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;SIGGRAPH 2020 course that presents an overview of inverse-rendering techniques that try to solve the problem of reconstructing a scene description given a final rendering image&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-147/inverse_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200831050222/https://shuangz.com/courses/pbdr-course-sg20/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://belcour.github.io/blog/research/publication/2020/08/26/brdf-fresnel-decompo.html&#34; target=&#34;_blank&#34; id=&#34;Bringing an Accurate Fresnel to Real-Time Rendering: a Preintegrable Decomposition&#34;&gt;Bringing an Accurate Fresnel to Real-Time Rendering: a Preintegrable Decomposition&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a new model for Fresnel reflectance that provides a unification of Schlick and Gulbrandsen models with linear properties within realtime constraints&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-147/fresnel.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200831051614/https://belcour.github.io/blog/research/publication/2020/08/26/brdf-fresnel-decompo.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/Autodesk/standard-surface/issues/12?s=09&#34; target=&#34;_blank&#34; id=&#34;Fresnel model #12&#34;&gt;Fresnel model #12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Continued discussion on fresnel shading sparked by the talks of Siggraph 2020 - Physically Based Shading in Theory and Practice course&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-147/fresnel_discussion.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200831051653/https://github.com/Autodesk/standard-surface/issues/12&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://reedbeta.com&#34; target=&#34;_blank&#34;&gt;Nathan Reed&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 146 — August 23, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-146/</link>
      <pubDate>Sun, 23 Aug 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-146/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.mattkeeter.com/projects/siggraph/&#34; target=&#34;_blank&#34; id=&#34;How I turned my side project into a paper at a top graphics conference&#34;&gt;How I turned my side project into a paper at a top graphics conference&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a walkthrough and experiences of getting a paper included in Siggraph 2020&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-146/siggraph_paper.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200822145111/https://www.mattkeeter.com/projects/siggraph/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/KhronosGroup/Vulkan-Guide/blob/master/chapters/robustness.md&#34; target=&#34;_blank&#34; id=&#34;Vulkan - Robustness&#34;&gt;Vulkan - Robustness&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the guide explains how optional robustness features allow Vulkan applications to treat out-of-bounds access as operations with well-defined behavior&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-146/robustness_flow.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/iyl6y&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pharr.org/matt/blog/2020/08/19/pbrt-v4-released.html&#34; target=&#34;_blank&#34; id=&#34;An early release of pbrt-v4 and some notes about pbrt-gpu&#34;&gt;An early release of pbrt-v4 and some notes about pbrt-gpu&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the first release of pbrt-v4, adds new rendering techniques but also adds support for GPU rendering&lt;/li&gt;
&lt;li&gt;10-20x speedup compared to 32-core Threadripper&lt;/li&gt;
&lt;li&gt;the article provides a list of new techniques and link to code walkthrough video&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-146/sanmiguel-courtyard-second.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200824052210/https://pharr.org/matt/blog/2020/08/19/pbrt-v4-released.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://web.engr.oregonstate.edu/~mjb/vulkan/&#34; target=&#34;_blank&#34; id=&#34;Introduction to the Vulkan Computer Graphics API&#34;&gt;Introduction to the Vulkan Computer Graphics API&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Siggraph 2020 course that provides an API overview for basic drawing in Vulkan&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-146/vulkan_intro.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200824052337/http://web.engr.oregonstate.edu/~mjb/vulkan/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://iliaskapouranis.com/2020/08/14/single-pass-stereo-a-study/&#34; target=&#34;_blank&#34; id=&#34;Single Pass Stereo: a study&#34;&gt;Single Pass Stereo: a study&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Single Pass Stereo is a technique that can be used to simultaneously project geometry for the left and right eye in the same pass&lt;/li&gt;
&lt;li&gt;Part 1 discusses the advantages/disadvantages of Single Pass Stereo from a high-level perspective&lt;/li&gt;
&lt;li&gt;the second part presents an in-depth discussion of the problems of SPS&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-146/sps_001.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200824052434/https://iliaskapouranis.com/2020/08/14/single-pass-stereo-a-study/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.selfshadow.com/2020/08/18/siggraph-2020-links/&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2020 Links&#34;&gt;SIGGRAPH 2020 Links&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;growing link collection to resources from Siggraph 2020&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-146/s20_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200824052607/https://blog.selfshadow.com/2020/08/18/siggraph-2020-links/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.iliyan.com/publications/Siggraph2020Course&#34; target=&#34;_blank&#34; id=&#34;Advances in Monte Carlo Rendering: The Legacy of Jaroslav Křivánek&#34;&gt;Advances in Monte Carlo Rendering: The Legacy of Jaroslav Křivánek&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;SIGGRAPH 2020 course that reviews and discusses insights of techniques introduced Jaroslav Křivánek that shaped the research of light transport&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-146/light_transport.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200821212851/http://www.iliyan.com/publications/Siggraph2020Course&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.eugenedeon.com/project/zerovar2020/&#34; target=&#34;_blank&#34; id=&#34;Zero-Variance Theory for Efficient Subsurface Scattering&#34;&gt;Zero-Variance Theory for Efficient Subsurface Scattering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Siggraph 2020 course presents guided sampling techniques that reduce variance to allow faster convergence for Subsurface Scattering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-146/zero_variance_2020_header_image.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200824052745/http://www.eugenedeon.com/project/zerovar2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://createthematrix.blogspot.com/2020/08/path-trace-visualization-part-1.html&#34; target=&#34;_blank&#34; id=&#34;Path Trace Visualization - Part 1&#34;&gt;Path Trace Visualization - Part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to implement a path visualization system for a GPU path tracer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-146/path_trace_debug.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/H9U2O&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/custom-srp/hdr/&#34; target=&#34;_blank&#34; id=&#34;HDR Scattering and Tone Mapping&#34;&gt;HDR Scattering and Tone Mapping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The Unity tutorial explains how to add HDR rendering support to a custom scriptable render pipeline&lt;/li&gt;
&lt;li&gt;including an overview of different Tone Mapping techniques&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-146/hdr-srp.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200818134600/https://catlikecoding.com/unity/tutorials/custom-srp/hdr/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.randygaul.net/2020/08/17/a-primer-on-sokol_gfx-h/&#34; target=&#34;_blank&#34; id=&#34;A Primer on sokol_gfx.h&#34;&gt;A Primer on sokol_gfx.h&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the scope of the sokol_gfx 3D API wrapper&lt;/li&gt;
&lt;li&gt;provides an overview of the architecture and the zero initialization principle&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-146/sokol_triangle.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200824052859/https://www.randygaul.net/2020/08/17/a-primer-on-sokol_gfx-h/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Jhon Adams for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 145 — August 16, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-145/</link>
      <pubDate>Sun, 16 Aug 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-145/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/best-practices-using-nvidia-rtx-ray-tracing/&#34; target=&#34;_blank&#34; id=&#34;Best Practices: Using NVIDIA RTX Ray Tracing&#34;&gt;Best Practices: Using NVIDIA RTX Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an extensive list of best practices for DXR usage&lt;/li&gt;
&lt;li&gt;covers acceleration structures, GPU utilization, memory allocations, handling of non-opaque geometries, binding, performance and pipeline state best practices&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-145/rtx_best_practices.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200817014206/https://developer.nvidia.com/blog/best-practices-using-nvidia-rtx-ray-tracing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://alextardif.com/Bindless.html&#34; target=&#34;_blank&#34; id=&#34;Binding Bindlessly&#34;&gt;Binding Bindlessly&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post explains what the bindless model is&lt;/li&gt;
&lt;li&gt;shows how to use for Textures and how to replace Vertex Layouts&lt;/li&gt;
&lt;li&gt;examples are for D3D12, but links to information for Vulkan is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-145/DXVK.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200812174141/http://alextardif.com/Bindless.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.samsung.com/galaxy-gamedev/gamedev-blog/infinitejet.html&#34; target=&#34;_blank&#34; id=&#34;Jet Set Vulkan : Reflecting on the move to Vulkan&#34;&gt;Jet Set Vulkan : Reflecting on the move to Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a basic overview of how the OpenGL ES based engine was ported to Vulkan&lt;/li&gt;
&lt;li&gt;lists performance issues encountered such as Sparse Indexing, vkQueuePresent blocking and barrier usage for improved throughput&lt;/li&gt;
&lt;li&gt;provides a comparison of CPU, GPU usage with OpenGL and Vulkan&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-145/Infinite_Jets_artwork.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200817014332/https://developer.samsung.com/galaxy-gamedev/gamedev-blog/infinitejet.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@shahriyarshahrabi/procedural-paintings-with-genetic-evolution-algorithm-6838a6e64703&#34; target=&#34;_blank&#34; id=&#34;Procedural Paintings with Genetic Evolution Algorithm&#34;&gt;Procedural Paintings with Genetic Evolution Algorithm&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post explains how the author implemented a precural painting logic using compute shaders&lt;/li&gt;
&lt;li&gt;explains how the algithmn was structrued, discussiong ecoutnered problems and solutions implemented&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-145/1_RGoNfYmy2GyQJW7-VTInyw.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/qQl8B&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://themaister.net/blog/2020/08/12/compressed-gpu-texture-formats-a-review-and-compute-shader-decoders-part-1/&#34; target=&#34;_blank&#34; id=&#34;Compressed GPU texture formats – a review and compute shader decoders – part 1&#34;&gt;Compressed GPU texture formats – a review and compute shader decoders – part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of the DXT and ETC compression formats&lt;/li&gt;
&lt;li&gt;shows how information is compressed and how to decode these formats from a compute shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-145/TextureCompression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200817014543/https://themaister.net/blog/2020/08/12/compressed-gpu-texture-formats-a-review-and-compute-shader-decoders-part-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@berraknil/writing-shaders-in-vs-code-glsl-setup-391948580a9a&#34; target=&#34;_blank&#34; id=&#34;Writing Shaders in VS Code: GLSL Setup&#34;&gt;Writing Shaders in VS Code: GLSL Setup&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;short post presenting how to setup VSCode to allow GLSL shader iteration&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-145/VsCodeShaders.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/n9zYv&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/rendering-perfect-reflections-and-refractions-in-path-traced-games/&#34; target=&#34;_blank&#34; id=&#34;Rendering Perfect Reflections and Refractions in Path-Traced Games&#34;&gt;Rendering Perfect Reflections and Refractions in Path-Traced Games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains primary surface replacement (PSR) and  checkerboarded split frame rendering (CSFR)&lt;/li&gt;
&lt;li&gt;these techniques are presented as a possible solution for high-quality reflections and refractions in a mixed hybrid renderer design that relies on GBuffers for primary rays&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-145/rtx-railgun-trail-quake-2-625x420.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200817014751/https://developer.nvidia.com/blog/rendering-perfect-reflections-and-refractions-in-path-traced-games/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=2dzJZx0yngg&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Torus Knots explained!&#34;&gt;[video] Torus Knots explained!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A video tutorial that explains how to implement a shader to render a torus knot using ShaderToy&lt;/li&gt;
&lt;li&gt;starts by explaining the foundational math followed by the shader implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-145/torus.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://erfan-ahmadi.github.io/blog/Yugen/RenderTargets&#34; target=&#34;_blank&#34; id=&#34;Render Target Abstraction&#34;&gt;Render Target Abstraction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the different render target requirements for D3D12 and Vulkan and presents 4 alternative solutions to design an abstraction&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-145/renderpass.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200817014907/https://erfan-ahmadi.github.io/blog/Yugen/RenderTargets&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/goodbadwolf/&#34; target=&#34;_blank&#34;&gt;Manish Mathai&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 144 — August 9, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-144/</link>
      <pubDate>Sun, 09 Aug 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-144/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/lunarg-releases-enhanced-vulkan-configurator/&#34; target=&#34;_blank&#34; id=&#34;LunarG Releases Enhanced Vulkan Configurator in new SDKs&#34;&gt;LunarG Releases Enhanced Vulkan Configurator in new SDKs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Vulkan SDK release contains a graphics vkconfig tool to allow users to configure layer settings&lt;/li&gt;
&lt;li&gt;can be enabled to control which layers are active, filter error messages, etc&lt;/li&gt;
&lt;li&gt;the SDK now also contains Vulkan Synchronization validation and distributes the DXC compiler for PC, Mac, and Linux&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-144/vkvalidator.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200810045916/https://www.lunarg.com/lunarg-releases-enhanced-vulkan-configurator/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cyangamedev.wordpress.com/2020/08/04/fire-shader-breakdown/&#34; target=&#34;_blank&#34; id=&#34;Fire Shader Breakdown&#34;&gt;Fire Shader Breakdown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorials show how to implement a fire effect using a camera facing quad with shader based noise to wrap a noise texture to create the look&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-144/fire.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200810050050/https://cyangamedev.wordpress.com/2020/08/04/fire-shader-breakdown/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.cemyuksel.com/research/pointlightattenuation/?s=09&#34; target=&#34;_blank&#34; id=&#34;Nonsingular Point Light Attenuation&#34;&gt;Nonsingular Point Light Attenuation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Siggraph 2020 talk presents the derivation of a point light attenuation that eliminates the singularity as the distance approaches 0&lt;/li&gt;
&lt;li&gt;achieves this by treating point lights as simplified spherical lights&lt;/li&gt;
&lt;li&gt;provides comparisons against other solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-144/bistro_vsl.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://archive.is/sKRIX&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://80.lv/articles/case-study-vector-displacement-mapping-in-real-time?s=09&#34; target=&#34;_blank&#34; id=&#34;Case Study: Vector Displacement Mapping in Real-Time&#34;&gt;Case Study: Vector Displacement Mapping in Real-Time&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows an overview of what vertex displacement mapping techniques are and how to generate data using Mudbox for use with Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-144/vector_displacement.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200810050101/https://80.lv/articles/case-study-vector-displacement-mapping-in-real-time?s=09&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.yosoygames.com.ar/wp/2020/08/a-little-clarification-on-modern-shader-compile-times/?s=09&#34; target=&#34;_blank&#34; id=&#34;A little clarification on modern shader compile times&#34;&gt;A little clarification on modern shader compile times&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article an overview of the complexities with Pipeline management in D3D12 and Vulkan applications&lt;/li&gt;
&lt;li&gt;showing why many AAA release include long shader compilation steps at application startup time&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-144/dxc.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200809202516/https://www.yosoygames.com.ar/wp/2020/08/a-little-clarification-on-modern-shader-compile-times/?s=09&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://canmom.github.io/animation/perspective-theory&#34; target=&#34;_blank&#34; id=&#34;Perspective! 1: theory side&#34;&gt;Perspective! 1: theory side&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows the theory of perspective projects and discuses perspective distortion&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-144/5-distortions-outside.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200809202636/https://canmom.github.io/animation/perspective-theory&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gamedevbill.com/full-screen-shaders-in-unity/&#34; target=&#34;_blank&#34; id=&#34;Full Screen Shaders in HDRP, URP, and Built In Renderer&#34;&gt;Full Screen Shaders in HDRP, URP, and Built In Renderer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial shows how to write a simple fullscreen heat haze shader an apply in the different rendering pipelines&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-144/heat_haze.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200809202705/https://gamedevbill.com/full-screen-shaders-in-unity/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zeux.io/2020/08/02/eight-years-at-roblox/&#34; target=&#34;_blank&#34; id=&#34;Eight years at Roblox&#34;&gt;Eight years at Roblox&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides at the authors work of the last 8 years&lt;/li&gt;
&lt;li&gt;this provides a great insight into how large scale engines evolve overtime to solve new requirements and improve&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-144/particle_shadows.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200803224610/https://zeux.io/2020/08/02/eight-years-at-roblox/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-63-07-08-2020/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 63 (07.08.2020)&#34;&gt;Technically Art: Issue 63 (07.08.2020)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-144/technically_art_template_63.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200810050038/https://halisavakis.com/technically-art-issue-63-07-08-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=wOmgLzWAeo8&#34; target=&#34;_blank&#34; id=&#34;[UNITY VFX TUTORIAL] Creating a Stylized Magical Barrier in Unity&#34;&gt;[UNITY VFX TUTORIAL] Creating a Stylized Magical Barrier in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this video tutorial shows how to implement an Overwatch magical shield effect&lt;/li&gt;
&lt;li&gt;a transparent material with pulsating energy effects&lt;/li&gt;
&lt;li&gt;the effect is achieved in Unity using the visual amplify node graph system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-144/overwatch_effect.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Spencer Sherk for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 143 — August 2, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-143/</link>
      <pubDate>Sun, 02 Aug 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-143/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://astralcode.blogspot.com/2020/01/reverse-engineering-rendering-of.html&#34; target=&#34;_blank&#34; id=&#34;Reverse engineering the rendering of The Witcher 3, part 20 - light shafts&#34;&gt;Reverse engineering the rendering of The Witcher 3, part 20 - light shafts&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the in-depth article presents how the light shafts in The Witcher 3 have been implemented&lt;/li&gt;
&lt;li&gt;explains how a radial blur can be applied and provides a shadertoy to showcase the example implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-143/02_after.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://archive.is/vQhw4&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.selfshadow.com/publications/s2020-shading-course/?s=09&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2020 Course: Physically Based Shading in Theory and Practice&#34;&gt;SIGGRAPH 2020 Course: Physically Based Shading in Theory and Practice&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of the SIGGRAPH 2020 PBR course&lt;/li&gt;
&lt;li&gt;contains the titles, speakers and abstracts of this year&amp;rsquo;s talks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-143/title@2x.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://archive.is/NSfNd&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ieeexplore.ieee.org/document/9144193&#34; target=&#34;_blank&#34; id=&#34;Systematic Evaluation of the Quality Benefits of Spatiotemporal Sample Reprojection in Real-Time Stereoscopic Path Tracing&#34;&gt;Systematic Evaluation of the Quality Benefits of Spatiotemporal Sample Reprojection in Real-Time Stereoscopic Path Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an evaluation of what kind of gains can be achieved with temporal reprojection in a path tracer setting&lt;/li&gt;
&lt;li&gt;uses an SSIM (structural
similarity index ) metric to relate spatially and temporally reprojected path traced image to a purely path traced image with similar quality&lt;/li&gt;
&lt;li&gt;provides data for multiple scenes and sample counts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-143/reprojection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://archive.is/1Jz0A&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-62-31-07-2020/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 62 (31.07.2020)&#34;&gt;Technically Art: Issue 62 (31.07.2020)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-143/ta_62.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200803070331/https://halisavakis.com/technically-art-issue-62-31-07-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://blog.lidia-martinez.com/efficiency-tips-spaces-and-transformation-matrices-unity&#34; target=&#34;_blank&#34; id=&#34;Efficiency Tips on Switching Spaces and Transformation Matrices in Unity&#34;&gt;Efficiency Tips on Switching Spaces and Transformation Matrices in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 2 of an article series discussing the mathematical foundation of matrix/vector operations&lt;/li&gt;
&lt;li&gt;presents different methods exposed by Unity and explains differences of the various methods&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-143/matrix.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://archive.is/j0KoT&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/custom-srp/post-processing/&#34; target=&#34;_blank&#34; id=&#34;Custom SRP - Post Processing Bloom&#34;&gt;Custom SRP - Post Processing Bloom&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;next part in a Unity SRP (scriptable render pipeline) tutorial series covering the implementation of a bloom post-processing effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-143/bloom-srp.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200729210453/https://catlikecoding.com/unity/tutorials/custom-srp/post-processing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=kgXeo2SRDd4&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;Oceans with Unity Shader Graph&#34;&gt;Oceans with Unity Shader Graph&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A video tutorial that shows how to implement a stylized ocean shader using Shader Graph in Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-143/ocean.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.realtimerendering.com/blog/seven-things-for-july-30-2020/&#34; target=&#34;_blank&#34; id=&#34;Seven things for July 30, 2020&#34;&gt;Seven things for July 30, 2020&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of 7 compelling links to compute graphics/programming related topics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-143/seven_things.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200803070408/http://www.realtimerendering.com/blog/seven-things-for-july-30-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.beforesandafters.com/2020/07/31/retro-renderman-shading-on-finding-nemo/&#34; target=&#34;_blank&#34; id=&#34;Retro Renderman: shading on Finding Nemo’&#34;&gt;Retro Renderman: shading on Finding Nemo’&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how the corals in finding Nemo have been shaded&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-143/Reef13.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://archive.is/pS2xg&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://monter.handmade.network/blogs/p/7421-engine_work__ddgi_light_probe_depth_data_compression?s=09#23186&#34; target=&#34;_blank&#34; id=&#34;Engine Work: DDGI Light Probe Depth Data Compression&#34;&gt;Engine Work: DDGI Light Probe Depth Data Compression&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a few techniques to compress Dynamic Diffuse Global Illumination probe information&lt;/li&gt;
&lt;li&gt;presented compression reduced the size from 2.4GB into 168MB&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-143/ddgi_after.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://archive.is/JHBKr&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://apoorvaj.io/render-graphs-1/&#34; target=&#34;_blank&#34; id=&#34;Render graphs&#34;&gt;Render graphs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;brief article showing an overview of a render graph API&lt;/li&gt;
&lt;li&gt;discussing the reasons why this kind of architecture could be beneficial&lt;/li&gt;
&lt;li&gt;summary of the goals of the project&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-143/render_graph_bipartite.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://archive.is/YBAYv&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/postgoodism&#34; target=&#34;_blank&#34;&gt;Cort Stratton&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 142 — July 26, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-142/</link>
      <pubDate>Sun, 26 Jul 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-142/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.imgtec.com/blog/vulkan-synchronisation-and-graphics-compute-hazards-part-i/&#34; target=&#34;_blank&#34; id=&#34;Vulkan synchronisation and graphics-compute-graphics hazards: Part I&#34;&gt;Vulkan synchronisation and graphics-compute-graphics hazards: Part I&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of Vulkan barriers and shows how different barriers influence a PowerVR chip&amp;rsquo;s ability to overlap work&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-142/Full-Tune-SingleQueue.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200727044224/https://www.imgtec.com/blog/vulkan-synchronisation-and-graphics-compute-hazards-part-i/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.imgtec.com/blog/vulkan-synchronisation-and-graphics-compute-graphics-hazards-part-2/&#34; target=&#34;_blank&#34; id=&#34;Vulkan synchronisation and graphics-compute-graphics hazards: Part 2&#34;&gt;Vulkan synchronisation and graphics-compute-graphics hazards: Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the second part of the series presents how to overlap work from two consecutive frames by submitting each frame to its own queue&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-142/FullTune-MultiQueue-Theoretic.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200727044404/https://www.imgtec.com/blog/vulkan-synchronisation-and-graphics-compute-graphics-hazards-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2020/07/21/using-embree-generated-bvh-trees-for-gpu-raytracing/&#34; target=&#34;_blank&#34; id=&#34;using embree generated BVH trees for GPU raytracing&#34;&gt;using embree generated BVH trees for GPU raytracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents how to use the Intel Embree library to generate a BVH tree for use with a GPU raytracer&lt;/li&gt;
&lt;li&gt;offers performance and memory comparisons for the different quality modes available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-142/embree.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200727044507/https://interplayoflight.wordpress.com/2020/07/21/using-embree-generated-bvh-trees-for-gpu-raytracing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://beforesandafters.com/2020/07/22/retro-renderman-shading-food-for-ratatouille&#34; target=&#34;_blank&#34; id=&#34;Retro Renderman: shading food for ‘ratatouille’&#34;&gt;Retro Renderman: shading food for ‘ratatouille’&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article present how the food in ‘Ratatouille’ was shaded based on the skin model&lt;/li&gt;
&lt;li&gt;using a subsurface scattering approximation on a voxel grid&lt;/li&gt;
&lt;li&gt;artists were given much control over the final more stylized appearance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-142/Food11.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200727044622/https://beforesandafters.com/2020/07/22/retro-renderman-shading-food-for-ratatouille/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ronja-tutorials.com/2020/07/23/sprite-outlines.html&#34; target=&#34;_blank&#34; id=&#34;Sprite Outlines&#34;&gt;Sprite Outlines&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial explains how to add an outline to a 2D sprite&lt;/li&gt;
&lt;li&gt;implemented using 8 extra texture samples around the shading point&lt;/li&gt;
&lt;li&gt;additional presents a way to make the outline size independent of the sprite size&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-142/sprite_outline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200727044751/https://www.ronja-tutorials.com/2020/07/23/sprite-outlines.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-61-24-07-2020/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 61 (24.07.2020)&#34;&gt;Technically Art: Issue 61 (24.07.2020)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-142/ta_61.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200727044855/https://halisavakis.com/technically-art-issue-61-24-07-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ronja-tutorials.com/2020/07/26/compute-shader.html?s=09&#34; target=&#34;_blank&#34; id=&#34;Compute Shader&#34;&gt;Compute Shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial explains how to create basic compute shaders&lt;/li&gt;
&lt;li&gt;shows how to use a compute shade to generate random positions in a sphere and use these position from the CPU to render meshes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-142/compute_shader_particles.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200727045003/https://www.ronja-tutorials.com/2020/07/26/compute-shader.html?s=09&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cyangamedev.wordpress.com/2020/07/19/custom-vertex-streams/&#34; target=&#34;_blank&#34; id=&#34;Passing Particle System Data into Shadergraph (Custom Vertex Streams)&#34;&gt;Passing Particle System Data into Shadergraph (Custom Vertex Streams)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This Unity tutorial shows how to pass data from the Shuriken Particle System to the particle shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-142/particlesfinal.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200727045049/https://cyangamedev.wordpress.com/2020/07/19/custom-vertex-streams/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://liamhinzman.com/blog/vulkan-fundamentals&#34; target=&#34;_blank&#34; id=&#34;Fundamentals of the Vulkan Graphics API: Why Rendering a Triangle is Complicated&#34;&gt;Fundamentals of the Vulkan Graphics API: Why Rendering a Triangle is Complicated&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a high-level explanation of the Vulkan API concepts required to render a single triangle on the screen&lt;/li&gt;
&lt;li&gt;contains well-documented example implementations to clarify some ideas through code examples&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-142/vkTriangle.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200727045249/https://liamhinzman.com/blog/vulkan-fundamentals&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/sebh/UnrealEngineSkyAtmosphere?s=09&#34; target=&#34;_blank&#34; id=&#34;Unreal Engine Sky Atmosphere Rendering Technique&#34;&gt;Unreal Engine Sky Atmosphere Rendering Technique&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;open source D3D11 implementation of the paper presented at EGSR 2020 &lt;a href=&#34;https://www.youtube.com/watch?v=y-oBGzDCZKI&#34; target=&#34;_blank&#34;&gt;&amp;ldquo;A Scalable and Production Ready Sky and Atmosphere Rendering Technique&amp;rdquo;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-142/atmosphere.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200727045408/https://github.com/sebh/UnrealEngineSkyAtmosphere?s=09&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1731_why_not_use_heterogeneous_multi-gpu?s=09&#34; target=&#34;_blank&#34; id=&#34;Why Not Use Heterogeneous Multi-GPU?&#34;&gt;Why Not Use Heterogeneous Multi-GPU?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog posts list a few possible drawbacks that need to be considered if a mix of dedicated GPU and integrated GPU is supposed to be used in a single application&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-142/multi_gpu.jfif&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200727045600/https://asawicki.info/news_1731_why_not_use_heterogeneous_multi-gpu?s=09&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/quick-game-art-39412122&#34; target=&#34;_blank&#34; id=&#34;Quick Game Art Tip - Sprite/UI Color Mask&#34;&gt;Quick Game Art Tip - Sprite/UI Color Mask&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a small shader example that shows that texture channels can be reserved to allow objects to change color dynamically at runtime&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-142/recolor_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200727045706/https://www.patreon.com/posts/quick-game-art-39412122&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/rrika9&#34; target=&#34;_blank&#34;&gt;Erika&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 141 — July 19, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-141/</link>
      <pubDate>Sun, 19 Jul 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-141/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/optimizing-compute-shaders-for-l2-locality-using-thread-group-id-swizzling/&#34; target=&#34;_blank&#34; id=&#34;Optimizing Compute Shaders for L2 Locality using Thread-Group ID Swizzling&#34;&gt;Optimizing Compute Shaders for L2 Locality using Thread-Group ID Swizzling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to improve performance of fullscreen compute shader passes by tiling thread workloads to take advantage of memory locality&lt;/li&gt;
&lt;li&gt;test cases show an example improvement of 1.47x on memory bound workloads&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-141/improved_tiling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200717070856/https://developer.nvidia.com/blog/optimizing-compute-shaders-for-l2-locality-using-thread-group-id-swizzling/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://twitter.com/fu5ha/status/1283525949741395968&#34; target=&#34;_blank&#34; id=&#34;Art Tips from a Graphics Programmer 1, FRESNEL! &#34;&gt;Art Tips from a Graphics Programmer 1, FRESNEL! &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a twitter thread that visually explains what the Fresnel effect is and how it affects the appearance of different objects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-141/fresnel.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200716000246/https://twitter.com/fu5ha/status/1283525949741395968&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jonmanatee.com/blog/2020/7/3/shadow-move-rendering-in-killer-instinct-season-3html&#34; target=&#34;_blank&#34; id=&#34;Shadow Move Rendering in Killer Instinct: Season 3&#34;&gt;Shadow Move Rendering in Killer Instinct: Season 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post presents how the shadow move technique was implemented in Killer Instinct: Season 3&lt;/li&gt;
&lt;li&gt;the effect uses information from the previous frame in offscreen render targets combined with movement noise, flow maps, and trail renders attached to bones&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-141/ShadowMoveApply.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200720050057/https://www.jonmanatee.com/blog/2020/7/3/shadow-move-rendering-in-killer-instinct-season-3html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.imgtec.com/blog/three-key-techniques-for-improving-mobile-game-graphics-using-pvrtextool/&#34; target=&#34;_blank&#34; id=&#34;Three key techniques for improving mobile game graphics using PVRTexTool&#34;&gt;Three key techniques for improving mobile game graphics using PVRTexTool&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post provides an overview of mipmapping, Colour Bleeding, and pre-multiplied alpha&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-141/mip_maps.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200720045606/https://www.imgtec.com/blog/three-key-techniques-for-improving-mobile-game-graphics-using-pvrtextool/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://80.lv/articles/overview-indexed-material-mapping-tecnique&#34; target=&#34;_blank&#34; id=&#34;Indexed Material Mapping Tecnique&#34;&gt;Indexed Material Mapping Tecnique&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the short blogpost shows an artists material setup that uses a small 16x16 LUT as indirection table into PBR materials&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-141/lut_pbr.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200720045723/https://80.lv/articles/overview-indexed-material-mapping-tecnique&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-60-17-07-2020/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 60 (17.07.2020)&#34;&gt;Technically Art: Issue 60 (17.07.2020)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-141/technically_art_template_60.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200720045812/https://halisavakis.com/technically-art-issue-60-17-07-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@pavlo.muratov/gpu-memory-aliasing-45933681a15e&#34; target=&#34;_blank&#34; id=&#34;GPU Memory Aliasing&#34;&gt;GPU Memory Aliasing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses what memory aliasing exposed from Vulkan and D3D12 is and how it can be used to reduce memory usage&lt;/li&gt;
&lt;li&gt;provides an example implementation of an algorithm that implements a resource aliasing allocator&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-141/memory_aliasing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/XBZVh&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=hhUUb5Op1-4&#34; target=&#34;_blank&#34; id=&#34;[video] HPG 2020 - High-Performance Graphics (Day 1)&#34;&gt;[video] HPG 2020 - High-Performance Graphics (Day 1)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Towards Fully Ray-Traced Games: Addressing System-Level Challenges (Holger Gruen, Intel)&lt;/li&gt;
&lt;li&gt;Generalized Light Portals&lt;/li&gt;
&lt;li&gt;Efficient Adaptive Deferred Shading with Hardware Scatter Tiles&lt;/li&gt;
&lt;li&gt;Post-Render Warp with Late Input Sampling Improves Aiming Under High Latency Conditions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-141/HighPerformanceGraphicsDay1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=-KxMg4wVF7Q&#34; target=&#34;_blank&#34; id=&#34;[video] HPG 2020 - High-Performance Graphics (Day 2)&#34;&gt;[video] HPG 2020 - High-Performance Graphics (Day 2)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Neural Denoising for Path Tracing of Medical Volumetric Data&lt;/li&gt;
&lt;li&gt;High-Performance Image Filters via Sparse Approximations&lt;/li&gt;
&lt;li&gt;FLIP: A Difference Evaluator for Alternating Images&lt;/li&gt;
&lt;li&gt;Evaluation of Graphics-based General Purpose Computation Solutions for Safety Critical Systems: An Avionics Case Study&lt;/li&gt;
&lt;li&gt;Euclid NIR GPU: Embedded GPU-accelerated Near-Infrared Image Processing for On-board Space Systems.&lt;/li&gt;
&lt;li&gt;Fast Eye-Adaptation for High Performance Mobile Applications. (Morteza Mostajab, Theodor Mader)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-141/HighPerformanceGraphicsDay2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=prZJ8FBG9BI&#34; target=&#34;_blank&#34; id=&#34;[video] HPG 2020 - High-Performance Graphics (Day 3)&#34;&gt;[video] HPG 2020 - High-Performance Graphics (Day 3)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Porting PBRT to the GPU While Preserving its Soul&lt;/li&gt;
&lt;li&gt;Quadratic Approximation of Cubic Curves&lt;/li&gt;
&lt;li&gt;Using Hardware Ray Transforms to Accelerate Ray/Primitive Intersections for Long, Thin Primitive Types&lt;/li&gt;
&lt;li&gt;Sub-Triangle Opacity Masks for Faster Ray Tracing of Transparent Objects&lt;/li&gt;
&lt;li&gt;Improved Triangle Encoding for Cached Adaptive Tessellation&lt;/li&gt;
&lt;li&gt;Iterative GPU Occlusion Culling with BVH&lt;/li&gt;
&lt;li&gt;Ray-casting inspired visualisation pipeline for multi-scale heterogeneous objects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-141/HighPerformanceGraphicsDay3.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/nvidia-research-warp-drive-gaming-eliminate-more-than-80-of-the-latency-performance-penalty/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Research: Warp Drive Gaming – Eliminate More than 80% of the Latency Performance Penalty&#34;&gt;NVIDIA Research: Warp Drive Gaming – Eliminate More than 80% of the Latency Performance Penalty&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a technique that uses late input latching and wrapping wrap render results to match camera rotations based on ideas from VR&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-141/wrap_latency.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200720050303/https://news.developer.nvidia.com/nvidia-research-warp-drive-gaming-eliminate-more-than-80-of-the-latency-performance-penalty/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://thegamedev.guru/unity-gpu-performance/shaders-performance-cost/&#34; target=&#34;_blank&#34; id=&#34;Now You Can Choose High-Performing Unity Shaders&#34;&gt;Now You Can Choose High-Performing Unity Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the performance that can be expected from several Unity Engine shaders&lt;/li&gt;
&lt;li&gt;the provided information is from the Mali OpenGL ES shader compiler&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-141/UnityShaderPerformance.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/yymbx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@bgolus/the-quest-for-very-wide-outlines-ba82ed442cd9&#34; target=&#34;_blank&#34; id=&#34;An Exploration of GPU Silhouette Rendering&#34;&gt;An Exploration of GPU Silhouette Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents many techniques for rendering broad outlines for 3D objects&lt;/li&gt;
&lt;li&gt;provides performance and quality comparisons of the different techniques&lt;/li&gt;
&lt;li&gt;the final result is a flood fill based approach&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-141/outline_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/5ujFK&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=sqWs6ScSanw&#34; target=&#34;_blank&#34; id=&#34;[video] Unity: Make It Rain with Amplify Shader Editor&#34;&gt;[video] Unity: Make It Rain with Amplify Shader Editor&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this Unity tutorial explains how to implement a rain effect on the surface of objects using a technique that is used on a tri-planar mapping&lt;/li&gt;
&lt;li&gt;droplets on flat surfaces and streaks when angled&lt;/li&gt;
&lt;li&gt;this is implemented using the Amplify Shader Editor&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-141/rain_vehicle.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://trevord.black&#34; target=&#34;_blank&#34;&gt;Trevor Black&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 140 — July 12, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-140/</link>
      <pubDate>Sun, 12 Jul 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-140/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://metalkit.org/2020/07/03/wwdc20-whats-new-in-metal.html&#34; target=&#34;_blank&#34; id=&#34;WWDC20 - What&amp;#39;s new in Metal and the Apple GPU&#34;&gt;WWDC20 - What&amp;#39;s new in Metal and the Apple GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article summaries the changes announced at WWDC&lt;/li&gt;
&lt;li&gt;Apple will transition from Intel CPUs / GPUs to custom hardware&lt;/li&gt;
&lt;li&gt;the article shows an architecture overview, best performance practices, new hardware, and API features&lt;/li&gt;
&lt;li&gt;including improved GPU debugging, shader compilation pipeline, raytracing and windows based tools&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-140/wwdc20_05.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200713051929/http://metalkit.org/2020/07/03/wwdc20-whats-new-in-metal.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://beforesandafters.com/2020/07/08/retro-renderman-reflections-in-ratatouille/&#34; target=&#34;_blank&#34; id=&#34;Retro RenderMan: reflections in ‘ratatouille’&#34;&gt;Retro RenderMan: reflections in ‘ratatouille’&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a look back at how RenderMan handled blurry glossy surface reflection in 2007 for Ratatouille&lt;/li&gt;
&lt;li&gt;using a technique called Brick maps, a form of 3D radiance caches&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-140/kitchenReflections.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200713051949/https://beforesandafters.com/2020/07/08/retro-renderman-reflections-in-ratatouille/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/tech-at-wildlife-studios/zooba-graphics-bush-rendering-ce66c9d528f2&#34; target=&#34;_blank&#34; id=&#34;A trip through ZOOBA’s bush rendering&#34;&gt;A trip through ZOOBA’s bush rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog post explains a CSG algorithm implementation based on using the depth and stencil buffer&lt;/li&gt;
&lt;li&gt;the technique is used to implement player visibility in bushes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-140/ZOOBA_bush_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/8Af8D&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://miketuritzin.com/post/how-to-learn-computer-graphics-techniques-and-programming/&#34; target=&#34;_blank&#34; id=&#34;Drinking from the Firehose: Learning Computer Graphics Techniques and Programming&#34;&gt;Drinking from the Firehose: Learning Computer Graphics Techniques and Programming&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author provides an overview of the mindset, technique, and requirements for learning graphics programming&lt;/li&gt;
&lt;li&gt;additionally contains a list of resources to books, videos, web, etc. about the topic&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-140/fog-of-war.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200708001725/https://miketuritzin.com/post/how-to-learn-computer-graphics-techniques-and-programming/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ea.com/seed/news/graphical-glitch-detection-in-video-games&#34; target=&#34;_blank&#34; id=&#34;Graphical glitch detection in video games using convolutional neural networks&#34;&gt;Graphical glitch detection in video games using convolutional neural networks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the master thesis looks at Machine Learning techniques to discover visual issues, such as stretched textures, missing textures in a game environment&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-140/glitch-identification.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://media.contentapi.ea.com/content/dam/ea/seed/presentations/garcialing2020-graphical-glitch-detection-in-video-games-using-cnns.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20200713052132/https://media.contentapi.ea.com/content/dam/ea/seed/presentations/garcialing2020-graphical-glitch-detection-in-video-games-using-cnns.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200713052132/https://www.ea.com/seed/news/graphical-glitch-detection-in-video-games&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-2006-26/&#34; target=&#34;_blank&#34; id=&#34;PIX 2006.26 – Fence Signal/Wait Arrows in GPU Captures&#34;&gt;PIX 2006.26 – Fence Signal/Wait Arrows in GPU Captures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this PIX upgrade adds support for signal wait visualizations and improved buffer visualization&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-140/correlation_arrows_light_theme.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200713052420/https://devblogs.microsoft.com/pix/pix-2006-26/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/shader-graph-39024186&#34; target=&#34;_blank&#34; id=&#34;Shader Graph : Stylized Skybox&#34;&gt;Shader Graph : Stylized Skybox&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial explains how to implement a stylized skybox with sun, moon, and clouds using the visual shader graph system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-140/StylizedSkybox.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200713053142/https://www.patreon.com/posts/shader-graph-39024186&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/radeon-gpu-analyzer-2-2-direct3d12-compute/&#34; target=&#34;_blank&#34; id=&#34;Using Radeon™ GPU Analyzer with Direct3D®12 Compute&#34;&gt;Using Radeon™ GPU Analyzer with Direct3D®12 Compute&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to use the AMD GPU Analyzer for compute shaders&lt;/li&gt;
&lt;li&gt;the tool allows the collection of low-level information such as the ISA disassembly, register usage, etc&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-140/rga_dx12_diagram_fixed.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200713052347/https://gpuopen.com/learn/radeon-gpu-analyzer-2-2-direct3d12-compute/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/radeon-gpu-analyzer-2-3-direct3d-12-graphics/&#34; target=&#34;_blank&#34; id=&#34;Using Radeon™ GPU analyzer with DirectX®12 Graphics&#34;&gt;Using Radeon™ GPU analyzer with DirectX®12 Graphics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains got to use the AMD GPU ANALYZER to get low-level information about graphics workloads&lt;/li&gt;
&lt;li&gt;shows what additional information is required to describe the required pipeline state&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-140/gpu_pipeline_schema.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/NHgrF&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://feresignum.com/resolving-metal-gpu-timers/&#34; target=&#34;_blank&#34; id=&#34;Resolving Metal GPU timers&#34;&gt;Resolving Metal GPU timers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to collect GPU timestamps and synchronize the CPU and GPU timestamps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-140/metal_api.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200713052532/https://feresignum.com/resolving-metal-gpu-timers/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://avikdas.com/2020/07/08/barebones-webgl-in-75-lines-of-code.html&#34; target=&#34;_blank&#34; id=&#34;Barebones WebGL in 75 lines of code&#34;&gt;Barebones WebGL in 75 lines of code&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the basics required to render a triangle with WebGL&lt;/li&gt;
&lt;li&gt;focused on clarity to show only the WebGL functionality and not provide any higher-level abstractions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-140/full-sequence-diagram.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200709025227/https://avikdas.com/2020/07/08/barebones-webgl-in-75-lines-of-code.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.collabora.com/news-and-blog/blog/2020/07/09/deep-dive-into-opengl-over-directx-layering/&#34; target=&#34;_blank&#34; id=&#34;Deep dive into OpenGL over DirectX layering&#34;&gt;Deep dive into OpenGL over DirectX layering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explanation of the architecture of executing OpenGL on D3D12 using a Mesa-based implementation&lt;/li&gt;
&lt;li&gt;presents the development of the implementation and how performance was increased at each step&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-140/d3d12-dxgi.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200709200230/https://www.collabora.com/news-and-blog/blog/2020/07/09/deep-dive-into-opengl-over-directx-layering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://simonstechblog.blogspot.com/2020/07/spectral-path-tracer.html?m=1&#34; target=&#34;_blank&#34; id=&#34;Spectral Path Tracer&#34;&gt;Spectral Path Tracer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how spectral rendering can be implemented in a DXR based path trace&lt;/li&gt;
&lt;li&gt;shows what needs to be adjusted from a classical path tracer&lt;/li&gt;
&lt;li&gt;additionally shows how to convert existing data from textures into spectral data for rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-140/spectral_path_trace.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200713052659/https://simonstechblog.blogspot.com/2020/07/spectral-path-tracer.html?m=1&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-59-10-07-2020/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 59 (10.07.2020)&#34;&gt;Technically Art: Issue 59 (10.07.2020)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tech art and VFX twitter posts, including a look at facial animation tech of the Last Of Us 2&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-140/technically_art_template_59.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200713052723/https://halisavakis.com/technically-art-issue-59-10-07-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/kongsgard&#34; target=&#34;_blank&#34;&gt;Sondre Kongsgård&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 139 — July 5, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-139/</link>
      <pubDate>Sun, 05 Jul 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-139/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=oHLR287rDRA&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] two minute papers - This is Geometry Processing Made Easy&#34;&gt;[video] two minute papers - This is Geometry Processing Made Easy&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a brief summary video of the &amp;ldquo;Monte Carlo Geometry Processing: A Grid-Free Approach to PDE-Based Methods on Volumetric Domains&amp;rdquo; paper&lt;/li&gt;
&lt;li&gt;presents how this paper connects to light transport and provides an overview of 6 examples and a look at implementations of the technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-139/geometry_processing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://casual-effects.com/research/Hart2020Sampling/index.html&#34; target=&#34;_blank&#34; id=&#34;Practical Product Sampling by Fitting and Composing Warps&#34;&gt;Practical Product Sampling by Fitting and Composing Warps&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an importance sampling method that is based on wrap functions that approximate a single factor&lt;/li&gt;
&lt;li&gt;introduces how to use the technique with several existing techniques including projected solid angle sampling, glossy BSFDs, and others&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-139/wrap_function.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://archive.is/ZM43v&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://psgraphics.blogspot.com/2020/07/warping-samples-paper-at-rendering.html?m=1&#34; target=&#34;_blank&#34; id=&#34;Warping samples paper at rendering symposium&#34;&gt;Warping samples paper at rendering symposium&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an additional explanation for the previously discussed paper containing the implementation for a rectangular area light&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-139/wrap_function.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200706040942/https://psgraphics.blogspot.com/2020/07/warping-samples-paper-at-rendering.html?m=1&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@dmnsgn/graphics-on-the-web-and-beyond-with-webgpu-13c4ba049039&#34; target=&#34;_blank&#34; id=&#34;Graphics on the web and beyond with WebGPU&#34;&gt;Graphics on the web and beyond with WebGPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the WebGPU API and shows the steps necessary to render a textured, spinning cube&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-139/web_gpu.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://archive.is/g47nj&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ciechanow.ski/lights-and-shadows/&#34; target=&#34;_blank&#34; id=&#34;Lights and Shadows&#34;&gt;Lights and Shadows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the great in-depth article explains the concepts of light with many interactive examples&lt;/li&gt;
&lt;li&gt;illustrates the connection between the different units, explains connected concepts such as solid-angle&lt;/li&gt;
&lt;li&gt;additionally explains the relationship between reflections, shadows, and color&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-139/lights_and_shadow.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200706041400/https://ciechanow.ski/lights-and-shadows/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.iliyan.com/publications/SpecularManifolds&#34; target=&#34;_blank&#34; id=&#34;Specular Manifold Sampling for Rendering High-Frequency Caustics and Glints&#34;&gt;Specular Manifold Sampling for Rendering High-Frequency Caustics and Glints&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new technique that combines techniques caustics and glint into a single framework&lt;/li&gt;
&lt;li&gt;the presented technique combines deterministic root finding and stochastic sampling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-139/specular_and_glint.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200706041444/http://www.iliyan.com/publications/SpecularManifolds&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.fb.com/blog/2020/07/introducing-neural-supersampling-for-real-time-rendering/&#34; target=&#34;_blank&#34; id=&#34;Introducing neural supersampling for real-time rendering&#34;&gt;Introducing neural supersampling for real-time rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a neural network upsampling technique that is aimed at 16x upsampling for real-time rendering&lt;/li&gt;
&lt;li&gt;the neural network takes advantage of additional information such as depth values and motion vectors&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-139/Neural-supersampling_hero.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200706041557/https://research.fb.com/blog/2020/07/introducing-neural-supersampling-for-real-time-rendering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.realtimerendering.com/blog/cancel-your-siggraph-hotel-attend-egsr-hpg-and-i3d-2020-virtually-free/&#34; target=&#34;_blank&#34; id=&#34;Cancel your SIGGRAPH hotel; attend EGSR, HPG, and I3D 2020 virtually, free&#34;&gt;Cancel your SIGGRAPH hotel; attend EGSR, HPG, and I3D 2020 virtually, free&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;list of computer graphics conferences, dates and links to the stream as they are all virtual this year&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-139/rtr-header.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200706041633/http://www.realtimerendering.com/blog/cancel-your-siggraph-hotel-attend-egsr-hpg-and-i3d-2020-virtually-free/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/custom-srp/point-and-spot-shadows/&#34; target=&#34;_blank&#34; id=&#34;Point and Spot Shadows Perspective Shadows&#34;&gt;Point and Spot Shadows Perspective Shadows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Unity tutorial that shows how to implement realtime shadows for point and spotlights using a custom scriptable render pipeline&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-139/srp_point_spotlight.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200706041643/https://catlikecoding.com/unity/tutorials/custom-srp/point-and-spot-shadows/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://casual-effects.com/research/McGuire2020BSDF/index.html&#34; target=&#34;_blank&#34; id=&#34;A Taxonomy of Bidirectional Scattering Distribution Function Lobes for Rendering Engineers&#34;&gt;A Taxonomy of Bidirectional Scattering Distribution Function Lobes for Rendering Engineers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a taxonomy of the lobes that are composed to create a BSDF&lt;/li&gt;
&lt;li&gt;gives a hierarchical breakdown of the different models with examples for the different branches&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-139/bsdf_taxonomy.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://archive.is/ewO0Q&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.froyok.fr/blog/2020-06-render-target-performances/&#34; target=&#34;_blank&#34; id=&#34;Fast Render Target Rendering in Unreal Engine 4&#34;&gt;Fast Render Target Rendering in Unreal Engine 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to efficiently implement render-to-texture techniques using UE4&lt;/li&gt;
&lt;li&gt;compares the implementation using Slate and Canvas and shows why a slate based implementation is a lot quicker&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-139/benchmark_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200706041730/https://www.froyok.fr/blog/2020-06-render-target-performances/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://panoskarabelas.com/posts/screen_space_shadows/&#34; target=&#34;_blank&#34; id=&#34;Screen space shadows&#34;&gt;Screen space shadows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the articles show what screenspace shadows can add to the scene, provide an example of implementation, and show how noise can reduce banding&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-139/post_sss_full.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200706041742/https://panoskarabelas.com/posts/screen_space_shadows/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://lousodrome.net/blog/light/2020/07/03/intersection-of-a-ray-and-a-plane/&#34; target=&#34;_blank&#34; id=&#34;Intersection of a ray and a plane&#34;&gt;Intersection of a ray and a plane&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to derive the intersection between a ray and a plane&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-139/plane-ray-intersection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200706041842/http://lousodrome.net/blog/light/2020/07/03/intersection-of-a-ray-and-a-plane/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 138 — June 28, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-138/</link>
      <pubDate>Sun, 28 Jun 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-138/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.apple.com/videos/play/wwdc2020/10013&#34; target=&#34;_blank&#34; id=&#34;Get to know Metal function pointers&#34;&gt;Get to know Metal function pointers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Metal shader API now supports function pointers&lt;/li&gt;
&lt;li&gt;the talk provides an overview of the compilation models and performance considerations&lt;/li&gt;
&lt;li&gt;function tables can be passed via argument buffers t the GPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-138/metal_functions.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200625015946/https://developer.apple.com/videos/play/wwdc2020/10013/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/38451970&#34; target=&#34;_blank&#34; id=&#34;Scanline Effect&#34;&gt;Scanline Effect&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial explains how to implement a moving scanline post-processing effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-138/scanline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200629050414/https://www.patreon.com/posts/38451970&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=g-VarJU6yJ8&#34; target=&#34;_blank&#34; id=&#34;[video] NVIDIA Nsight Feature Spotlight: GPU Trace&#34;&gt;[video] NVIDIA Nsight Feature Spotlight: GPU Trace&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an overview of the D3D12 frame-level profiler&lt;/li&gt;
&lt;li&gt;walkthrough of an example capture of Wolfenstein scene and uses it to explain how to use it to identify performance issues&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-138/gpu_trace.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/KhronosGroup/Vulkan-Samples/blob/master/samples/performance/constant_data/constant_data_tutorial.md&#34; target=&#34;_blank&#34; id=&#34;Constant data in Vulkan&#34;&gt;Constant data in Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains several different methods that can be used to manage shader constant data&lt;/li&gt;
&lt;li&gt;provides a brief overview of each technique and compares performance on Mali GPUs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-138/dynamic_descriptor_set_performance.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200629045556/https://github.com/KhronosGroup/Vulkan-Samples/blob/master/samples/performance/constant_data/constant_data_tutorial.md&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jmickle66666666.github.io/blog/2020/06/27/SHAD2.html&#34; target=&#34;_blank&#34; id=&#34;SHAD2: shaders, but more difficult&#34;&gt;SHAD2: shaders, but more difficult&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains a method that stores shader instructions encoded into a texture and uses a runtime shader to interpret the data&lt;/li&gt;
&lt;li&gt;shows an experiment what happens if the texture is filled with random information&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-138/shad2_title.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200629045611/https://jmickle66666666.github.io/blog/2020/06/27/SHAD2.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://egsr2020.london/program/&#34; target=&#34;_blank&#34; id=&#34;The 31st Eurographics Symposium on Rendering&#34;&gt;The 31st Eurographics Symposium on Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the program for the online conference taking place this week&lt;/li&gt;
&lt;li&gt;all videos are available on youtube and linked from this program&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-138/egsr_2020.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200618071812/https://egsr2020.london/program/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://twitter.com/gavkar/status/1275673055851958272&#34; target=&#34;_blank&#34; id=&#34;Features that are coming to iOS and MacOS&#34;&gt;Features that are coming to iOS and MacOS&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a twitter thread that lists new features Metal API features and provides links to documentation for each topic&lt;/li&gt;
&lt;li&gt;including Programmable Blending, Indirect Command Buffers for Compute and many more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-138/wwdc20.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200624062207/https://twitter.com/gavkar/status/1275673055851958272&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.gdcvault.com/play/1026753/Rendering-Roblox-Vulkan-Optimisations-on&#34; target=&#34;_blank&#34; id=&#34;[video] Rendering Roblox: Vulkan Optimisations on Imagination PowerVR GPUs (Presented by Imagination Technologies)&#34;&gt;[video] Rendering Roblox: Vulkan Optimisations on Imagination PowerVR GPUs (Presented by Imagination Technologies)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the GDC talk discusses the voxel-based lighting and shadow system&lt;/li&gt;
&lt;li&gt;how to handle performance vs. quality tradeoffs in algorithms&lt;/li&gt;
&lt;li&gt;uses MSAA to increase the effective resolution on shadow maps on higher-end devices&lt;/li&gt;
&lt;li&gt;how to implement gaussian blur efficiently with async compute&lt;/li&gt;
&lt;li&gt;presents shader optimizations for PowerVR hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-138/roblox.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_wide&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://apply.workable.com/foundry/j/11AC849547/&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Principal Software Engineer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;(London but UK Remote Working also fine)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Foundry are looking for a seasoned software engineer specialising in Real-Time Rendering to join our existing team of rendering experts working on rendering technologies across our portfolio. We&amp;rsquo;re looking for a self-motivated developer with strong C++ and GPU graphics programming skills. Experience in software development lifecycle and knowledge of software engineering best practices are also required. As a Principal Software Engineer, you will help to ensure the quality, scalability, and extensibility of the code that we’re writing.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_wide&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_foundry.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;foundry_week_138&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://imgeself.github.io/posts/2020-06-19-graphics-study-rdr2/&#34; target=&#34;_blank&#34; id=&#34;Graphics Study: Red Dead Redemption 2&#34;&gt;Graphics Study: Red Dead Redemption 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a frame breakdown of the PC version of Red Dead Redemption 2&lt;/li&gt;
&lt;li&gt;covering  g-buffer breakdown, environment map filtering, shadow pipeline, and more supporting systems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-138/read_dead_redemption2.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200625084712/https://imgeself.github.io/posts/2020-06-19-graphics-study-rdr2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.anandtech.com/show/15880/nvidia-posts-first-directx-12-ultimate-driver-set-enables-gpu-hardware-scheduling&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Posts First DirectX 12 Ultimate Driver Set, Enables GPU Hardware Scheduling&#34;&gt;NVIDIA Posts First DirectX 12 Ultimate Driver Set, Enables GPU Hardware Scheduling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;NVidia driver update adds support for DXR 1.1, VRS Tier 2, mesh shaders and sampler feedback&lt;/li&gt;
&lt;li&gt;additionally now supports Vulkan 1.2&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-138/nvidia_driver.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200625235635/https://www.anandtech.com/show/15880/nvidia-posts-first-directx-12-ultimate-driver-set-enables-gpu-hardware-scheduling&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.apple.com/videos/play/wwdc2020/10603&#34; target=&#34;_blank&#34; id=&#34;Optimize Metal apps and games with GPU counters&#34;&gt;Optimize Metal apps and games with GPU counters&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a video from WWDC 20 provides an overview of the GPU pipeline, what hardware counters are available and how to use them understand application performance bottlenecks&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-138/apple_counters.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200625022823/https://developer.apple.com/videos/play/wwdc2020/10603/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.apple.com/videos/play/wwdc2020/10012&#34; target=&#34;_blank&#34; id=&#34;Discover ray tracing with Metal&#34;&gt;Discover ray tracing with Metal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video from WWDC explains the basic building blocks of the Metal ray tracing API and how to support more complex materials&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-138/hair.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200625020130/https://developer.apple.com/videos/play/wwdc2020/10012/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/blog/creating-optimal-meshes-for-ray-tracing/&#34; target=&#34;_blank&#34; id=&#34;Creating Optimal Meshes for Ray Tracing&#34;&gt;Creating Optimal Meshes for Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of several problematic mesh characteristics that cause an issue for ray tracing and how to resolve them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-138/non-optimal-geometry-splitting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200629050030/https://developer.nvidia.com/blog/creating-optimal-meshes-for-ray-tracing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://swiftcreekgames.com&#34; target=&#34;_blank&#34;&gt;Cliff Owen&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 137 — June 21, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-137/</link>
      <pubDate>Sun, 21 Jun 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-137/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://jcgt.org/published/0009/02/03/&#34; target=&#34;_blank&#34; id=&#34;Rendering Layered Materials with Anisotropic Interfaces&#34;&gt;Rendering Layered Materials with Anisotropic Interfaces&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a lightweight and efficient method to render layered materials with anisotropic interfaces&lt;/li&gt;
&lt;li&gt;based around GGX BRDF lobes approximations when aligned with the tangent frame&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-137/layered_materials.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/save/http://jcgt.org/published/0009/02/03/paper.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20200622041240/http://jcgt.org/published/0009/02/03/paper.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/wHvbB&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-57-19-06-2020/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 57 (19.06.2020)&#34;&gt;Technically Art: Issue 57 (19.06.2020)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-137/technically_art_template_57.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200622041307/https://halisavakis.com/technically-art-issue-57-19-06-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.oculus.com/blog/improving-gpu-profiling-on-oculus-quest/&#34; target=&#34;_blank&#34; id=&#34;Improving GPU Profiling on Oculus Quest&#34;&gt;Improving GPU Profiling on Oculus Quest&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of two new libraries developed by Oculus and Qualcomm to expose low-level profiling information designed for tile-based architectures&lt;/li&gt;
&lt;li&gt;Ovrgpuprofiler is a CLI application that provides access to assembled real-time metric details based on the low-level information&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-137/systrace.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200622041350/https://developer.oculus.com/blog/improving-gpu-profiling-on-oculus-quest/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/implementing-stochastic-lod-with-microsoft-dxr/&#34; target=&#34;_blank&#34; id=&#34;Implementing Stochastic Levels of Detail with Microsoft DirectX Raytracing&#34;&gt;Implementing Stochastic Levels of Detail with Microsoft DirectX Raytracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to use stochastic LOD selection for a DXR based ray-tracer&lt;/li&gt;
&lt;li&gt;the given technique uses a combination of ray and instance mask to influence the ray selection&lt;/li&gt;
&lt;li&gt;discusses the importance of selecting consistent LODs between rays and shows a performance comparison&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-137/dxr-lod.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200621122201/https://devblogs.nvidia.com/implementing-stochastic-lod-with-microsoft-dxr/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://cbloomrants.blogspot.com/2020/06/oodle-texture-slashes-game-sizes.html&#34; target=&#34;_blank&#34; id=&#34;Oodle Texture slashes game sizes&#34;&gt;Oodle Texture slashes game sizes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how Oodle Texture can prepare BC textures in such a way that secondary compressions stages (such as zlib) will be able to compress it further&lt;/li&gt;
&lt;li&gt;shows what Rate-Distortion Optimization is and presents considerations regarding the importance of error estimators&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-137/bc1_encode_options.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/yMPcZ&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/announcing-cuda-on-windows-subsystem-for-linux-2/&#34; target=&#34;_blank&#34; id=&#34;Announcing CUDA on Windows Subsystem for Linux 2&#34;&gt;Announcing CUDA on Windows Subsystem for Linux 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents CUDA for WSL 2, how to use it and additionally shows how it cooperates with container workloads&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-137/stack-layers-for-linux-ai-in-wsl-2-containers.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200619215017/https://devblogs.nvidia.com/announcing-cuda-on-windows-subsystem-for-linux-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://jcgt.org/published/0009/02/01/&#34; target=&#34;_blank&#34; id=&#34;Detecting Bias in Monte Carlo Renderers using Welch’s t-test&#34;&gt;Detecting Bias in Monte Carlo Renderers using Welch’s t-test&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents to Welch’s statistical t-test can be used to detect bias even with low sample counts&lt;/li&gt;
&lt;li&gt;presents techniques to visualize and analyze the test results
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-137/t-test.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200617015142/http://jcgt.org/published/0009/02/01/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/top-nine-questions-about-the-ray-tracing-essentials-series-from-developers/&#34; target=&#34;_blank&#34; id=&#34;Top Nine Questions About the ‘Ray Tracing Essentials’ series from Developers&#34;&gt;Top Nine Questions About the ‘Ray Tracing Essentials’ series from Developers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article contains the answers to some common question viewers of the Ray Tracing Essentials webinar had&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-137/ray_tracing_questions.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200618175148/https://news.developer.nvidia.com/top-nine-questions-about-the-ray-tracing-essentials-series-from-developers/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gist.github.com/silvesthu/505cf0cbf284bb4b971f6834b8fec93d#gpu-optimization-for-gamedev&#34; target=&#34;_blank&#34; id=&#34;GPU Optimization for GameDev&#34;&gt;GPU Optimization for GameDev&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an extensive collection resource covering various aspects of GPU optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-137/context_rolls.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200617112950/https://gist.github.com/silvesthu/505cf0cbf284bb4b971f6834b8fec93d&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://torchinsky.me/shader-animation-unity/&#34; target=&#34;_blank&#34; id=&#34;Creating shader animation in Unity&#34;&gt;Creating shader animation in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to create a running rat animation using a vertex shader&lt;/li&gt;
&lt;li&gt;this is archived by using UV partitioning to apply different animations to different body parts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-137/rat_animation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200616211822/https://torchinsky.me/shader-animation-unity/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.willusher.io/graphics/2020/06/15/0-to-gltf-triangle&#34; target=&#34;_blank&#34; id=&#34;From 0 to glTF with WebGPU: The First Triangle&#34;&gt;From 0 to glTF with WebGPU: The First Triangle&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the first part of a WebGPU series shows the necessary steps required to render the first triangle&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-137/vertex_input.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200615215631/https://www.willusher.io/graphics/2020/06/15/0-to-gltf-triangle&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.willusher.io/graphics/2020/06/20/0-to-gltf-bind-groups&#34; target=&#34;_blank&#34; id=&#34;From 0 to glTF with WebGPU: Bind Groups&#34;&gt;From 0 to glTF with WebGPU: Bind Groups&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this tutorial explains how to bind resources and uses this to add basic camera movement support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-137/webgpu_bind_group.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200622041947/https://www.willusher.io/graphics/2020/06/20/0-to-gltf-bind-groups&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://eheitzresearch.wordpress.com/792-2/&#34; target=&#34;_blank&#34; id=&#34;Can’t Invert the CDF? The Triangle-Cut Parameterization of the Region under the Curve&#34;&gt;Can’t Invert the CDF? The Triangle-Cut Parameterization of the Region under the Curve&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a technique that allows Cumulative Distribution Functions that cannot be inverted to still offer an analytical and exact solution&lt;/li&gt;
&lt;li&gt;shows the method at the example of a unit square, stratified sampling of a truncated disk and torus&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-137/cdf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200616015111/https://eheitzresearch.wordpress.com/792-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/ConfettiFX/The-Forge/blob/master/Screenshots/The-Forge-RaytracingBenchmarks.pptx&#34; target=&#34;_blank&#34; id=&#34;The Forge - Raytracing Benchmarks&#34;&gt;The Forge - Raytracing Benchmarks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of cross-platform raytracing abstraction in &amp;ldquo;The Forge&amp;rdquo; and a summary of performance numbers on different platforms&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-137/raytracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200622042053/https://raw.githubusercontent.com/ConfettiFX/The-Forge/master/Screenshots/The-Forge-RaytracingBenchmarks.pptx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://sebh.github.io/publications/&#34; target=&#34;_blank&#34; id=&#34;A Scalable and Production Ready Sky and Atmosphere Rendering Technique&#34;&gt;A Scalable and Production Ready Sky and Atmosphere Rendering Technique&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents the sky and atmosphere model developed by Epic Games that support dynamic viewpoints between planet surface and space&lt;/li&gt;
&lt;li&gt;support different weather and planetary atmospheric settings without high dimensional lookup tables&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-137/atmosphere.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200622042121/https://sebh.github.io/publications/egsr2020.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=KfphtLRoUB0&#34; target=&#34;_blank&#34; id=&#34;[video] Flowmaps, gradient maps, gas giants&#34;&gt;[video] Flowmaps, gradient maps, gas giants&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial explains UV animation, extending this to support varying animations between pixels using flow maps&lt;/li&gt;
&lt;li&gt;uses the presented technique to implement a movement of a planet atmosphere using the Godot engine&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-137/planet.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/aortizelguero&#34; target=&#34;_blank&#34;&gt;Angel Ortiz&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 136 — June 14, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-136/</link>
      <pubDate>Sun, 14 Jun 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-136/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://cbloomrants.blogspot.com/2020/06/followup-tidbits-on-rgbe.html&#34; target=&#34;_blank&#34; id=&#34;Followup tidbits on RGBE&#34;&gt;Followup tidbits on RGBE&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents considerations for designing conversations explained with the example of RGBE encoding&lt;/li&gt;
&lt;li&gt;discusses quantization, round trip error, and precision maximization&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-136/CCIR709.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://archive.is/prawK&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.realtimerendering.com/blog/the-center-of-the-pixel-is-0-50-5/&#34; target=&#34;_blank&#34; id=&#34;The Center of the Pixel is (0.5,0.5)&#34;&gt;The Center of the Pixel is (0.5,0.5)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to deal with pixel coordinates correctly&lt;/li&gt;
&lt;li&gt;shows why pixel center coordinates are at half-offsets&lt;/li&gt;
&lt;li&gt;additionally shows how to integrate this into a ray-tracer correctly&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-136/round_vs_floor.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200612002804/http://www.realtimerendering.com/blog/the-center-of-the-pixel-is-0-50-5/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rtrtsummit.com&#34; target=&#34;_blank&#34; id=&#34;Real-Time Ray Tracing Summit&#34;&gt;Real-Time Ray Tracing Summit&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an online summit with talks about ray tracing topics&lt;/li&gt;
&lt;li&gt;covers topic such as ray tracing API, usages in games and developments for mobile&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-136/rt_summit_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200615055418/https://rtrtsummit.com/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.highperformancegraphics.org/2020/program/&#34; target=&#34;_blank&#34; id=&#34;Preliminary HPG 2020 Program&#34;&gt;Preliminary HPG 2020 Program&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;program for talks that will be presented as part of high-performance graphics 2020&lt;/li&gt;
&lt;li&gt;lectures will be streamed for registered attendees and recordings will be released after the conference&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-136/hpg_2020_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200615055453/https://www.highperformancegraphics.org/2020/program/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://raphlinus.github.io/rust/graphics/gpu/2020/06/13/fast-2d-rendering.html&#34; target=&#34;_blank&#34; id=&#34;Fast 2D rendering on GPU&#34;&gt;Fast 2D rendering on GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of an algorithm for GPU based rendering of 2D vector graphics&lt;/li&gt;
&lt;li&gt;presents a performance comparison against other existing solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-136/sorta_block_diagram.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200615055616/https://raphlinus.github.io/rust/graphics/gpu/2020/06/13/fast-2d-rendering.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pydonzallaz.com/2020/06/13/high-fidelity-graphics-for-games-with-hdrp/&#34; target=&#34;_blank&#34; id=&#34;High Fidelity Graphics for games with HDRP&#34;&gt;High Fidelity Graphics for games with HDRP&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk from Unit presents techniques required for best results with Unity High definition rendering pipeline&lt;/li&gt;
&lt;li&gt;shows how to light a scene following photography theory&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-136/hdrp_volumetrics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200615055638/https://pydonzallaz.com/2020/06/13/high-fidelity-graphics-for-games-with-hdrp/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jkunstwald.github.io/posts/2020-06-13/gpu-csg.html&#34; target=&#34;_blank&#34; id=&#34;Parallel CSG Operations on GPU&#34;&gt;Parallel CSG Operations on GPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how a CSG Operation implementation based around point clouds has been designed for GPU architectures&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-136/csg_low_sample.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200615055659/https://jkunstwald.github.io/posts/2020-06-13/gpu-csg.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/animated-light-38047499&#34; target=&#34;_blank&#34; id=&#34;Animated Light Cookie Shader (Cloud &amp;amp; Tree Shadows)&#34;&gt;Animated Light Cookie Shader (Cloud &amp;amp; Tree Shadows)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial shows how to dynamically generate light blocker textures to simulate clouds and tree shadows&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-136/light_cookie.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200615060447/https://www.patreon.com/posts/animated-light-38047499&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=0Lt1uVseOsU&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[Video] EG / STARs 5 / Neural Rendering / Wednesday&#34;&gt;[Video] EG / STARs 5 / Neural Rendering / Wednesday&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the collection of talks for the field of neural rendering methods&lt;/li&gt;
&lt;li&gt;starting with an overview of the area, covering semantic photosynthesis, novel view synthesis&lt;/li&gt;
&lt;li&gt;closing with a look at the state of the art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-136/neural_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://amp.artstation.com/blog/jzWz&#34; target=&#34;_blank&#34; id=&#34;Fake vs True Displacement - Part 1/2&#34;&gt;Fake vs True Displacement - Part 1/2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the two-part article series shows the difference between Bump-maps, Normal-maps, Displacement and Vector Displacement&lt;/li&gt;
&lt;li&gt;presents an in-depth overview of the different techniques and compares the strengths and weakness with a visual presentation of the results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-136/02_02_GI_v002.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200615055802/https://amp.artstation.com/blog/jzWz&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://observablehq.com/@mattdesl/perceptually-smooth-multi-color-linear-gradients&#34; target=&#34;_blank&#34; id=&#34;Perceptually Smooth Multi-Color Linear Gradients&#34;&gt;Perceptually Smooth Multi-Color Linear Gradients&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the notebook shows how to interpolate gradients in a perceptually smooth way using Catmull Rom splines&lt;/li&gt;
&lt;li&gt;the website allows experimentation with results in several color spaces&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-136/gradient.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200615055830/https://observablehq.com/@mattdesl/perceptually-smooth-multi-color-linear-gradients&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=BXlo09Kbp2k&#34; target=&#34;_blank&#34; id=&#34;[Video] Optimizing Roblox: Vulkan Best Practices for Mobile Developers&#34;&gt;[Video] Optimizing Roblox: Vulkan Best Practices for Mobile Developers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Vulkan talks that cover the Vulkan sample framework, load/store operations, sub-passes, pipeline barriers&lt;/li&gt;
&lt;li&gt;Roblox presents how to they manage command buffers, descriptors, render passes and pipeline state&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-136/vulkan_roblox.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://playdeck.net/blog/quadrant-sizing-efficient-ui-rendering&#34; target=&#34;_blank&#34; id=&#34;Quadrant-Sizing for Efficient UI Rendering&#34;&gt;Quadrant-Sizing for Efficient UI Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents his implementation of a UI element system that allows arbitrary object scaling in a single draw call&lt;/li&gt;
&lt;li&gt;the technique does not support texturing and requires offline pre-processing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-136/box_ui.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200615055854/https://playdeck.net/blog/quadrant-sizing-efficient-ui-rendering&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shaderbits.com/blog/distance-field-ray-tracing-part1&#34; target=&#34;_blank&#34; id=&#34;Distance Field Ray Tracing Part 1: Volume Textures and Ray Marching Primer&#34;&gt;Distance Field Ray Tracing Part 1: Volume Textures and Ray Marching Primer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the UE4 tutorial is a primer on how to build distance field shapes and use raymarching from volume texture to render them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-136/diamond.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200615055925/https://shaderbits.com/blog/distance-field-ray-tracing-part1&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2020/06/14/casual-shadertoy-path-tracing-3-fresnel-rough-refraction-absorption-orbit-camera/&#34; target=&#34;_blank&#34; id=&#34;Casual Shadertoy Path Tracing 3: Fresnel, Rough Refraction &amp;amp; Absorption, Orbit Camera&#34;&gt;Casual Shadertoy Path Tracing 3: Fresnel, Rough Refraction &amp;amp; Absorption, Orbit Camera&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;path 3 of path tracing shows how to extend the materials to support fresnel as well as reflection and absorption for rough materials&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-136/pt3j.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200615060002/https://blog.demofox.org/2020/06/14/casual-shadertoy-path-tracing-3-fresnel-rough-refraction-absorption-orbit-camera/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/gmodarelli&#34; target=&#34;_blank&#34;&gt;Giuseppe Modarelli&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 135 — June 7, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-135/</link>
      <pubDate>Sun, 07 Jun 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-135/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bheisler.github.io/post/work-efficiency-vs-step-efficiency/&#34; target=&#34;_blank&#34; id=&#34;Work-Efficiency vs. Step-Efficiency&#34;&gt;Work-Efficiency vs. Step-Efficiency&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses how to classify GPGPU work into the critical sequential work and the total amount of work done across all workers&lt;/li&gt;
&lt;li&gt;presents how this division is useful to talk and understand the performance of algorithms&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-135/Work_Efficiency.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200608045008/https://bheisler.github.io/post/work-efficiency-vs-step-efficiency/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://cbloomrants.blogspot.com/2020/06/widespread-error-in-radiance-hdr-rgbe.html&#34; target=&#34;_blank&#34; id=&#34;Widespread error in Radiance HDR RGBE conversions&#34;&gt;Widespread error in Radiance HDR RGBE conversions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how RGBE 8888 should be encoded and decoded correctly&lt;/li&gt;
&lt;li&gt;explains the reasoning and shows how the encoding format works&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-135/CCIR709.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/Aqj0z&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2020/06/06/casual-shadertoy-path-tracing-2-image-improvement-and-glossy-reflections/&#34; target=&#34;_blank&#34; id=&#34;Casual Shadertoy Path Tracing 2: Image Improvement and Glossy Reflections&#34;&gt;Casual Shadertoy Path Tracing 2: Image Improvement and Glossy Reflections&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 2 of path tracing implementation series, adding Glossy reflection Anti-Aliasing, tone mapping, and camera exposure&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-135/path_tracer_glossy_reflection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200608000635/https://blog.demofox.org/2020/06/06/casual-shadertoy-path-tracing-2-image-improvement-and-glossy-reflections/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.siggraph.org/2020/06/siggraph-spotlight-episode-35-real-time-ray-tracing-realism.html/&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH Spotlight: Episode 35 – Real-Time, Ray Tracing, and Realism&#34;&gt;SIGGRAPH Spotlight: Episode 35 – Real-Time, Ray Tracing, and Realism&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Podcast episode with Arisa Scott (Unity), Eric Haines (NVIDIA), Mike Hardison (Blizzard Entertainment), Mohen Leo (ILM)&lt;/li&gt;
&lt;li&gt;discussing the evolution of real-time technology and upcoming techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-135/SIGGRAPH-Blog-Header.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200608045300/https://blog.siggraph.org/2020/06/siggraph-spotlight-episode-35-real-time-ray-tracing-realism.html/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://extremelearning.com.au/how-to-evenly-distribute-points-on-a-sphere-more-effectively-than-the-canonical-fibonacci-lattice/&#34; target=&#34;_blank&#34; id=&#34;How to evenly distribute points on a sphere more effectively than the canonical Fibonacci Lattice&#34;&gt;How to evenly distribute points on a sphere more effectively than the canonical Fibonacci Lattice&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to use to distribute points onto the surface of a sphere&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-135/Offset-Fibonacci-Lattices.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200608045615/http://extremelearning.com.au/how-to-evenly-distribute-points-on-a-sphere-more-effectively-than-the-canonical-fibonacci-lattice/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/lunarg-releases-new-sdk-1-2-141/&#34; target=&#34;_blank&#34; id=&#34;LunarG releases GFXReconstruct, a new Vulkan Capture/Replay Tool, with SDK 1.2.141&#34;&gt;LunarG releases GFXReconstruct, a new Vulkan Capture/Replay Tool, with SDK 1.2.141&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new Vulkan SDK now contains the Microsoft Shader Compiler&lt;/li&gt;
&lt;li&gt;GFXReconstruct is a new layer and tool that will replace &lt;a href=&#34;https://github.com/LunarG/VulkanTools&#34; target=&#34;_blank&#34;&gt;vktrace&lt;/a&gt;, it allows recording and playback of Vulkan commands&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-135/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200606140730/https://www.lunarg.com/lunarg-releases-new-sdk-1-2-141/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/KhronosGroup/SPIRV-Guide&#34; target=&#34;_blank&#34; id=&#34;SPIR-V Guide&#34;&gt;SPIR-V Guide&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this guide is designed to explain SPIR-V, what to use it for and present an overview of the internals&lt;/li&gt;
&lt;li&gt;additionally provides instructions for tooling and extension mechanism&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-135/spirv_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200608045707/https://github.com/KhronosGroup/SPIRV-Guide&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cyangamedev.wordpress.com/2020/06/05/urp-shader-code/&#34; target=&#34;_blank&#34; id=&#34;Writing Shader Code for the Universal RP&#34;&gt;Writing Shader Code for the Universal RP&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Shader guide that explains how to write Unity shaders that are compatible with the  Universal Render Pipeline&lt;/li&gt;
&lt;li&gt;highlighting differences between the built-in pipeline and Universal Render Pipeline&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-135/urpshadercode.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200608045801/https://cyangamedev.wordpress.com/2020/06/05/urp-shader-code/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@babylonjs/messed-up-3d-meshes-a-case-study-in-the-limits-of-integer-floating-point-5ccfa2734d91&#34; target=&#34;_blank&#34; id=&#34;Messed up 3D Meshes: A case study in the limits of integer floating point&#34;&gt;Messed up 3D Meshes: A case study in the limits of integer floating point&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows problems of floating-point precision in the model export pipeline&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-135/float_precision.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/Dn3LV&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://docs.google.com/presentation/d/1rVb2bW2EC-XQjOoN4hvXB-5aIO8H5vd2diKXw1ldAE0/edit#slide=id.p&#34; target=&#34;_blank&#34; id=&#34;Ambient Occlusion&#34;&gt;Ambient Occlusion&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation explains what Ambient Occlusion is, and provides an overview of different algorithms used to implement the effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-135/AmbientOcclusion.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@shahriyarshahrabi/real-time-cubism-shader-5c8e0c79195c&#34; target=&#34;_blank&#34; id=&#34;Real-time Cubism Shader&#34;&gt;Real-time Cubism Shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a method to implement a Cubism effect, similar to what can be seen in &amp;ldquo;Spider-Man: Into the Spider-Verse&amp;rdquo;&lt;/li&gt;
&lt;li&gt;provides a Unity implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-135/cubism.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/1FZ6e&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.eveonline.com/article/qb3kew/sharpening-the-renderer&#34; target=&#34;_blank&#34; id=&#34;Sharpening the renderer&#34;&gt;Sharpening the renderer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents Contrast Adaptive Sharpening and how it&amp;rsquo;s used in EVE to make details on ships and planet surfaces clearer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-135/SharpeningTheRenderer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200602135630/https://www.eveonline.com/article/qb3kew/sharpening-the-renderer&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/texture-part-2-37604751&#34; target=&#34;_blank&#34; id=&#34;Texture Generation Part 2: Normal Swizzling&#34;&gt;Texture Generation Part 2: Normal Swizzling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Unity tutorial that shows to mix Normal map correctly&lt;/li&gt;
&lt;li&gt;considerations to export normal maps to take the most advantage of the BC compresses precision&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-135/ScreenHunter6530.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.wihlidal.com&#34; target=&#34;_blank&#34;&gt;Graham Wihlidal&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 134 — May 31, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-134/</link>
      <pubDate>Sun, 31 May 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-134/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2020/05/25/casual-shadertoy-path-tracing-1-basic-camera-diffuse-emissive/&#34; target=&#34;_blank&#34; id=&#34;Casual Shadertoy Path Tracing 1: Basic Camera, Diffuse, Emissive&#34;&gt;Casual Shadertoy Path Tracing 1: Basic Camera, Diffuse, Emissive&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A tutorial that shows a practical walkthrough on how to implement a path tracer in shadertoy&lt;/li&gt;
&lt;li&gt;focuses on the generation of renderings instead of physical correctness&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-134/path_tracing_1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200527103034/https://blog.demofox.org/2020/05/25/casual-shadertoy-path-tracing-1-basic-camera-diffuse-emissive/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://brookmiles.ca/2020/05/25/curving-corner-texture-uvs/&#34; target=&#34;_blank&#34; id=&#34;Curving Corner Texture UVs&#34;&gt;Curving Corner Texture UVs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to generate UVs for curved corners using Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-134/smooth-corner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200601043810/http://brookmiles.ca/2020/05/25/curving-corner-texture-uvs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/gears-tactics-vrs/&#34; target=&#34;_blank&#34; id=&#34;Iterating on Variable Rate Shading in Gears Tactics&#34;&gt;Iterating on Variable Rate Shading in Gears Tactics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the articles present how the VRS (Variable Rate Shading) implementation was approached&lt;/li&gt;
&lt;li&gt;offers performance and quality considerations&lt;/li&gt;
&lt;li&gt;shows how the shading rate was adjusted dynamically&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-134/gears-tactics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200601043831/https://devblogs.microsoft.com/directx/gears-tactics-vrs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lexdev.net/tutorials/case_studies/civilization_fogofwar.html&#34; target=&#34;_blank&#34; id=&#34;Civilization VI Fog of War&#34;&gt;Civilization VI Fog of War&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;This Unity tutorial explains how to implement a Civilization VI style fog of war system&lt;/li&gt;
&lt;li&gt;shows how to render the hex grid, use a compute shader to generate visibility masks and combine all parts for the final result&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-134/fog_of_war.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200601044036/https://lexdev.net/tutorials/case_studies/civilization_fogofwar.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.magnum.graphics/announcements/new-geometry-pipeline/&#34; target=&#34;_blank&#34; id=&#34;New geometry pipeline in Magnum&#34;&gt;New geometry pipeline in Magnum&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the articles describe the design of the new geometry (import) pipeline of the Magnum engine&lt;/li&gt;
&lt;li&gt;the new design focuses on the reduction of load time and extra flexibility to handle any GPU understood format&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-134/magnum_mesh.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200527165044/https://blog.magnum.graphics/announcements/new-geometry-pipeline/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cs.dartmouth.edu/~wjarosz/publications/seyb20uberbake.html&#34; target=&#34;_blank&#34; id=&#34;The design and evolution of the UberBake light baking system&#34;&gt;The design and evolution of the UberBake light baking system&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A global illumination system developed by Activision&lt;/li&gt;
&lt;li&gt;the system is based on a static light baking approach with runtime support for dynamically changing lights and geometry&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-134/uberbake.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200601044331/https://cs.dartmouth.edu/~wjarosz/publications/seyb20uberbake.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@bgolus/progressing-in-circles-13452434fdb9&#34; target=&#34;_blank&#34; id=&#34;Progressing in Circles&#34;&gt;Progressing in Circles&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the articles presents different approaches on how to implement a ring progression effect&lt;/li&gt;
&lt;li&gt;compares rendering quality, anti-aliasing, performance, and setup work for each method&lt;/li&gt;
&lt;li&gt;proves Unity source code for all presented solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-134/arc_progress_bar.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200601044442/https://medium.com/@bgolus/progressing-in-circles-13452434fdb9&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-56-29-05-2020/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 56 (29.05.2020)&#34;&gt;Technically Art: Issue 56 (29.05.2020)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-134/technically_art_template_56.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200601044508/https://halisavakis.com/technically-art-issue-56-29-05-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2020/05/30/a-survey-of-temporal-antialiasing-techniques-presentation-notes/&#34; target=&#34;_blank&#34; id=&#34;A survey of temporal antialiasing techniques: presentation notes&#34;&gt;A survey of temporal antialiasing techniques: presentation notes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;authors notes on the Survey of Temporal Antialiasing Techniques talk from the Eurographics 2020 virtual conference&lt;/li&gt;
&lt;li&gt;discussing TAA, how it works, how different implementations compare, weaknesses and possible future improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-134/taa.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200601044706/https://interplayoflight.wordpress.com/2020/05/30/a-survey-of-temporal-antialiasing-techniques-presentation-notes/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/custom-srp/point-and-spot-lights/&#34; target=&#34;_blank&#34; id=&#34;Point and Spot Lights Lights with Limited Influence&#34;&gt;Point and Spot Lights Lights with Limited Influence&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the next part in a Unity tutorial series on the scriptable render pipeline&lt;/li&gt;
&lt;li&gt;this part adds support for point lights, Spot Lights, static light baking and per-object lights&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-134/point_lights.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200601044722/https://catlikecoding.com/unity/tutorials/custom-srp/point-and-spot-lights/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ourmachinery.com/post/borderland-part-2-picking/&#34; target=&#34;_blank&#34; id=&#34;Borderland between Rendering and Editor — Part 2: Picking&#34;&gt;Borderland between Rendering and Editor — Part 2: Picking&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how the GPU based picking system in &amp;ldquo;Our Machinery&amp;rdquo; has been implemented&lt;/li&gt;
&lt;li&gt;presented solution writes a small UAV from the pixel shader to record the closes picked object&lt;/li&gt;
&lt;li&gt;shows how to make sure that the closes object is atomically returned&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-134/picking.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200601044812/https://ourmachinery.com/post/borderland-part-2-picking/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://astralcode.blogspot.com/2020/05/reverse-engineering-rendering-of.html&#34; target=&#34;_blank&#34; id=&#34;Reverse engineering the rendering of The Witcher 3, part 19 - portals&#34;&gt;Reverse engineering the rendering of The Witcher 3, part 19 - portals&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how the portal rendering effect in The Witcher 3 has been implemented&lt;/li&gt;
&lt;li&gt;shows the Reverse engineered HLSL shader implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-134/portal_type_fire.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200601044842/https://astralcode.blogspot.com/2020/05/reverse-engineering-rendering-of.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dl.acm.org/doi/10.1145/3384382.3384521&#34; target=&#34;_blank&#34; id=&#34;Stochastic Substitute Trees for Real-Time Global Illumination&#34;&gt;Stochastic Substitute Trees for Real-Time Global Illumination&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a GI algorithm based around tracing Virtual point lights (VPLs), converting clusters of VPLs into probability
distributions and storing these into hierarchical trees&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-134/SubstituteTrees.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/txDxG&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/Omme&#34; target=&#34;_blank&#34;&gt;Dominik Lazarek&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 133 — May 24, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-133/</link>
      <pubDate>Sun, 24 May 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-133/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2020/05/21/dimensionality-reduction-for-image-and-texture-set-compression/&#34; target=&#34;_blank&#34; id=&#34;Dimensionality reduction for image and texture set compression&#34;&gt;Dimensionality reduction for image and texture set compression&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;detailed post presents the idea of “decorrelating” color channels to maximize information in texture channels and eliminate redundancy allowing data to be stored in fewer color channels&lt;/li&gt;
&lt;li&gt;introduction into Singular Value Decomposition SVD and how it can be used for channel decorrelation&lt;/li&gt;
&lt;li&gt;showing quality comparisons for a PBR texture set and discusses possible problems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-133/texture_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200525042807/https://bartwronski.com/2020/05/21/dimensionality-reduction-for-image-and-texture-set-compression/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/directx-heart-linux/&#34; target=&#34;_blank&#34; id=&#34;DirectX is coming to the Windows Subsystem for Linux&#34;&gt;DirectX is coming to the Windows Subsystem for Linux&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Version 2 of Windows Subsystem for Linux  adds full support for D3D12 (not allows rendering to the screen yet)&lt;/li&gt;
&lt;li&gt;this is implemented as Linux kernel model driver to expose the GPU to user mode Linux applications&lt;/li&gt;
&lt;li&gt;DirectML and CUDA are implemented on top to allow machine learning on Linux guests&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-133/d3d12_linux.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200523015659/https://devblogs.microsoft.com/directx/directx-heart-linux/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/video-gears-5/&#34; target=&#34;_blank&#34; id=&#34;Video: Gears 5 – High-Gear Visuals On Multiple Platforms&#34;&gt;Video: Gears 5 – High-Gear Visuals On Multiple Platforms&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;relaxed cone step mapping for relief mapping to add more details&lt;/li&gt;
&lt;li&gt;async compute based tesselation for interactive terrain&lt;/li&gt;
&lt;li&gt;the interactive deformations have been implemented using texture-atlas based technique&lt;/li&gt;
&lt;li&gt;running pixel bound post-processing in parallel with the pre-pass of the following frame&lt;/li&gt;
&lt;li&gt;advice for the reduction of d3d12 hitches&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-133/Gears5.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200525042236/https://gpuopen.com/video-gears-5/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://teofilobd.github.io/unity/shaders/urp/graphics/2020/05/18/From-Built-in-to-URP.html&#34; target=&#34;_blank&#34; id=&#34;From Built-in to URP&#34;&gt;From Built-in to URP&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of concepts, macros, shader logics, that exists in unity build-in render pipeline and how they are represented in the new Universal Render Pipeline&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-133/urp.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200519074504/https://teofilobd.github.io/unity/shaders/urp/graphics/2020/05/18/From-Built-in-to-URP.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.surveymonkey.co.uk/r/T2DZ7VS&#34; target=&#34;_blank&#34; id=&#34;Vulkan Helper Libraries Survey&#34;&gt;Vulkan Helper Libraries Survey&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Khronos questionary that presents a list of suggestion for possible vulkan helper libraries&lt;/li&gt;
&lt;li&gt;looking for feedback on which libraries would be of most interest from developers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-133/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/making-clean-map-37285218&#34; target=&#34;_blank&#34; id=&#34;Making a clean (mini)map using Navmesh and a Shader&#34;&gt;Making a clean (mini)map using Navmesh and a Shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Unity tutorial that shows how to use a navmesh as a base for minimap rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-133/minimap.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/4uSiH&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/jbikker/jbikker.github.io/blob/master/literature/Accelerating%20Ray%20Tracing%20with%20Origin%20Offsets%20-%202020.pdf&#34; target=&#34;_blank&#34; id=&#34;Accelerating Ray Tracing with Origin Offsets&#34;&gt;Accelerating Ray Tracing with Origin Offsets&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper proposed a new method that aims to improve ray tracing by offsetting ray starting point aways from the originating leaf nodes of the acceleration structures&lt;/li&gt;
&lt;li&gt;the suggested proposal is generating an auxiliary data structure of hemispheres that make it robust to offset the ray starting point&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-133/OriginOffset.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200525042728/https://github.com/jbikker/jbikker.github.io/blob/master/literature/Accelerating%20Ray%20Tracing%20with%20Origin%20Offsets%20-%202020.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/texture-37273570&#34; target=&#34;_blank&#34; id=&#34;Texture Generation&#34;&gt;Texture Generation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A unity tutorial that shows how to blend multiple textures together and save them to disk using Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-133/TextureProc.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/99od9&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-55-22-05-2020/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 55 (22.05.2020)&#34;&gt;Technically Art: Issue 55 (22.05.2020)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-133/technically_art_template_55.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200525042825/https://halisavakis.com/technically-art-issue-55-22-05-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://conferences.eg.org/egev20/&#34; target=&#34;_blank&#34; id=&#34;Welcome to the joint conferences, Eurographics &amp;amp; Eurovis 2020&#34;&gt;Welcome to the joint conferences, Eurographics &amp;amp; Eurovis 2020&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Eurographics &amp;amp; Eurovis 2020 conference will be virtual and streamed starting May 25-29, 2020&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-133/goingvirtual-1200x346.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.geeks3d.com/20200519/introduction-to-mesh-shaders-opengl-and-vulkan/&#34; target=&#34;_blank&#34; id=&#34;Quick Introduction to Mesh Shaders (OpenGL and Vulkan)&#34;&gt;Quick Introduction to Mesh Shaders (OpenGL and Vulkan)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;brief overview and introduction into Mesh Shaders using OpenGL and Vulkan&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-133/geexlab-mesh-shaders-meshlets-vulkan-01.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200525042926/https://www.geeks3d.com/20200519/introduction-to-mesh-shaders-opengl-and-vulkan/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2020/05/23/optimizing-for-the-rdna-architecture-presentation-notes/&#34; target=&#34;_blank&#34; id=&#34;Optimizing for the RDNA architecture: presentation notes&#34;&gt;Optimizing for the RDNA architecture: presentation notes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of notes about the content of the AMD talk presenting the AMD RDNA architecture and GPU optimizations&lt;/li&gt;
&lt;li&gt;presents a walkthrough of a MIP generation example&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-133/rdna.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200525042949/https://interplayoflight.wordpress.com/2020/05/23/optimizing-for-the-rdna-architecture-presentation-notes/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rendered.substack.com/p/rendered-1&#34; target=&#34;_blank&#34; id=&#34;Rendered #1&#34;&gt;Rendered #1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A new newsletter with news and insight on volumetric filmmaking, virtual production, 3D rendering, and other emerging realities&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-133/rendered_1.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/MLC6U&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://trevord.black&#34; target=&#34;_blank&#34;&gt;Trevor Black&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 132 — May 17, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-132/</link>
      <pubDate>Sun, 17 May 2020 03:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-132/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cs.dartmouth.edu/~wjarosz/publications/bitterli20spatiotemporal.html&#34; target=&#34;_blank&#34; id=&#34;Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting&#34;&gt;Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new technique that allows a massive number of dynamic lights to be rendered in real-time&lt;/li&gt;
&lt;li&gt;the presented implementation shows 3.4 million dynamic, emissive triangles in under 50 ms&lt;/li&gt;
&lt;li&gt;this is archived by reusing information from spatially and temporally adjacent pixels to filter probabilities to guide rays&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-132/spatiotemporal.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://cs.dartmouth.edu/~wjarosz/publications/bitterli20spatiotemporal.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200518060702/https://cs.dartmouth.edu/~wjarosz/publications/bitterli20spatiotemporal.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/lets-build/&#34; target=&#34;_blank&#34; id=&#34;Let&amp;#39;s build ... 2020&#34;&gt;Let&amp;#39;s build ... 2020&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;AMD virtual event that contains talks about

&lt;ul&gt;
&lt;li&gt;Ryzen™ Processor Software Optimization&lt;/li&gt;
&lt;li&gt;optimizing for Radeon™ RDNA Architecture&lt;/li&gt;
&lt;li&gt;From Source to ISA: A Trip Down the Shader Compiler Pipeline&lt;/li&gt;
&lt;li&gt;A Review of GPUOpen Effects&lt;/li&gt;
&lt;li&gt;Curing Amnesia and Other GPU Maladies With AMD Developer Tools&lt;/li&gt;
&lt;li&gt;Radeon™ ProRender Full Spectrum Rendering 2.0: The Universal Rendering API&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-132/lets_build.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200518060009/https://gpuopen.com/lets-build/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-54-15-05-2020/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 54 (15.05.2020)&#34;&gt;Technically Art: Issue 54 (15.05.2020)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-132/technically_art_template_54.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200518060038/https://halisavakis.com/technically-art-issue-54-15-05-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://sandervanrossen.blogspot.com/2020/05/i-haz-gdc-talk.html&#34; target=&#34;_blank&#34; id=&#34;I haz a GDC talk - Real-Time CSG&#34;&gt;I haz a GDC talk - Real-Time CSG&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of what Constructive Solid Geometry (CSG) is and workflows&lt;/li&gt;
&lt;li&gt;presents the algorithm that allows for iterative updates including how to calculate intersections and mesh generation&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-132/csg.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200518055945/http://sandervanrossen.blogspot.com/2020/05/i-haz-gdc-talk.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/learn/getting-started-with-radeon-memory-visualizer-rmv/&#34; target=&#34;_blank&#34; id=&#34;Getting started with Radeon Memory Visualizer (RMV)&#34;&gt;Getting started with Radeon Memory Visualizer (RMV)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post provides an overview of the new AMD memory profiler for Vulkan and D3D12&lt;/li&gt;
&lt;li&gt;this tool allows gaining a deeper understanding of memory usage&lt;/li&gt;
&lt;li&gt;shows all allocations, tracked on a timeline, will enable comparisons of snapshots and gives warnings about possible problems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-132/allocations.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200518060303/https://gpuopen.com/learn/getting-started-with-radeon-memory-visualizer-rmv/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2020/05/16/using-blue-noise-for-raytraced-soft-shadows/&#34; target=&#34;_blank&#34; id=&#34;Using Blue Noise For Raytraced Soft Shadows&#34;&gt;Using Blue Noise For Raytraced Soft Shadows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to calculate the shadows from the sun&lt;/li&gt;
&lt;li&gt;presents the results of the shadow quality with white and blue noise&lt;/li&gt;
&lt;li&gt;the implementation is then extended to Spherical Positional and spotlights&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-132/spot.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200518060348/https://blog.demofox.org/2020/05/16/using-blue-noise-for-raytraced-soft-shadows/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2020/05/10/ray-marching-fog-with-blue-noise/&#34; target=&#34;_blank&#34; id=&#34;Ray Marching Fog With Blue Noise&#34;&gt;Ray Marching Fog With Blue Noise&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how using blue noise can improve ray marching results&lt;/li&gt;
&lt;li&gt;provides a shadertoy that compares against white noise&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-132/stochasticfog.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200518060420/https://blog.demofox.org/2020/05/10/ray-marching-fog-with-blue-noise/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alain.xyz/blog/frame-analysis-minecraftrtx&#34; target=&#34;_blank&#34; id=&#34;Frame Analysis - Minecraft RTX Beta&#34;&gt;Frame Analysis - Minecraft RTX Beta&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a breakdown of the RTX implementation for Minecraft&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-132/minecraft_rtx.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/5sbIA&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://deadvoxels.blogspot.com/2020/05/some-brief-thoughts-on-how-nanite-in.html&#34; target=&#34;_blank&#34; id=&#34;Some brief thoughts on how Nanite in UE5 possibly works....&#34;&gt;Some brief thoughts on how Nanite in UE5 possibly works....&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents his ideas about how the Nanite technology in the UE5 tech demo might be implemented&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-132/unreal-engine-5.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200518060535/http://deadvoxels.blogspot.com/2020/05/some-brief-thoughts-on-how-nanite-in.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://c0de517e.blogspot.com/2020/05/some-thoughts-on-unreal-5s-nanite-in.html&#34; target=&#34;_blank&#34; id=&#34;Some thoughts on Unreal 5&amp;#39;s Nanite - in way too many words&#34;&gt;Some thoughts on Unreal 5&amp;#39;s Nanite - in way too many words&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article that discusses possible ideas on how the UE5 nanite technology might be implemented&lt;/li&gt;
&lt;li&gt;contains links to exciting techniques that might be related, or inspired the development&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-132/unreal-engine-5-cover-image.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200518060602/http://c0de517e.blogspot.com/2020/05/some-thoughts-on-unreal-5s-nanite-in.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/nvidia-ampere-architecture-in-depth/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Ampere Architecture In-Depth&#34;&gt;NVIDIA Ampere Architecture In-Depth&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an overview of the new Nvidia Ampere Architecture aimed at compute workloads&lt;/li&gt;
&lt;li&gt;new tensor cores for f32 data, IEE compliant fp64, and BF16 throughput improvements&lt;/li&gt;
&lt;li&gt;adds the ability to run multiple processes on the same GPU with error isolation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-132/GA100SM.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200514130916/https://devblogs.nvidia.com/nvidia-ampere-architecture-in-depth/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/cuda-11-features-revealed/&#34; target=&#34;_blank&#34; id=&#34;CUDA 11 Features Revealed&#34;&gt;CUDA 11 Features Revealed&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of new features in CUDA 11 and how the NVIDIA Ampere GPU hardware features are exposed&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-132/cuda-11-1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200514130917/https://devblogs.nvidia.com/cuda-11-features-revealed/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 131 — May 10, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-131/</link>
      <pubDate>Sun, 10 May 2020 03:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-131/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/ray-tracing-essentials-part-7-denoising-for-ray-tracing/&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing Essentials Part 7: Denoising for Ray Tracing&#34;&gt;Ray Tracing Essentials Part 7: Denoising for Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the final part of raytracing series&lt;/li&gt;
&lt;li&gt;presents what denoising techniques are and why they are required&lt;/li&gt;
&lt;li&gt;presents a comparison in multiple scenes, explaining how neural network technique is trained&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-131/denoising.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/Grzen&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://fabiensanglard.net/cuda/index.html&#34; target=&#34;_blank&#34; id=&#34;a history of nvidia stream multiprocessor&#34;&gt;a history of nvidia stream multiprocessor&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of the Nvidia GPU architecture and how they developed over time&lt;/li&gt;
&lt;li&gt;shows changes done to the hardware, discussing the strengths and weaknesses of the design&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-131/turing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200509204655/https://fabiensanglard.net/cuda/index.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.uhawkvr.com/rendering/rendering-volumetric-clouds-using-signed-distance-fields/&#34; target=&#34;_blank&#34; id=&#34;Rendering volumetric clouds using signed distance fields&#34;&gt;Rendering volumetric clouds using signed distance fields&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a technique that combines singed distance fields and ray marching to render static volumetric clouds&lt;/li&gt;
&lt;li&gt;the signed distance field is used to only use ray-marching once inside the cloud volume&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-131/volumetric_clouds.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200510032641/https://blog.uhawkvr.com/rendering/rendering-volumetric-clouds-using-signed-distance-fields/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.cs.cmu.edu/~kmcrane/Projects/MonteCarloGeometryProcessing/index.html&#34; target=&#34;_blank&#34; id=&#34;Monte Carlo Geometry Processing: A Grid-Free Approach to PDE-Based Methods on Volumetric Domains&#34;&gt;Monte Carlo Geometry Processing: A Grid-Free Approach to PDE-Based Methods on Volumetric Domains&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents how to apply the monte-carle methods to geometry processing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-131/monte_carlo_geometry.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://www.cs.cmu.edu/~kmcrane/Projects/MonteCarloGeometryProcessing/paper.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20200509175647/http://www.cs.cmu.edu/~kmcrane/Projects/MonteCarloGeometryProcessing/paper.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200509001924/http://www.cs.cmu.edu/~kmcrane/Projects/MonteCarloGeometryProcessing/index.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://meistdan.github.io/publications/raysorting/paper.pdf&#34; target=&#34;_blank&#34; id=&#34;On Ray Reordering Techniques for Faster GPU Ray Tracing&#34;&gt;On Ray Reordering Techniques for Faster GPU Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an overview of ray sorting techniques and introduces a new method for ray sorting of secondary rays&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-131/ray_sorting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200511035821/https://meistdan.github.io/publications/raysorting/paper.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cl.cam.ac.uk/research/rainbow/projects/motion_quality_model/&#34; target=&#34;_blank&#34; id=&#34;A perceptual model of motion quality for rendering with adaptive refresh-rate and resolution&#34;&gt;A perceptual model of motion quality for rendering with adaptive refresh-rate and resolution&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this paper presents the results of testing done into human perception, comparing test-cases for perceived quality differences between resolution and framerate&lt;/li&gt;
&lt;li&gt;proposes a model for prediction to enable an application to dynamically adjust framerate and resolution based on the findings to achieve the highest perceived visual quality&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-131/visual_model.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.cl.cam.ac.uk/research/rainbow/projects/motion_quality_model/motion_quality_model_paper.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://archive.is/xLMBn&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200511040257/https://www.cl.cam.ac.uk/research/rainbow/projects/motion_quality_model/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=V1nkv8g-oi0&amp;amp;feature=youtu.be&amp;amp;app=desktop&amp;amp;persist_app=1&#34; target=&#34;_blank&#34; id=&#34;[video] Animal Crossing, wobbly leaves, pivot caching.&#34;&gt;[video] Animal Crossing, wobbly leaves, pivot caching.&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Video presents an overview of a shader technique implementing the behavior of leaves in Animal Crossing&lt;/li&gt;
&lt;li&gt;this technique is based around storing individual pivots for multiple leaves and applying dynamic effects based on this&lt;/li&gt;
&lt;li&gt;implementation with blender and Godot is shown&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-131/wobbly_leave.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://kvark.github.io/web/gpu/native/2020/05/03/point-of-webgpu-native.html&#34; target=&#34;_blank&#34; id=&#34;Point of WebGPU on native&#34;&gt;Point of WebGPU on native&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents his view on WebGPU for use in native applications&lt;/li&gt;
&lt;li&gt;showing why it could be an excellent offer for many types of developers if it can deliver on its promises&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-131/web_gpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200508101234/http://kvark.github.io/web/gpu/native/2020/05/03/point-of-webgpu-native.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2020/05/09/gpu-architecture-resources/&#34; target=&#34;_blank&#34; id=&#34;GPU architecture resources&#34;&gt;GPU architecture resources&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of resource links to presentations, papers and articles focusing on the details of GPU architectures&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-131/rendering_pipeline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200511040938/https://interplayoflight.wordpress.com/2020/05/09/gpu-architecture-resources/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/cuda-refresher-getting-started-with-cuda/&#34; target=&#34;_blank&#34; id=&#34;CUDA Refresher: Getting started with CUDA&#34;&gt;CUDA Refresher: Getting started with CUDA&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a brief overview on how to get started with CUDA&lt;/li&gt;
&lt;li&gt;programming model and required components&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-131/cuda_getting_started.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200511041052/https://devblogs.nvidia.com/cuda-refresher-getting-started-with-cuda/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/JarkkoPFC/meshlete&#34; target=&#34;_blank&#34; id=&#34;Meshlete - Chop 3D objects to meshlets&#34;&gt;Meshlete - Chop 3D objects to meshlets&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a tool to generate meshlets for use with compute based culling algorithms or mesh shaders&lt;/li&gt;
&lt;li&gt;explains the difference between Bounding Spheres and Visibility Cones and how to use them for culling parts of meshes more efficiently&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-131/suzanne_meshlets.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200511041237/https://github.com/JarkkoPFC/meshlete&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://top-or.de/projects&#34; target=&#34;_blank&#34;&gt;Jens Hartmann&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 130 — May 3, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-130/</link>
      <pubDate>Sun, 03 May 2020 03:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-130/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://docs.google.com/presentation/d/1MwJcnSvkAzpT8BuoSqIkzlYLjdA_lBDrt8bW-vcwmDU/edit#slide=id.p&#34; target=&#34;_blank&#34; id=&#34;Real-time Shadows&#34;&gt;Real-time Shadows&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation provides an in-depth overview of shadow techniques for real-time applications&lt;/li&gt;
&lt;li&gt;discusses what shadow maps are, how they are rendered, stored and used&lt;/li&gt;
&lt;li&gt;provides an overview of common problems and solutions&lt;/li&gt;
&lt;li&gt;additionally provides an overview of more advanced techniques such as filtering and cascaded shadow maps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-130/shadow_map.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://0xef.wordpress.com/2020/05/01/physically-based-materials-energy-conservation-and-reciprocity/&#34; target=&#34;_blank&#34; id=&#34;Physically-Based Materials – Energy Conservation and Reciprocity&#34;&gt;Physically-Based Materials – Energy Conservation and Reciprocity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the definition of a physically-based material that is energy conservation and reciprocity&lt;/li&gt;
&lt;li&gt;reciprocity is essential to be able to use bi-directional path tracing techniques&lt;/li&gt;
&lt;li&gt;looks at common methods such as Pre-Filtered Environment Maps, several Dielectric Material implementations presenting if they are reciprocal and/or energy-conserving and explaining why&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-130/consistency.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200504015247/https://0xef.wordpress.com/2020/05/01/physically-based-materials-energy-conservation-and-reciprocity/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://raphlinus.github.io/gpu/2020/04/30/prefix-sum.html&#34; target=&#34;_blank&#34; id=&#34;Prefix sum on Vulkan&#34;&gt;Prefix sum on Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to implement a prefix sum using Vulkan compute shaders&lt;/li&gt;
&lt;li&gt;looking at memory model, dynamic allocations and subgroup controls&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-130/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200430220115/https://raphlinus.github.io/gpu/2020/04/30/prefix-sum.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/depth-based-post-36438990&#34; target=&#34;_blank&#34; id=&#34;Depth-Based Post Effects&#34;&gt;Depth-Based Post Effects&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial explains how to use the depth texture to apply a localized toon shading effect&lt;/li&gt;
&lt;li&gt;shows how to sample the depth texture, unpack the data and use it in a shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-130/depth_based_post.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/profiling-dxr-shaders-with-timer-instrumentation/&#34; target=&#34;_blank&#34; id=&#34;Profiling DXR Shaders with Timer Instrumentation&#34;&gt;Profiling DXR Shaders with Timer Instrumentation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new Nvidia extension for D3D12 that provides shaders the possibility to query timestamps from within a shader&lt;/li&gt;
&lt;li&gt;the article explains how to use this technique to visualize the performance of TraceRay( &amp;hellip; ) with a heatmap&lt;/li&gt;
&lt;li&gt;shows how to enable the extension in C++ and how to integrate it into a shader&lt;/li&gt;
&lt;li&gt;comparable to the &lt;a href=&#34;https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_shader_clock.html&#34; target=&#34;_blank&#34;&gt;VK_KHR_shader_clock&lt;/a&gt; extension&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-130/heat_map.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/AxoXK&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/custom-srp/complex-maps/&#34; target=&#34;_blank&#34; id=&#34;Complex Maps Masks, Details, and Normals&#34;&gt;Complex Maps Masks, Details, and Normals&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;next part in the Unity Tutorial series about implementing a custom scriptable rendering pipeline&lt;/li&gt;
&lt;li&gt;adds support for more complex materials such as details maps and normal mapping&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-130/complex_material_srp.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200430202223/https://catlikecoding.com/unity/tutorials/custom-srp/complex-maps/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=YMf2GDvT-aE&#34; target=&#34;_blank&#34; id=&#34;[video] Tech Focus: What Is VRS And Is It A Next-Gen Game-Changer? Variable Rate Shading Analysis!&#34;&gt;[video] Tech Focus: What Is VRS And Is It A Next-Gen Game-Changer? Variable Rate Shading Analysis!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an overview of Variable Rate Shading (VRS)&lt;/li&gt;
&lt;li&gt;present an overview of VRS implementation in Wolfenstein New Blood and Gears: Tactics for performance and quality&lt;/li&gt;
&lt;li&gt;discusses considerations in how difference workload affect the performance gains that can be expected from VRS&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-130/vrs_df.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alain.xyz/blog/frame-analysis-mk11#ambient-occlusion&#34; target=&#34;_blank&#34; id=&#34;Frame Analysis - Mortal Kombat 11&#34;&gt;Frame Analysis - Mortal Kombat 11&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;breakdown of the rendering techniques used in Mortal Kombat 11&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-130/final_mc11.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/YPlh3&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.yosoygames.com.ar/wp/2020/04/its-time-we-talk-about-tdr/&#34; target=&#34;_blank&#34; id=&#34;It’s time we talk about TDR &#34;&gt;It’s time we talk about TDR &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an alternative execution model that would be able to improve upon Timeout Detection and Recovery mechanism found in the OS&lt;/li&gt;
&lt;li&gt;after 2 seconds the OS will terminate GPU processes and cause a device lost event&lt;/li&gt;
&lt;li&gt;the proposal is to make the OS GPU process-aware which allows applications to start independent GPU processes that would behave similarly to CPU processes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-130/DetailsTDR.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200504020041/https://www.yosoygames.com.ar/wp/2020/04/its-time-we-talk-about-tdr/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hacks.mozilla.org/2020/04/experimental-webgpu-in-firefox/&#34; target=&#34;_blank&#34; id=&#34;A Taste of WebGPU in Firefox&#34;&gt;A Taste of WebGPU in Firefox&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the WebGPU API&lt;/li&gt;
&lt;li&gt;covers the state of the implementation on Firefox and presents the next steps currently in progress&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-130/webgpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200503092619/https://hacks.mozilla.org/2020/04/experimental-webgpu-in-firefox/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://johnaustin.io/articles/2020/fast-subsurface-scattering-for-the-unity-urp&#34; target=&#34;_blank&#34; id=&#34;Fast Subsurface Scattering for the Unity URP&#34;&gt;Fast Subsurface Scattering for the Unity URP&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the Wrapped lighting technique to emulate subsurface scattering&lt;/li&gt;
&lt;li&gt;the method is aimed for use with forward shading on the Oculus Quest&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-130/wrapped_diffuse.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200504020248/https://johnaustin.io/articles/2020/fast-subsurface-scattering-for-the-unity-urp&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wallisc.github.io/rendering/2020/05/02/Volumetric-Rendering-Part-1.html&#34; target=&#34;_blank&#34; id=&#34;Volumetric Rendering Part 1&#34;&gt;Volumetric Rendering Part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this part of the article on volumetric rendering shows how to model a volume using an SDF inside of shadertoy&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-130/mergedGroundPlane.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200504020319/https://wallisc.github.io/rendering/2020/05/02/Volumetric-Rendering-Part-1.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wallisc.github.io/rendering/2020/05/02/Volumetric-Rendering-Part-2.html&#34; target=&#34;_blank&#34; id=&#34;Volumetric Rendering Part 2&#34;&gt;Volumetric Rendering Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the second part of the article presents how to render the volumetrics&lt;/li&gt;
&lt;li&gt;calculation absorption, Self-shadowing, quality improvements, and a few optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-130/NoiseDensity.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200504020418/https://wallisc.github.io/rendering/2020/05/02/Volumetric-Rendering-Part-2.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://twitter.com/BrianLeleux/status/1255360017529700353&#34; target=&#34;_blank&#34; id=&#34;UE4 - Physical light unit - Twitter Thread&#34;&gt;UE4 - Physical light unit - Twitter Thread&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Twitter thread about the complexities of different light measuring units&lt;/li&gt;
&lt;li&gt;provides a UE4 tool to simply conversion between units&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-130/light_unit_conversion.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/ei1bJ&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.danielfortes.com&#34; target=&#34;_blank&#34;&gt;Daniel Fortes&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 129 — April 26, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-129/</link>
      <pubDate>Sat, 25 Apr 2020 03:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-129/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://twitter.com/pythno/status/1254001797364158465/photo/1&#34; target=&#34;_blank&#34; id=&#34;flowchart for descriptor set setup in Vulkan&#34;&gt;flowchart for descriptor set setup in Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a flowchart that provides an overview of the descriptor set binding logic of the Vulkan API&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-129/vulkan_descriptor_management.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/ZZLyY&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gist.github.com/raysan5/909dc6cf33ed40223eb0dfe625c0de74&#34; target=&#34;_blank&#34; id=&#34;CUSTOM GAME ENGINES: A Small Study&#34;&gt;CUSTOM GAME ENGINES: A Small Study&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;list of games studios and which custom engines they are using&lt;/li&gt;
&lt;li&gt;broken down into AAA, middle, small and solo developers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-129/custom_engine_study.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200425000704/https://gist.github.com/raysan5/909dc6cf33ed40223eb0dfe625c0de74&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://twitter.com/sindromequijote/status/1253719933600575495&#34; target=&#34;_blank&#34; id=&#34;Twitter thread - using quaternions&#34;&gt;Twitter thread - using quaternions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the thread provides an overview of what are use cases for quaternions&lt;/li&gt;
&lt;li&gt;focusing on how to use them instead of the mathematics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-129/quaternions.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://archive.is/zh0FP&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/articles/alpha_test.php5&#34; target=&#34;_blank&#34; id=&#34;Improving the quality of the alpha test (cutout) materials&#34;&gt;Improving the quality of the alpha test (cutout) materials&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains problems with alpha testing materials and why they tend to shrink in the distance&lt;/li&gt;
&lt;li&gt;presents a technique to reduce these artifacts and compares against other techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-129/mip_mapping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200427042745/https://asawicki.info/articles/alpha_test.php5&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://psgraphics.blogspot.com/2020/04/deugging-refraction-in-sphre.html?m=1&#34; target=&#34;_blank&#34; id=&#34;Debugging refraction in a sphere&#34;&gt;Debugging refraction in a sphere&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a test setup that explains how to validate ray refraction within a sphere&lt;/li&gt;
&lt;li&gt;shows what values are expected, very useful when implementing your own ray tracer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-129/debug_sphere_refractions.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200427042851/https://psgraphics.blogspot.com/2020/04/deugging-refraction-in-sphre.html?m=1&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.construct.net/en/blogs/ashleys-blog-2/webgl-webgpu-construct-1519&#34; target=&#34;_blank&#34; id=&#34;From WebGL to WebGPU in Construct&#34;&gt;From WebGL to WebGPU in Construct&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how WebGPU compares with WebGL&lt;/li&gt;
&lt;li&gt;compares findings in terms of API design, early performance results, and compatibility&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-129/gs-webgpu.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200424143519/https://www.construct.net/en/blogs/ashleys-blog-2/webgl-webgpu-construct-1519&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/ray-tracing-essentials-part-6-the-rendering-equation/&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing Essentials Part 6: The Rendering Equation&#34;&gt;Ray Tracing Essentials Part 6: The Rendering Equation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part of the ray tracing series covering the rendering equation&lt;/li&gt;
&lt;li&gt;breaks down the equations into components and explains the contributions to the final rendering result&lt;/li&gt;
&lt;li&gt;shows how pure path tracing is using the equation and techniques used to reduce the time required for the results to converge to the final result&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-129/rendering_equation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200427043146/https://news.developer.nvidia.com/ray-tracing-essentials-part-6-the-rendering-equation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/master/docs/debug_printf.md&#34; target=&#34;_blank&#34; id=&#34;Vulkan - Debug Printf&#34;&gt;Vulkan - Debug Printf&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Vulkan validation layer now can send printf style information from a shader to the debug callback&lt;/li&gt;
&lt;li&gt;the article explains how to use the layer and what constraints need to be considered&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-129/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200427043249/https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/master/docs/debug_printf.md&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=b16JFKrGrFE&#34; target=&#34;_blank&#34; id=&#34;[video] Ratchet &amp;amp; Clank Pixelizer FX in Unity&#34;&gt;[video] Ratchet &amp;amp; Clank Pixelizer FX in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity video tutorial explains how to implement an effect that converts a 3D mesh into a voxelized version&lt;/li&gt;
&lt;li&gt;achieved by rendering the mesh into an offscreen target and using the texture to drive a geometry shader&lt;/li&gt;
&lt;li&gt;additionally shows how to break this object into a particle effect for destruction&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-129/pixelizer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://raphlinus.github.io/graphics/2020/04/21/blurred-rounded-rects.html&#34; target=&#34;_blank&#34; id=&#34;Blurred rounded rectangles&#34;&gt;Blurred rounded rectangles&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to calculate a blurred version of a rounded rectangle using a distance field based technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-129/rounded_rect_distfield_exp.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200427001144/https://raphlinus.github.io/graphics/2020/04/21/blurred-rounded-rects.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://docs.google.com/document/d/1-guvLUfwk7fcVOuHCTEehJWf7i6AoDoU65jIKwSIG6Q/edit?fbclid=IwAR3IgcbT3GCCPvEzrsvskJZnp5pur4ajmYLB0DHirUumiVWYemP9ubHptlc#heading=h.z6k1hl8sdu33&#34; target=&#34;_blank&#34; id=&#34;UE4 Texture/Material/Cascade optimization tips&#34;&gt;UE4 Texture/Material/Cascade optimization tips&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a long document containing many tips and tricks to optimize UE4 performance&lt;/li&gt;
&lt;li&gt;mostly aimed at materials and VFX related optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-129/ue4.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://amesyta.wordpress.com/2020/04/21/floating-world-shader-part-5-ocean-material/&#34; target=&#34;_blank&#34; id=&#34;Floating World Shader Part 5 – Ocean Material&#34;&gt;Floating World Shader Part 5 – Ocean Material&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the last part of a series of UE4 based posts that recreate an environment artists scene&lt;/li&gt;
&lt;li&gt;this part focuses on the recreation of the stylized ocean in the scene&lt;/li&gt;
&lt;li&gt;combines all elements and presents the final result&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-129/floating_world.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200427043833/https://amesyta.wordpress.com/2020/04/21/floating-world-shader-part-5-ocean-material/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.dropbox.com/s/2rm1pyu1vsno0sv/The%20Technical%20Interview.pdf?dl=0&#34; target=&#34;_blank&#34; id=&#34;The Technical Interview [LEAKED]&#34;&gt;The Technical Interview [LEAKED]&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the guide presents an overview of the structure and content of technical interviews&lt;/li&gt;
&lt;li&gt;presents a framework for mapping rendering engineers in different dimensions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-129/TheTechnicalInterview.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/Omme&#34; target=&#34;_blank&#34;&gt;Dominik Lazarek&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 128 — April 19, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-128/</link>
      <pubDate>Sun, 19 Apr 2020 03:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-128/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2020/04/14/bilinear-texture-filtering-artifacts-alternatives-and-frequency-domain-analysis/&#34; target=&#34;_blank&#34; id=&#34;Bilinear texture filtering – artifacts, alternatives, and frequency domain analysis&#34;&gt;Bilinear texture filtering – artifacts, alternatives, and frequency domain analysis&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides an introducing into linear blending&lt;/li&gt;
&lt;li&gt;explaining that pixels are no signal but rather samples taken at a given location&lt;/li&gt;
&lt;li&gt;presents the star-shaped artifact of bilinear filtering&lt;/li&gt;
&lt;li&gt;discusses an alternative to bilinear filtering with links to papers and analyzes the frequency response of some filters&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-128/bilinear_filtering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200415155502/https://bartwronski.com/2020/04/14/bilinear-texture-filtering-artifacts-alternatives-and-frequency-domain-analysis/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2020/04/19/validating-physical-light-units/&#34; target=&#34;_blank&#34; id=&#34;validating physical light units&#34;&gt;validating physical light units&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to use the Mitsuba renderer to validate the results from a PBR renderer&lt;/li&gt;
&lt;li&gt;provides an overview of the file structure used by  Mitsuba and how to convert units where required&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-128/ingame-scene-specular.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200420050821/https://interplayoflight.wordpress.com/2020/04/19/validating-physical-light-units/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://godotengine.org/article/godot-40-gets-global-and-instance-shader-uniforms&#34; target=&#34;_blank&#34; id=&#34;godot 4.0 gets global and per-instance shader uniforms&#34;&gt;godot 4.0 gets global and per-instance shader uniforms&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents that Godot has now 3 update frequencies for shader parameters global, per-material and instance&lt;/li&gt;
&lt;li&gt;provides a few video examples that show use cases of global parameters for vegetation interactions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-128/godot_update_frequencies.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200417055341/https://godotengine.org/article/godot-40-gets-global-and-instance-shader-uniforms&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://kesen.realtimerendering.com/i3d2020Papers.htm&#34; target=&#34;_blank&#34; id=&#34;Symposium on Interactive 3D Graphics and Games 2020 papers on the web&#34;&gt;Symposium on Interactive 3D Graphics and Games 2020 papers on the web&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of papers from the I3D 2020 conference&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-128/i3d_2020.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200420050928/http://kesen.realtimerendering.com/i3d2020Papers.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/ray-tracing-essentials-part-5-ray-tracing-effects/&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing Essentials Part 5: Ray Tracing Effects&#34;&gt;Ray Tracing Essentials Part 5: Ray Tracing Effects&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 5 of Nvidia ray tracing series&lt;/li&gt;
&lt;li&gt;focuses on the presentation of different visual effects that are created through ray tracing&lt;/li&gt;
&lt;li&gt;such as depth of field, motion blur, atmospheric effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-128/ray_tracing_effects.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200420051000/https://news.developer.nvidia.com/ray-tracing-essentials-part-5-ray-tracing-effects/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://info.nvidia.com/developer-ray-tracing-webinar-reg-page.html&#34; target=&#34;_blank&#34; id=&#34;nvidia webinar - ray tracing essentials&#34;&gt;nvidia webinar - ray tracing essentials&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Eric Haines will be giving a webinar on May 12&lt;/li&gt;
&lt;li&gt;explains concepts related to ray tracing, comparison of ray tracing and explain how specialized hardware can accelerate the workload&lt;/li&gt;
&lt;li&gt;additionally covering denoising and other techniques required to make interactive raytracing possible&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-128/webinar_nvidia.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200420051013/https://info.nvidia.com/developer-ray-tracing-webinar-reg-page.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.falseidolfactory.com/2020/04/16/intro-to-gfx-hal-part-3-vertex-buffers.html&#34; target=&#34;_blank&#34; id=&#34;Intro to gfx-hal • Part 3: Vertex buffers&#34;&gt;Intro to gfx-hal • Part 3: Vertex buffers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 3 of Rust gfx-hal intro series&lt;/li&gt;
&lt;li&gt;shows all the steps required including binary serialization of mesh data, shader changes and all other Rust changes needed to render a spinning 3D teapot&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-128/hal_teapot.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200420051023/https://www.falseidolfactory.com/2020/04/16/intro-to-gfx-hal-part-3-vertex-buffers.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://lousodrome.net/blog/light/2020/04/15/implementing-a-physically-based-shading-without-locking-yourself-in/&#34; target=&#34;_blank&#34; id=&#34;Implementing a Physically Based Shading without locking yourself in&#34;&gt;Implementing a Physically Based Shading without locking yourself in&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presentation from revision&lt;/li&gt;
&lt;li&gt;focuses on the physics of light interaction with matters&lt;/li&gt;
&lt;li&gt;overview of shading models and possible implementation techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-128/pbr_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200416203255/http://lousodrome.net/blog/light/2020/04/15/implementing-a-physically-based-shading-without-locking-yourself-in/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/introducing-low-level-gpu-virtual-memory-management/&#34; target=&#34;_blank&#34; id=&#34;Introducing Low-Level GPU Virtual Memory Management&#34;&gt;Introducing Low-Level GPU Virtual Memory Management&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Cuda introduces new memory management functionality&lt;/li&gt;
&lt;li&gt;allows developers to reserve virtual memory ranges and map these ranges to physical memory on demand&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-128/cuda_memory.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200420051150/https://devblogs.nvidia.com/introducing-low-level-gpu-virtual-memory-management/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1726_secrets_of_direct3d_12_resource_alignment&#34; target=&#34;_blank&#34; id=&#34;Secrets of Direct3D 12: Resource Alignment&#34;&gt;Secrets of Direct3D 12: Resource Alignment&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows that the D3D12 alignment requirement rules have an exception for small textures that allows a reduction in alignment requirements&lt;/li&gt;
&lt;li&gt;this behavior needs to be explicitly requested and presents how to take advantage of it&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-128/dx12_resource_alignment.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200420051220/https://asawicki.info/news_1726_secrets_of_direct3d_12_resource_alignment&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/3-techniques-for-36122576&#34; target=&#34;_blank&#34; id=&#34;3 Techniques for Dynamically Colored UI Graphics&#34;&gt;3 Techniques for Dynamically Colored UI Graphics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents 3 different techniques for Unity that allow the color of UI elements to be dynamically adjusted&lt;/li&gt;
&lt;li&gt;shows pro and cons for each technique and what good use cases are&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-128/ui_coloring.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200420051407/https://www.patreon.com/posts/3-techniques-for-36122576&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=eqkAaplKBc4&#34; target=&#34;_blank&#34; id=&#34;[video] A Taste of GPU Compute&#34;&gt;[video] A Taste of GPU Compute&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;talks aimed at computer science students starting to get started with GPU technology&lt;/li&gt;
&lt;li&gt;present an overview of GPU hardware architecture&lt;/li&gt;
&lt;li&gt;how functional programming is a good fit for GPUs&lt;/li&gt;
&lt;li&gt;shows how to adjust 2D rendering algorithms to be better adapted for the architecture&lt;/li&gt;
&lt;li&gt;overview of the graphics infrastructure (compilers, APIs, shader languages )&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-128/gpu_compute.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alain.xyz/blog/frame-analysis-overwatch&#34; target=&#34;_blank&#34; id=&#34;Frame Analysis - Overwatch&#34;&gt;Frame Analysis - Overwatch&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article and video and present a high-level overview of the rendering passes of Overwatch&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-128/overwatch_breakdown.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200420051435/http://alain.xyz/404&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://maxliani.wordpress.com/2020/04/15/life-stories-the-glimpse-renderer-part-1/&#34; target=&#34;_blank&#34; id=&#34;Life stories: the Glimpse Renderer – part 1&#34;&gt;Life stories: the Glimpse Renderer – part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Part 1, &lt;a href=&#34;https://maxliani.wordpress.com/2020/04/16/life-stories-the-glimpse-renderer-part-2/&#34; target=&#34;_blank&#34;&gt;2&lt;/a&gt; and &lt;a href=&#34;https://maxliani.wordpress.com/2020/04/17/life-stories-the-glimpse-renderer-part-3/&#34; target=&#34;_blank&#34;&gt;3&lt;/a&gt; of a series about the story of the  Glimpse Renderer&lt;/li&gt;
&lt;li&gt;a renderer was written from scratch and used in multiple movies such as The LEGO Movie&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-128/glimpse.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200416025425/https://maxliani.wordpress.com/2020/04/15/life-stories-the-glimpse-renderer-part-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.deepaksurti.com&#34; target=&#34;_blank&#34;&gt;Deepak Surti&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 127 — April 12, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-127/</link>
      <pubDate>Sun, 12 Apr 2020 03:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-127/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=whyJzrVEgVc&#34; target=&#34;_blank&#34; id=&#34;Evolving Path of Exile&amp;#39;s Renderer&#34;&gt;Evolving Path of Exile&amp;#39;s Renderer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the talk presents an overview of rendering features developed for Path of Exile&lt;/li&gt;
&lt;li&gt;showing what constraints the game provides and how it enables these implementations&lt;/li&gt;
&lt;li&gt;Point Light Shadows (Screenspace Hierarchical Variance shadow maps)&lt;/li&gt;
&lt;li&gt;Screenspace Global Illumination&lt;/li&gt;
&lt;li&gt;Subsurface refraction, a technique used for ice and water&lt;/li&gt;
&lt;li&gt;Water flow map generation on the CPU using Algebraic Multigrid&lt;/li&gt;
&lt;li&gt;grass and fur using pre-calculated raytracing&lt;/li&gt;
&lt;li&gt;an extensive collection of brief overviews of other techniques such as burning, fracturing, scalar field vectorization&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-127/subsurface_refraction.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/dfranx/SPIRV-VM&#34; target=&#34;_blank&#34; id=&#34;Virtual machine for executing SPIR-V&#34;&gt;Virtual machine for executing SPIR-V&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A virtual machine that is written in C enables executing of a subset of SPIR-V shaders (only 2D texture operations, no 3D etc.)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-127/spirv.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200407200446/https://github.com/dfranx/SPIRV-VM&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2020/04/07/speeding-up-lighthouse-2/&#34; target=&#34;_blank&#34; id=&#34;Speeding Up Lighthouse 2&#34;&gt;Speeding Up Lighthouse 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents operations that reduced the shading time required from  21.58ms to 13.52ms&lt;/li&gt;
&lt;li&gt;combination of scene-specific adjustments, implementation changes to noise generation and variance reduction&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-127/lighthouse2.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200408072949/https://jacco.ompf2.com/2020/04/07/speeding-up-lighthouse-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blogs.unity3d.com/2020/04/07/artists-best-practices-for-mobile-game-development/&#34; target=&#34;_blank&#34; id=&#34;Artists’ best practices for mobile game development&#34;&gt;Artists’ best practices for mobile game development&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A guide aimed at technical artists to preset best practices for geometry, texture, material and shader optimizations for mobile devices&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-127/Texture-13-SmallDetail.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200413032809/https://blogs.unity3d.com/2020/04/07/artists-best-practices-for-mobile-game-development/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2020/04/10/optimizing-trilinear-interpolation/&#34; target=&#34;_blank&#34; id=&#34;Optimizing Trilinear Interpolation&#34;&gt;Optimizing Trilinear Interpolation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents implementations optimizations to speedup trilinear filtering&lt;/li&gt;
&lt;li&gt;taking advantage of the representation of power floating-point number to speed up operations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-127/trilinear.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200410113244/https://jacco.ompf2.com/2020/04/10/optimizing-trilinear-interpolation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jendrikillner.com/article_database/&#34; target=&#34;_blank&#34; id=&#34;Updated Article Database Design&#34;&gt;Updated Article Database Design&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;The database of articles included in this series has been updated with a new look&lt;/li&gt;
&lt;li&gt;this is the first step of a more extensive upgrade, and new functionality will be added soon. Stay tuned&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-127/article_database.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200413034636/https://www.jendrikillner.com/article_database/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/maxandonuts&#34; target=&#34;_blank&#34;&gt;Max R.R. Collada&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 126 — April 5, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-126/</link>
      <pubDate>Sun, 05 Apr 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-126/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/nvpro-samples/vk_raytracing_tutorial_KHR&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Vulkan Ray Tracing Tutorials&#34;&gt;NVIDIA Vulkan Ray Tracing Tutorials&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of Vulkan tutorials for the VK_KHR_ray_tracing extension&lt;/li&gt;
&lt;li&gt;the tutorial starts from a working .obj rendering using rasterization and then integrates raytracing&lt;/li&gt;
&lt;li&gt;additional topics covered are Anti-Aliasing, handling thousands of Objects, Transparency, Reflections, Animation, Callable Shader and Ray Query&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-126/resultRaytraceShadowMedieval.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200404000718/https://github.com/nvpro-samples/vk_raytracing_tutorial_KHR&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/using-nsight-systems-for-fixing-stutters-in-games/&#34; target=&#34;_blank&#34; id=&#34;Using Nsight Systems for Fixing Stutters in Games&#34;&gt;Using Nsight Systems for Fixing Stutters in Games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how Nsight was used for debugging a frame stutter bug in the Vulkan raytracing implementation of Wolfenstein: Youngblood&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-126/nsight_stutter.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200406024428/https://devblogs.nvidia.com/using-nsight-systems-for-fixing-stutters-in-games/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/optimizing-vk-vkr-and-dx12-dxr-applications-using-nsight-graphics-gpu-trace-advanced-mode-metrics/&#34; target=&#34;_blank&#34; id=&#34;Optimizing VK/VKR and DX12/DXR Applications Using Nsight Graphics: GPU Trace Advanced Mode Metrics&#34;&gt;Optimizing VK/VKR and DX12/DXR Applications Using Nsight Graphics: GPU Trace Advanced Mode Metrics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post presents how to use Nsight to apply the Peak-Performance method to determine a performance problem in Wolfenstein: Youngblood (Vulkan)&lt;/li&gt;
&lt;li&gt;shows how to detect being memory-bound and how to reduce the texture memory being access in a hit shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-126/peak_performance_method.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200406024856/https://devblogs.nvidia.com/optimizing-vk-vkr-and-dx12-dxr-applications-using-nsight-graphics-gpu-trace-advanced-mode-metrics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gamedevbill.com/paper-burn-shader-in-unity/&#34; target=&#34;_blank&#34; id=&#34;Paper Burn Shader in Unity&#34;&gt;Paper Burn Shader in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this Unity tutorial explains how to implement a burning effect for paper&lt;/li&gt;
&lt;li&gt;this tutorial builds on previous parts of the series&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-126/PaperBurnTitle.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200406024957/https://gamedevbill.com/paper-burn-shader-in-unity/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.falseidolfactory.com/2020/04/01/intro-to-gfx-hal-part-1-drawing-a-triangle.html&#34; target=&#34;_blank&#34; id=&#34;Intro to gfx-hal • Part 1: Drawing a triangle&#34;&gt;Intro to gfx-hal • Part 1: Drawing a triangle&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 1 of rust graphics programming series using the rust gfx hal&lt;/li&gt;
&lt;li&gt;gfx-hal is a graphics abstraction layer on top of D3D12, Vulkan and metal&lt;/li&gt;
&lt;li&gt;this in-depth tutorial covers everything required from the setup of the application, window, shader, etc. needed to  render the first triangle into a window&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-126/rust_gfx_hal_part1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200406025056/https://www.falseidolfactory.com/2020/04/01/intro-to-gfx-hal-part-1-drawing-a-triangle.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.falseidolfactory.com/2020/04/01/intro-to-gfx-hal-part-2-push-constants.html&#34; target=&#34;_blank&#34; id=&#34;Intro to gfx-hal • Part 2: Push constants&#34;&gt;Intro to gfx-hal • Part 2: Push constants&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the second part of the tutorial series extends the example so that Vulkan push constants can be used to render multiple triangles with varying settings&lt;/li&gt;
&lt;li&gt;settings that can be modified include color, position, and scale&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-126/rust_gfx_hal_part2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200406025206/https://www.falseidolfactory.com/2020/04/01/intro-to-gfx-hal-part-2-push-constants.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.colour-science.org/posts/physical-lighting-quantities-tying-both-ends/&#34; target=&#34;_blank&#34; id=&#34;physical lighting quantities: tying both ends&#34;&gt;physical lighting quantities: tying both ends&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a method that allows validation of a physical camera model against ground truth data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-126/Blog_Unity_Treasure_Island_Angle_Imaged.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200406041059/https://www.colour-science.org/posts/physical-lighting-quantities-tying-both-ends/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.realtimerendering.com/blog/seven-things-for-march-31-2020/&#34; target=&#34;_blank&#34; id=&#34;Seven Things for March 31, 2020&#34;&gt;Seven Things for March 31, 2020&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of links and graphics community news such as ACM Digitial library being free, I3D posponed, &amp;hellip;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-126/rtr-header.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200406041140/http://www.realtimerendering.com/blog/seven-things-for-march-31-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://thomasdeliot.wixsite.com/blog/single-post/2020/03/30/Biquadratic-interpolation-with-independent-sample-weights&#34; target=&#34;_blank&#34; id=&#34;Biquadratic interpolation with independent sample weights&#34;&gt;Biquadratic interpolation with independent sample weights&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to use quadratic interpolation for depth aware upsampling&lt;/li&gt;
&lt;li&gt;the presented use-case presented is volumetric clouds&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-126/cloud_upsampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200402081304/https://thomasdeliot.wixsite.com/blog/single-post/2020/03/30/Biquadratic-interpolation-with-independent-sample-weights&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/gtc/2020/video/s22698&#34; target=&#34;_blank&#34; id=&#34;GTC 2020: DLSS - Image Reconstruction for Real-time Rendering with Deep Learning&#34;&gt;GTC 2020: DLSS - Image Reconstruction for Real-time Rendering with Deep Learning&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the GTC talks provide an overview of Deep Learning Super Sampling&lt;/li&gt;
&lt;li&gt;presents an overview of the challenges for upscaling the results of realtime rendering&lt;/li&gt;
&lt;li&gt;shows a history of existing techniques and compares the qualities of different methods&lt;/li&gt;
&lt;li&gt;includes a section on how to integrate the technique into Unreal Engine 4&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-126/dlss.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200406041333/https://developer.nvidia.com/gtc/2020/video/s22698&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://inresin.wordpress.com/2020/04/03/terrain-and-mesh-blending-in-unity/&#34; target=&#34;_blank&#34; id=&#34;Terrain and Mesh Blending in Unity&#34;&gt;Terrain and Mesh Blending in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;his Unity tutorial shows one way of blending meshes that are close to the terrain with the terrain colors&lt;/li&gt;
&lt;li&gt;the presented approach uses a separate depth texture to record the terrain depth and uses this to calculate the distance of a pixel to the terrain&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-126/terrain_blending.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200406041746/https://inresin.wordpress.com/2020/04/03/terrain-and-mesh-blending-in-unity/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://morad.in/2020/04/03/unmasking-arkham-knight/&#34; target=&#34;_blank&#34; id=&#34;Unmasking the Arkham Knight&#34;&gt;Unmasking the Arkham Knight&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a breakdown of the rendering stages found in the PC version of Batman: Arkham Knight&lt;/li&gt;
&lt;li&gt;the game uses a  hybrid approach between forward and deferred rendering based on the distance to the camera&lt;/li&gt;
&lt;li&gt;lighting is done in a computer shader using checkerboard pattern with upscaling&lt;/li&gt;
&lt;li&gt;rain is using GPU based particles&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-126/final_small-624x351.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200404154652/http://morad.in/2020/04/03/unmasking-arkham-knight/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/gtc/2020/video/s22692&#34; target=&#34;_blank&#34; id=&#34;GTC 2020: RTXGI: Scalable Ray Traced Global Illumination in Real Time&#34;&gt;GTC 2020: RTXGI: Scalable Ray Traced Global Illumination in Real Time&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the GTC presentation explains how the technique aims to replace existing indirect lighting techniques&lt;/li&gt;
&lt;li&gt;provides an overview of how the method combines ray tracing, fast irradiance updates, and a moment-based depth scheme to enable realtime GI without baking information offline&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-126/RTXGI.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200406042550/https://developer.nvidia.com/gtc/2020/video/s22692&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://event.on24.com/eventRegistration/EventLobbyServlet?target=reg20.jsp&amp;amp;referrer=https%3A%2F%2Ft.co%2FZh7re9fdqa%3Famp%3D1&amp;amp;eventid=2229201&amp;amp;sessionid=1&amp;amp;key=ED47CAFB79B2EBDD27558E3F939BE255&amp;amp;regTag=&amp;amp;sourcepage=register&#34; target=&#34;_blank&#34; id=&#34;ACM TechTalk - Ed Catmull &amp;amp; Richard Chuang&#34;&gt;ACM TechTalk - Ed Catmull &amp;amp; Richard Chuang&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;ACM tech talk with Ed Catmull &amp;amp; Richard Chuang happening on Tuesday, April 14&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-126/acmtechtalksbanner2019.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200406042628/https://event.on24.com/eventRegistration/EventLobbyServlet?target=reg20.jsp&amp;amp;referrer=https%3A%2F%2Ft.co%2FZh7re9fdqa%3Famp%3D1&amp;amp;eventid=2229201&amp;amp;sessionid=1&amp;amp;key=ED47CAFB79B2EBDD27558E3F939BE255&amp;amp;regTag=&amp;amp;sourcepage=register&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lc.fie.umich.mx/~legg/complexlayered.php&#34; target=&#34;_blank&#34; id=&#34;An Efficient Transport Estimator for Complex Layered Materials&#34;&gt;An Efficient Transport Estimator for Complex Layered Materials&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new technique to speed up the rendering of complex, layered materials&lt;/li&gt;
&lt;li&gt;the model doesn&amp;rsquo;t rely on any precomputation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-126/paperbanner.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://lc.fie.umich.mx/~legg/papers/complexlayered/papercomplexlayered.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200406042759/https://lc.fie.umich.mx/~legg/complexlayered.php&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://extremelearning.com.au/isotropic-blue-noise-point-sets/&#34; target=&#34;_blank&#34; id=&#34;A new method to construct isotropic blue-noise point sets with uniform projections&#34;&gt;A new method to construct isotropic blue-noise point sets with uniform projections&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a method for direct construction of tileable isotropic blue noise&lt;/li&gt;
&lt;li&gt;the technique is based on improved Correlated Shuffling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-126/Tiling10.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200406042834/http://extremelearning.com.au/isotropic-blue-noise-point-sets/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://twitter.com/FreyaHolmer/status/1244407595059884033&#34; target=&#34;_blank&#34; id=&#34;a little thread on a neat way to interpolate across a triangle!&#34;&gt;a little thread on a neat way to interpolate across a triangle!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A twitter thread that explains what barycentric coordinates are and how they are commonly used in computer graphics to interpolate data&lt;/li&gt;
&lt;li&gt;provides animated graphics to explain the concepts more visually&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-126/barycentric_twitter.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200401042530/https://twitter.com/FreyaHolmer/status/1244407595059884033&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Sean McAlliste for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 125 — March 29, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-125/</link>
      <pubDate>Sun, 29 Mar 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-125/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://miketuritzin.com/post/hierarchical-depth-buffers/&#34; target=&#34;_blank&#34; id=&#34;Hierarchical Depth Buffers&#34;&gt;Hierarchical Depth Buffers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents what Hierarchical depth buffers are, what they are used for and how to generate them&lt;/li&gt;
&lt;li&gt;two different techniques for calculating these buffers are presented&lt;/li&gt;
&lt;li&gt;one pixel shader based method and a compute shader variation&lt;/li&gt;
&lt;li&gt;the compute shader variation is designed to only generate a single MIP level, not a full MIP chain&lt;/li&gt;
&lt;li&gt;presents a performance comparison between the two techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-125/mips-4-5-6.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=SNwRkAuCp24&#34; target=&#34;_blank&#34; id=&#34;[Video] Commandos Cone of Sight FX in Unity | GPUMAN&#34;&gt;[Video] Commandos Cone of Sight FX in Unity | GPUMAN&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial explains how to implement a cone of sight that is occluded by objects&lt;/li&gt;
&lt;li&gt;intersection with the primary scene depth buffer allows constraining the effect to the surface of the terrain&lt;/li&gt;
&lt;li&gt;a secondary &amp;ldquo;shadow map&amp;rdquo; from the position of the player is used to detect occlusion in the cone&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-125/cone_of_sight.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1725_links_to_gdc_2020_talks_and_more&#34; target=&#34;_blank&#34; id=&#34;Links to GDC 2020 Talks and More&#34;&gt;Links to GDC 2020 Talks and More&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of link resources from GDC, GTC&lt;/li&gt;
&lt;li&gt;additional resources from Google, Intel, Ubisoft and Khronos&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-125/gdc2020.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200330014356/https://asawicki.info/news_1725_links_to_gdc_2020_talks_and_more&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-2003-26/&#34; target=&#34;_blank&#34; id=&#34;PIX 2003.26 – DirectX 12 Ultimate and DXIL debugging&#34;&gt;PIX 2003.26 – DirectX 12 Ultimate and DXIL debugging&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new Pix for Windows release with support for DXR 1.1, Mesh shaders and sampler feedback&lt;/li&gt;
&lt;li&gt;also includes updated timeline news with the correlation between CPU and GPU work&lt;/li&gt;
&lt;li&gt;additionally adds support for DXIL source-level debugging&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-125/pix.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200330014505/https://devblogs.microsoft.com/pix/pix-2003-26/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/nsight-graphics-2020-2/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Announces Nsight Graphics 2020.2&#34;&gt;NVIDIA Announces Nsight Graphics 2020.2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;GPU Trace and Nsight Aftermath now supports Vulkan&lt;/li&gt;
&lt;li&gt;Advanced mode for GPU Trace collects more in-depth information over several continues frames&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-125/nsight.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200330015704/https://news.developer.nvidia.com/nsight-graphics-2020-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jorenjoestar.github.io/post/shader_augment_for_pipelines/shader_augment_for_pipelines/&#34; target=&#34;_blank&#34; id=&#34;Augmenting shader languages for modern rendering APIs&#34;&gt;Augmenting shader languages for modern rendering APIs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents his domain-specific language and how it&amp;rsquo;s used to extend shaders&lt;/li&gt;
&lt;li&gt;allows all state required for pipeline objects to be encoded as part of the shader code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-125/shader_language.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200330021218/https://jorenjoestar.github.io/post/shader_augment_for_pipelines/shader_augment_for_pipelines/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/developer/tools-software/graphics/b/blog/posts/vulkan-mobile-best-practices-and-management&#34; target=&#34;_blank&#34; id=&#34;Vulkan Mobile Best Practices - Management of Command Buffers and Multi-Threaded Recording&#34;&gt;Vulkan Mobile Best Practices - Management of Command Buffers and Multi-Threaded Recording&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents best practices for multithreaded command recording with Vulkan&lt;/li&gt;
&lt;li&gt;show performance comparisons of different methods and discusses common mistakes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-125/vulkan_cmd_buffer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200326161949/https://community.arm.com/developer/tools-software/graphics/b/blog/posts/vulkan-mobile-best-practices-and-management&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices&#34; target=&#34;_blank&#34; id=&#34;WebGL best practices&#34;&gt;WebGL best practices&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article contains many best practices for WebGL applications&lt;/li&gt;
&lt;li&gt;discussing a large number of topics including memory estimation, performance guidelines, GLSL tips, texture performance, and constraints&lt;/li&gt;
&lt;li&gt;additionally covers some WebGL 2.0 and Canvas related advice&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-125/webgl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200330021252/https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://kusma.xyz/blog/2020/03/24/d3d12-mesa-driver.html&#34; target=&#34;_blank&#34; id=&#34;Introducing OpenCL™ and OpenGL® on DirectX&#34;&gt;Introducing OpenCL™ and OpenGL® on DirectX&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Microsoft and Collabora are working together to implement an OpenCL and OpenGL layer for Mesa that is running on D3D12&lt;/li&gt;
&lt;li&gt;provides a summary of what Mesa 3D is and why API translation is important&lt;/li&gt;
&lt;li&gt;also provides an overview of the implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-125/opengl_opencl_d3d.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200330021551/https://kusma.xyz/blog/2020/03/24/d3d12-mesa-driver.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devmesh.intel.com/projects/multi-adapter-particles&#34; target=&#34;_blank&#34; id=&#34;Multi-Adapter with Integrated and Discrete GPUs&#34;&gt;Multi-Adapter with Integrated and Discrete GPUs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presentation from Intel that presents how to use multiple adapters with D3D12&lt;/li&gt;
&lt;li&gt;techniques for work-sharing and dealing with synchronization&lt;/li&gt;
&lt;li&gt;offers performance numbers for the presented methods, best practices, and possible problems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-125/multi_adapter.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200330024404/https://devmesh.intel.com/projects/multi-adapter-particles&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devmesh.intel.com/projects/variable-rate-shading-tier-1-with-microsoft-directx-12-from-theory-to-practice&#34; target=&#34;_blank&#34; id=&#34;Variable Rate Shading Tier 1 with Microsoft DirectX* 12 from Theory to Practice&#34;&gt;Variable Rate Shading Tier 1 with Microsoft DirectX* 12 from Theory to Practice&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation provides an overview of Variable Rate Shading (VRS), explaining what shading and rasterization rate are&lt;/li&gt;
&lt;li&gt;shows what settings implicitly disable VRS on Tier 1 intel hardware&lt;/li&gt;
&lt;li&gt;presents how VRS is integrated into Unreal Engine 4, Chivalry II&lt;/li&gt;
&lt;li&gt;gives performance and quality examples for both&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-125/vrs_compare.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://s3-us-west-2.amazonaws.com/near-me-oregon/instances/132/uploads/attachments/custom_attachment/file/16833/GDC_2020_VRS_Tier1_Theory_To_Practice_Chivalry2.pdf?X-Amz-Expires=600&amp;amp;X-Amz-Date=20200330T021742Z&amp;amp;X-Amz-Algorithm=AWS4-HMAC-SHA256&amp;amp;X-Amz-Credential=AKIA4IMKIWYVKZ6JE7X7/20200330/us-west-2/s3/aws4_request&amp;amp;X-Amz-SignedHeaders=host&amp;amp;X-Amz-Signature=f43ef6e6ca4e22800152752d87de873b51c8e16300541308dbb128d289f1cf3d&#34; style=&#34;color:white;&#34;&gt;slides &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200330021839/https://devmesh.intel.com/projects/variable-rate-shading-tier-1-with-microsoft-directx-12-from-theory-to-practice&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/announcing-nvidia-rtxgi-sdk/&#34; target=&#34;_blank&#34; id=&#34;RTX Global Illumination SDK Now Available&#34;&gt;RTX Global Illumination SDK Now Available&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Nvidia released the RTX Global Illumination (RTXGI) SDK v1.0&lt;/li&gt;
&lt;li&gt;SDK provides a framework for realtime GI for games, it offers full source code&lt;/li&gt;
&lt;li&gt;post contains a video overview of the techniques from GDC 2019&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-125/rtxgi.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200330022208/https://news.developer.nvidia.com/announcing-nvidia-rtxgi-sdk/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/Texture-Tools-Exporter-2020-1/&#34; target=&#34;_blank&#34; id=&#34;Announcing the NVIDIA Texture Tools Exporter 2020.1&#34;&gt;Announcing the NVIDIA Texture Tools Exporter 2020.1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Nvidia released a new version of the DDS exporter&lt;/li&gt;
&lt;li&gt;improved mathematically correct filtering for mipmap generation adjusted to the content of the image&lt;/li&gt;
&lt;li&gt;support for high-quality BC7 and HDR formats&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-125/nvdds-picture-crop.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200323200348/https://news.developer.nvidia.com/Texture-Tools-Exporter-2020-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.wihlidal.com&#34; target=&#34;_blank&#34;&gt;Graham Wihlidal&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 124 — March 22, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-124/</link>
      <pubDate>Sun, 22 Mar 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-124/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/announcing-directx-12-ultimate/&#34; target=&#34;_blank&#34; id=&#34;Announcing DirectX 12 Ultimate&#34;&gt;Announcing DirectX 12 Ultimate&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;post containing an overview of the new D3D12 Feature level 12_2 now called DirectX 12 Ultimate&lt;/li&gt;
&lt;li&gt;covers Variable Rate Shading, Mesh Shaders, DirectX Raytracing 1.1 and Sampler Feedback&lt;/li&gt;
&lt;li&gt;fully supported on PC and Xbox Series X&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-124/d3d12_ultimate.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200320155424/https://devblogs.microsoft.com/directx/announcing-directx-12-ultimate/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/35129311&#34; target=&#34;_blank&#34; id=&#34;Shaders For People Who Don&amp;#39;t Know How To Shader: Smooth blending with Sine&#34;&gt;Shaders For People Who Don&amp;#39;t Know How To Shader: Smooth blending with Sine&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial shows how to use color masks to apply runtime coloring with smooth blending to sprites in a 2D scene&lt;/li&gt;
&lt;li&gt;explains masking, blending over time and using a sin function to achieve effect looping over time&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-124/smooth_blending.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200323033607/https://www.patreon.com/posts/35129311&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/ray-tracing-in-vulkan&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing In Vulkan&#34;&gt;Ray Tracing In Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post provides an overview of the new Vulkan raytracing extensions&lt;/li&gt;
&lt;li&gt;using similar concepts as DirectX Raytracing&lt;/li&gt;
&lt;li&gt;the acceleration structure can be built on the CPU or GPU&lt;/li&gt;
&lt;li&gt;the article explains how CPU scheduling is exposed to the application&lt;/li&gt;
&lt;li&gt;adds support for DXR 1.1 features such as inline raytracing&lt;/li&gt;
&lt;li&gt;additionally provides a few code examples&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-124/vulkan_raytracing.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200318072227/https://www.khronos.org/blog/ray-tracing-in-vulkan&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=CFXKTXtil34&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Reinventing the Geometry Pipeline: Mesh Shaders in DirectX 12 | Shawn Hargreaves&#34;&gt;[video] Reinventing the Geometry Pipeline: Mesh Shaders in DirectX 12 | Shawn Hargreaves&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation provides an overview of mesh shaders&lt;/li&gt;
&lt;li&gt;explains the problem with the classical geometry pipeline and how the mesh shader pipeline is an improvement&lt;/li&gt;
&lt;li&gt;provides a walkthrough of code demonstrating how mesh shaders are implemented and what needs to be considered to achieve excellent performance&lt;/li&gt;
&lt;li&gt;explains the meshlet data structure and how to use this as a base for a mesh shader pipeline&lt;/li&gt;
&lt;li&gt;how to implement instancing, and using per-primitive attributes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-124/mesh_shader_pipeline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=0sJ_g-aWriQ&#34; target=&#34;_blank&#34; id=&#34;[video] Advanced Mesh Shaders | Martin Fuller&#34;&gt;[video] Advanced Mesh Shaders | Martin Fuller&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;build upon the @Reinventing the Geometry Pipeline: Mesh Shaders in DirectX 12&amp;rdquo; talks summarized above&lt;/li&gt;
&lt;li&gt;provides more hardware details and how to design mesh shader implementation to give excellent performance&lt;/li&gt;
&lt;li&gt;extending the meshlet pipeline with more advanced culling and mesh data compression&lt;/li&gt;
&lt;li&gt;providing performance numbers for different techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-124/mesh_shader_advanced.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=q7AG23s2_AM&#34; target=&#34;_blank&#34; id=&#34;DirectX 12 Sampler Feedback | Claire Andrews&#34;&gt;DirectX 12 Sampler Feedback | Claire Andrews&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video provides an overview of the new Sampler Feedback feature added to D3D12&lt;/li&gt;
&lt;li&gt;shows how to use compile sampler feedback and reserved resources to improve texture streaming&lt;/li&gt;
&lt;li&gt;overview of texture space shading and how sampler feedback can be used to guide the system&lt;/li&gt;
&lt;li&gt;closing with an API overview&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-124/SamplerFeedback.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/directx&#34; target=&#34;_blank&#34; id=&#34;Nvidia - DirectX&#34;&gt;Nvidia - DirectX&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview articles by Nvidia for D3D12 Ray Tracing, Mesh shading, Variable Rate Shading, and Sampler Feedback&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-124/nvidia_directx.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200323034543/https://developer.nvidia.com/directx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/new-vulkan-device-generated-commands/&#34; target=&#34;_blank&#34; id=&#34;New: Vulkan Device Generated Commands&#34;&gt;New: Vulkan Device Generated Commands&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes the VK_NV_device_generated_commands  extension for Vulkan&lt;/li&gt;
&lt;li&gt;it allows partial command buffers to be generated on the GPU&lt;/li&gt;
&lt;li&gt;more flexible then D3D12 ExecuteIndirect&lt;/li&gt;
&lt;li&gt;main functional addition is the support of changing of shaders between commands&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-124/IndirectDrawCommandLayout.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200323034617/https://devblogs.nvidia.com/new-vulkan-device-generated-commands/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://monter.handmade.network/blogs/p/7228-enable_ray_tracing__two-level_acceleration_structure#22347&#34; target=&#34;_blank&#34; id=&#34;Enable Ray Tracing: Two-Level Acceleration Structure&#34;&gt;Enable Ray Tracing: Two-Level Acceleration Structure&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of a BVH structure for GPU raytracing&lt;/li&gt;
&lt;li&gt;this is not using any raytracing APIs and focuses on the data structure design&lt;/li&gt;
&lt;li&gt;how to structure the tree, handle animated meshes and refit the structure for changes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-124/blas.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200323035107/https://monter.handmade.network/blogs/p/7228-enable_ray_tracing__two-level_acceleration_structure&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/gfxprogrammer&#34; target=&#34;_blank&#34;&gt;Ken Russell&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 123 — March 15, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-123/</link>
      <pubDate>Sun, 15 Mar 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-123/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://psgraphics.blogspot.com/2020/03/fresnel-equations-schlick-approximation.html&#34; target=&#34;_blank&#34; id=&#34;Fresnel Equations, Schlick Approximation, Metals, and Dielectrics&#34;&gt;Fresnel Equations, Schlick Approximation, Metals, and Dielectrics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post presents the fresnel equations that are used for smooth metals and surfaces such as water&lt;/li&gt;
&lt;li&gt;shows the Schlick approximations and compares them to the equations and where to retrieve the necessary parameter values&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-123/glossy_paint.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200314081604/http://psgraphics.blogspot.com/2020/03/fresnel-equations-schlick-approximation.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://astralcode.blogspot.com/2020/03/reverse-engineering-rendering-of_11.html&#34; target=&#34;_blank&#34; id=&#34;Reverse engineering the rendering of The Witcher 3, part 18 - color grading&#34;&gt;Reverse engineering the rendering of The Witcher 3, part 18 - color grading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Reverse engineering the color grading solution used in &amp;ldquo;The Witcher 3&amp;rdquo;&lt;/li&gt;
&lt;li&gt;shows how the indexing into LUT works, including rounding mode handing&lt;/li&gt;
&lt;li&gt;the solution used by the game can use up to 3 different LUTs for the same scene&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-123/Witcher3ColorGrading.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200321010744/https://astralcode.blogspot.com/2020/03/reverse-engineering-rendering-of_11.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jvns.ca/blog/2020/03/15/writing-shaders-with-signed-distance-functions/&#34; target=&#34;_blank&#34; id=&#34;Getting started with shaders: signed distance functions!&#34;&gt;Getting started with shaders: signed distance functions!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article aimed at beginners presents how to use ShaderToy to get started with shader development&lt;/li&gt;
&lt;li&gt;extends the example from simple colors to animated scenes&lt;/li&gt;
&lt;li&gt;shows how to implement a spinning octahedron&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-123/spinning.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200317165928/https://jvns.ca/blog/2020/03/15/writing-shaders-with-signed-distance-functions/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://apoorvaj.io/aliasing-in-computer-graphics/&#34; target=&#34;_blank&#34; id=&#34;Aliasing in computer graphics&#34;&gt;Aliasing in computer graphics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of aliasing in digital signal processing&lt;/li&gt;
&lt;li&gt;then applies the information and shows how the same understanding applies to computer graphics&lt;/li&gt;
&lt;li&gt;covering rasterization, texture and shading aliasing&lt;/li&gt;
&lt;li&gt;short on time? Only read the TL;DR at the end&lt;/li&gt;
&lt;li&gt;example code provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-123/aliasing_texture_2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200315173850/https://apoorvaj.io/aliasing-in-computer-graphics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cyangamedev.wordpress.com/2020/03/13/sprite-glow-outline-shader-breakdown/&#34; target=&#34;_blank&#34; id=&#34;Sprite Glow/Outline Shader Breakdown&#34;&gt;Sprite Glow/Outline Shader Breakdown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial shows how to create an outline effect for 2D sprites&lt;/li&gt;
&lt;li&gt;implemented by storing a signed distance field in the alpha channel and using that additional information that in the pixel shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-123/spriteglow.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200314111611/https://cyangamedev.wordpress.com/2020/03/13/sprite-glow-outline-shader-breakdown/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/developer/tools-software/graphics/b/blog/posts/vulkan-best-practice-frequently-asked-questions-part-2&#34; target=&#34;_blank&#34; id=&#34;Vulkan Best Practices: Frequently Asked Questions - Part 2&#34;&gt;Vulkan Best Practices: Frequently Asked Questions - Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses buffer allocation, update and mapping strategies&lt;/li&gt;
&lt;li&gt;descriptor pools, texture transfer synchronization, fence signaling, memory alignment, and shader variations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-123/vulkanfaq.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200321011241/https://community.arm.com/developer/tools-software/graphics/b/blog/posts/vulkan-best-practice-frequently-asked-questions-part-2&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://nosferalatu.com/SimpleGPUHashTable.html&#34; target=&#34;_blank&#34; id=&#34;A Simple GPU Hash Table&#34;&gt;A Simple GPU Hash Table&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post discusses how to write a simple GPU Hash table implementation using CUDA&lt;/li&gt;
&lt;li&gt;uses 32-bit keys and values with open addressing and linear probing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-123/stdunorderedmap_vs_simplegpuhashtable.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200312182334/https://nosferalatu.com/SimpleGPUHashTable.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://iquilezles.org/www/articles/interiordistance/interiordistance.htm&#34; target=&#34;_blank&#34; id=&#34;Interior SDFs&#34;&gt;Interior SDFs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents that combining signed distance fields of primitives using min and max operations can create incorrect SDFs&lt;/li&gt;
&lt;li&gt;this is especially noticeable on the interiors of objects&lt;/li&gt;
&lt;li&gt;offers 5 different ideas/solutions on how to solve the problem&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-123/gfx00.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200321011454/http://iquilezles.org/www/articles/interiordistance/interiordistance.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/ray-tracing-essentials-part-4-the-ray-tracing-pipeline/&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing Essentials Part 4: The Ray Tracing Pipeline&#34;&gt;Ray Tracing Essentials Part 4: The Ray Tracing Pipeline&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 4 of ray tracing series by Nvidia&lt;/li&gt;
&lt;li&gt;this episode focuses on the RayTracing APIs in D3D and Vulkan&lt;/li&gt;
&lt;li&gt;discusses the types of shaders and how they are interconnected&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-123/RayTracingEssentials4.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200315023410/https://news.developer.nvidia.com/ray-tracing-essentials-part-4-the-ray-tracing-pipeline/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=s7eNoDAJxMk&#34; target=&#34;_blank&#34; id=&#34;The Division ECHO Fx In Unity | GPUMAN&#34;&gt;The Division ECHO Fx In Unity | GPUMAN&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Video tutorial for Unity that shows how to present the Echo effect (a point-cloud based rendering overlay) from &amp;ldquo;The Division&amp;rdquo;&lt;/li&gt;
&lt;li&gt;covers how to generate the data, implement the rendering, interactions with the player and post-processing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-123/unityEcho.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://petermorley.wixsite.com/octopusprime314/why-dxr-1-1-vs-1-0&#34; target=&#34;_blank&#34; id=&#34;Why DXR 1.1 vs 1.0?&#34;&gt;Why DXR 1.1 vs 1.0?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of what is new with DXR 1.1&lt;/li&gt;
&lt;li&gt;presents how to extend a depth pre-pass system for shader ray tracing using the DXR 1.1 RayQuery object&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-123/dxr1_1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200321012022/https://petermorley.wixsite.com/octopusprime314/why-dxr-1-1-vs-1-0&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/ARM-software/astc-encoder/blob/master/Docs/FormatOverview.md&#34; target=&#34;_blank&#34; id=&#34;ASTC Format Overview&#34;&gt;ASTC Format Overview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the document provides an overview of the ASTC texture compression format&lt;/li&gt;
&lt;li&gt;explains how end-point color compression works&lt;/li&gt;
&lt;li&gt;encoding strategies, block sizes and how the format allows the compressor to adapt the techniques for each block&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-123/astc-quality.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200321012223/https://github.com/ARM-software/astc-encoder/blob/master/Docs/FormatOverview.md&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/developer/tools-software/graphics/b/blog/posts/automated-performance-advice-for-android-games&#34; target=&#34;_blank&#34; id=&#34;Automated Performance Advice for Android Games&#34;&gt;Automated Performance Advice for Android Games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to use new ARM tools to gather performance information (later versions will support Continues integration)&lt;/li&gt;
&lt;li&gt;provides an easy to read report that can be used by non-programmers to validate the performance of the game&lt;/li&gt;
&lt;li&gt;the tool allows performance budgets to be defined, will be shown in the UI&lt;/li&gt;
&lt;li&gt;Automated screenshot collection when frames take longer than a specified threshold to produce&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-123/arm_profiler.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200321012337/https://community.arm.com/developer/tools-software/graphics/b/blog/posts/automated-performance-advice-for-android-games&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://erichaines.com/&#34; target=&#34;_blank&#34;&gt;Eric Haines&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 122 — March 8, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-122/</link>
      <pubDate>Sun, 08 Mar 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-122/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.unrealengine.com/en-US/tech-blog/how-epic-games-is-handling-auto-exposure-in-4-25&#34; target=&#34;_blank&#34; id=&#34;How Epic Games is handling auto exposure in 4.25&#34;&gt;How Epic Games is handling auto exposure in 4.25&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how exposure used to work in Unreal Engine 4.24&lt;/li&gt;
&lt;li&gt;what problems the behavior caused and how the new implementation solves these problems&lt;/li&gt;
&lt;li&gt;looking at grey-point targeting, physical exposure units, lens values, and perceptual brightness&lt;/li&gt;
&lt;li&gt;additionally provides an overview of the debug modes available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-122/ue_exposure.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200309034302/https://www.unrealengine.com/en-US/tech-blog/how-epic-games-is-handling-auto-exposure-in-4-25&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://astralcode.blogspot.com/2020/03/reverse-engineering-rendering-of.html&#34; target=&#34;_blank&#34; id=&#34;Reverse engineering the rendering of The Witcher 3, part 17 - the Milky Way&#34;&gt;Reverse engineering the rendering of The Witcher 3, part 17 - the Milky Way&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how the milky way rendering from the Witcher 3 - Blood &amp;amp; Wine DLC was implemented&lt;/li&gt;
&lt;li&gt;including a brief look at the star rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-122/frame_onlymw.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200309034230/https://astralcode.blogspot.com/2020/03/reverse-engineering-rendering-of.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gamedevbill.com/paper-shader-in-unity/&#34; target=&#34;_blank&#34; id=&#34;Paper Shader in Unity&#34;&gt;Paper Shader in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A Unity tutorial that focuses on the deformation of a plane to create a crumbled paper look&lt;/li&gt;
&lt;li&gt;implemented using a vertex shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-122/paper_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200309034138/https://gamedevbill.com/paper-shader-in-unity/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.reddit.com/r/gamedev/comments/fcaql8/how_to_do_boolean_operations_on_meshes_for/&#34; target=&#34;_blank&#34; id=&#34;How to do boolean operations on meshes for procedural cutting of geometry!&#34;&gt;How to do boolean operations on meshes for procedural cutting of geometry!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post provides an overview of an algorithm for boolean operations on geometry&lt;/li&gt;
&lt;li&gt;this allows for runtime slicing of meshes such as for dynamic destructions systems&lt;/li&gt;
&lt;li&gt;the idea is based around finding the overlap of two meshes to generate new vertices along the interception to create the cut&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-122/destruction.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200309034651/https://www.reddit.com/r/gamedev/comments/fcaql8/how_to_do_boolean_operations_on_meshes_for/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/ray-tracing-essentials-part-3-ray-tracing-hardware/&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing Essentials Part 3: Ray Tracing Hardware&#34;&gt;Ray Tracing Essentials Part 3: Ray Tracing Hardware&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 3 of Nvidia ray tracing series&lt;/li&gt;
&lt;li&gt;this part focuses on the history of ray tracing hardware and presents how Nvidia changed its design approach&lt;/li&gt;
&lt;li&gt;Turing has dedicated hardware for Raytracing and machine learning tasks. the previous architecture contained only general-purpose compute&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-122/ray_tracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200309034807/https://news.developer.nvidia.com/ray-tracing-essentials-part-3-ray-tracing-hardware/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://takinginitiative.wordpress.com/2020/03/07/an-idiots-guide-to-animation-compression/&#34; target=&#34;_blank&#34; id=&#34;An idiot&amp;#39;s guide to animation compression&#34;&gt;An idiot&amp;#39;s guide to animation compression&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses techniques to compress data for skeletal animation data used for game runtimes&lt;/li&gt;
&lt;li&gt;presents an overview of standard terms&lt;/li&gt;
&lt;li&gt;followed by a look at data quantization, quaternion compression, and track compression&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-122/animation_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200309034957/https://takinginitiative.wordpress.com/2020/03/07/an-idiots-guide-to-animation-compression/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://zone.dog/braindump/mesh_shaders/&#34; target=&#34;_blank&#34; id=&#34;GL_NV_mesh_shader Simple Mesh Shader Example&#34;&gt;GL_NV_mesh_shader Simple Mesh Shader Example&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a very brief high-level overview of mesh shaders and necessary OpenGL extension&lt;/li&gt;
&lt;li&gt;provides a condensed OpenGL example that renders a fullscreen quad&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-122/mesh_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200309035543/http://zone.dog/braindump/mesh_shaders/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1722_secrets_of_direct3d_12_copies_to_the_same_buffer&#34; target=&#34;_blank&#34; id=&#34;Secrets of Direct3D 12: Copies to the Same Buffer&#34;&gt;Secrets of Direct3D 12: Copies to the Same Buffer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents multiple scenarios in D3D12 where manual barrier synchronization is required&lt;/li&gt;
&lt;li&gt;followed by a back-to-back copy into buffers that cannot be synchronized by barriers and shows the behavior observed on actual hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-122/D3D12_CopyDestinationTest_RGP.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200305040941/https://asawicki.info/news_1722_secrets_of_direct3d_12_copies_to_the_same_buffer&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ourmachinery.com/post/borderland-between-rendering-and-editor-part-1/&#34; target=&#34;_blank&#34; id=&#34;Borderland between Rendering and Editor - Part 1&#34;&gt;Borderland between Rendering and Editor - Part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post focuses on efficient and high-quality grid rendering for &amp;ldquo;The Machinery&amp;rdquo; editor&lt;/li&gt;
&lt;li&gt;implementation is done in a pixel shader on world space quad created by two triangles&lt;/li&gt;
&lt;li&gt;shaders deals with LOD selection, anti-aliased line rendering, falloff for gracing angles and grid extends&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-122/grid_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200309035651/https://ourmachinery.com/post/borderland-between-rendering-and-editor-part-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://lesleylai.info&#34; target=&#34;_blank&#34;&gt;Lesley Lai&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 121 — March 1, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-121/</link>
      <pubDate>Sun, 01 Mar 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-121/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zeux.io/2020/02/27/writing-an-efficient-vulkan-renderer/&#34; target=&#34;_blank&#34; id=&#34;Writing an efficient Vulkan renderer&#34;&gt;Writing an efficient Vulkan renderer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;copy of an article that was published in GPU Zen 2, updated for changes introduced with Vulkan 1.1 and 1.2&lt;/li&gt;
&lt;li&gt;covering memory management, Descriptor sets, command buffers, pipeline barriers, render passes and pipeline management&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-121/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200301155954/https://zeux.io/2020/02/27/writing-an-efficient-vulkan-renderer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/ray-tracing-essentials-part-2-rasterization-versus-ray-tracing/&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing Essentials Part 2: Rasterization versus Ray Tracing&#34;&gt;Ray Tracing Essentials Part 2: Rasterization versus Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video comparing rasterization and ray-tracing algorithm&lt;/li&gt;
&lt;li&gt;analyzing the strengths and weaknesses of both techniques and how they complement each other&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-121/bistro_raytracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200303044413/https://news.developer.nvidia.com/ray-tracing-essentials-part-2-rasterization-versus-ray-tracing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://behindthepixels.io/publications/&#34; target=&#34;_blank&#34; id=&#34;A Survey of Temporal Antialiasing Techniques&#34;&gt;A Survey of Temporal Antialiasing Techniques&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents an overview of Temporal Antialiasing (TAA) techniques, the history, different implementation techniques&lt;/li&gt;
&lt;li&gt;follows up with a presentation of open challenges and discussion of possibilities for improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-121/TAA.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://behindthepixels.io/assets/files/TemporalAA.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/http://behindthepixels.io/assets/files/TemporalAA.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200303044431/http://behindthepixels.io/publications/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://docs.google.com/document/d/1mqV5N3rPRtR2ZabrUR0AkGnqCMmgv9Su4mgUxKCtod0/edit&#34; target=&#34;_blank&#34; id=&#34;Compact PBR texture packing and blending experiment with Shader Graph&#34;&gt;Compact PBR texture packing and blending experiment with Shader Graph&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents findings from compressing PBR material information into a single texture&lt;/li&gt;
&lt;li&gt;developed for terrain-like materials&lt;/li&gt;
&lt;li&gt;shows a comparison of memory usage and performance improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-121/texture_packing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200303044511/https://docs.google.com/document/d/1mqV5N3rPRtR2ZabrUR0AkGnqCMmgv9Su4mgUxKCtod0/edit&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/developer/tools-software/graphics/b/blog/posts/vulkan-best-practices-frequently-asked-questions-part-1&#34; target=&#34;_blank&#34; id=&#34;Vulkan Mobile Best Practices: Frequently Asked Questions - Part 1&#34;&gt;Vulkan Mobile Best Practices: Frequently Asked Questions - Part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A FAQ for Vulkan best practices guide by ARM&lt;/li&gt;
&lt;li&gt;swap chain acquisition, image transitions, device lost debugging, and transient attachments&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-121/vulkan_faq.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200303044533/https://community.arm.com/developer/tools-software/graphics/b/blog/posts/vulkan-best-practices-frequently-asked-questions-part-1&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=TbWQ4lMnLNw&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Two Minute Papers - The Story of Light&#34;&gt;[video] Two Minute Papers - The Story of Light&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the 7-min video provides a walk through the history of light transport research&lt;/li&gt;
&lt;li&gt;showing numerous techniques, how multi importance sampling can be used to combine multiple techniques&lt;/li&gt;
&lt;li&gt;closes with the presentation of the &amp;ldquo;Unifying points, beams, and paths in volumetric light transport simulation&amp;rdquo; (UPBP) paper&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-121/TheStoryOfLight.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://iquilezles.org/www/articles/trisect/trisect.htm&#34; target=&#34;_blank&#34; id=&#34;fast trisect in GLSL&#34;&gt;fast trisect in GLSL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an approximation to the GLSL trisect function&lt;/li&gt;
&lt;li&gt;trisect splits an angle into three equal parts, playing the same role as square root in quadratics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-121/trisect_glsl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200303044551/http://iquilezles.org/www/articles/trisect/trisect.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jeremyong.com/klein/case_studies/ga_skeletal_animation/&#34; target=&#34;_blank&#34; id=&#34;Basic Skeletal Animation with Geometric Algebra&#34;&gt;Basic Skeletal Animation with Geometric Algebra&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial shows how to implement a skeletal animation system using Geometric Algebra (GA)&lt;/li&gt;
&lt;li&gt;additionally introduces the required GA concepts along the way&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-121/ga_animation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200303044608/https://www.jeremyong.com/klein/case_studies/ga_skeletal_animation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://ccraft.ddns.net/wordpress/?p=17&#34; target=&#34;_blank&#34; id=&#34;Packing UVs for deferred materials&#34;&gt;Packing UVs for deferred materials&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to pack UV and gradients (ddx, ddy) into 32-bit gbuffer channels&lt;/li&gt;
&lt;li&gt;this is used for deferred materials where the results of texture samples are not stored in the gbuffer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-121/uv_packing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200303044624/http://ccraft.ddns.net/wordpress/?p=17&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cyangamedev.wordpress.com/2020/02/24/sprite-stencil-overlay-breakdown/&#34; target=&#34;_blank&#34; id=&#34;Sprite Stencil Overlay Breakdown (Forward Renderer)&#34;&gt;Sprite Stencil Overlay Breakdown (Forward Renderer)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial shows how to implement a checkerboard pattern if a 2D player is behind another object&lt;/li&gt;
&lt;li&gt;this is achieved using the stencil buffer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-121/shaderspritestencil.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200303044641/https://cyangamedev.wordpress.com/2020/02/24/sprite-stencil-overlay-breakdown/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 120 — February 23, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-120/</link>
      <pubDate>Sun, 23 Feb 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-120/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://floooh.github.io/2020/02/17/sokol-gfx-backend-tour-gl.html&#34; target=&#34;_blank&#34; id=&#34;sokol_gfx.h Backend Tour&#34;&gt;sokol_gfx.h Backend Tour&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a 3 part series that provides an overview of the backend implementations of sokol_gfx for the OpenGL, D3D11 and Metal implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-120/sokol_gfx.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200218154559/https://floooh.github.io/2020/02/17/sokol-gfx-backend-tour-gl.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/bringing-hlsl-ray-tracing-to-vulkan/&#34; target=&#34;_blank&#34; id=&#34;Bringing HLSL Ray Tracing to Vulkan&#34;&gt;Bringing HLSL Ray Tracing to Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Nvidia added support to the DirectX Shader Compiler (DXR) to generate SPIR-V that is valid to be used with the Vulkan SPV_NV_ray_tracing extension&lt;/li&gt;
&lt;li&gt;the article shows an example and explains how concepts are mapped to SPIR-V&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-120/VKShadowRTX.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200224045938/https://devblogs.nvidia.com/bringing-hlsl-ray-tracing-to-vulkan/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2020/02/17/ways-to-speedup-pixel-shader-execution/&#34; target=&#34;_blank&#34; id=&#34;Ways to speedup pixel shader execution&#34;&gt;Ways to speedup pixel shader execution&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of techniques to optimize pixel shaders&lt;/li&gt;
&lt;li&gt;starting with techniques to make sure that pixel shaders are only run if necessary and offers several methods to reduce the cost of pixel shaders afterward&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-120/optimizations.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200224050227/https://interplayoflight.wordpress.com/2020/02/17/ways-to-speedup-pixel-shader-execution/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://astralcode.blogspot.com/2020/02/reverse-engineering-rendering-of.html&#34; target=&#34;_blank&#34; id=&#34;Reverse engineering the rendering of The Witcher 3, part 16 - shooting stars&#34;&gt;Reverse engineering the rendering of The Witcher 3, part 16 - shooting stars&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents how shooting stars in the Witcher 3 are implemented&lt;/li&gt;
&lt;li&gt;show the vertex and pixel shader implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-120/shooting_stars.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200218181006/https://astralcode.blogspot.com/2020/02/reverse-engineering-rendering-of.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zero-radiance.github.io/post/analytic-media/&#34; target=&#34;_blank&#34; id=&#34;Sampling Analytic Participating Media&#34;&gt;Sampling Analytic Participating Media&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the in-depth article presents the physical models and approximations of participating media (such as fog, water)&lt;/li&gt;
&lt;li&gt;presents constant, linear and exponential fog implementations&lt;/li&gt;
&lt;li&gt;extends these solutions to express atmospheres and provides approximations for numerical approaches&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-120/spherical_param.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200224050430/https://zero-radiance.github.io/post/analytic-media/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jorenjoestar.github.io/post/data_driven_rendering_pipeline/&#34; target=&#34;_blank&#34; id=&#34;Data Driven Rendering: Pipelines&#34;&gt;Data Driven Rendering: Pipelines&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the newest part in article series about defining a data-driven rendering pipeline&lt;/li&gt;
&lt;li&gt;focusing on the definition of a render pipeline&lt;/li&gt;
&lt;li&gt;a simplified version of a RenderGraph/FrameGraph system&lt;/li&gt;
&lt;li&gt;build around render targets as central primitive&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-120/HydraFrame.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200224025431/https://jorenjoestar.github.io/post/data_driven_rendering_pipeline/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/shader-graph-32245563&#34; target=&#34;_blank&#34; id=&#34;Shader Graph Conversion : Eyeball Shader&#34;&gt;Shader Graph Conversion : Eyeball Shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial explains how to implement a stylized Eyeball Shader using Unity Shader Graph&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-120/eyeballs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200224050550/https://www.patreon.com/posts/shader-graph-32245563&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://miketuritzin.com/post/rendering-particles-with-compute-shaders/&#34; target=&#34;_blank&#34; id=&#34;Rendering Particles with Compute Shaders&#34;&gt;Rendering Particles with Compute Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents an approach to render particle effects using compute shaders&lt;/li&gt;
&lt;li&gt;the primary focus is optimization for tiny, pixel-sized particles that are additively blended&lt;/li&gt;
&lt;li&gt;lacking support of atomic on floats requires float-&amp;gt;int-&amp;gt;float conversions in the shader and how this influences the final implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-120/orange-spread-new.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200224050655/https://miketuritzin.com/post/rendering-particles-with-compute-shaders/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/wp-content/uploads/2020/02/SDK-Survey_12_2020_LunarG-website-Summary-report_02_19_20.pdf&#34; target=&#34;_blank&#34; id=&#34;LunarG Vulkan Ecosystem &amp;amp; SDK Survey Results&#34;&gt;LunarG Vulkan Ecosystem &amp;amp; SDK Survey Results&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the results from the Vulkan survey have been released&lt;/li&gt;
&lt;li&gt;contains comments, and what are the next steps that are taken to address the feedback&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-120/vulkan_survey.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200224050748/https://www.lunarg.com/wp-content/uploads/2020/02/SDK-Survey_12_2020_LunarG-website-Summary-report_02_19_20.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://theinstructionlimit.com/unity-toy-path-tracer&#34; target=&#34;_blank&#34; id=&#34;Unity Toy Path Tracer&#34;&gt;Unity Toy Path Tracer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to implement a Path Tracer using the Unity Data-Oriented Technology Stack (DOTS)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-120/unity_path_tracer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200219134352/http://theinstructionlimit.com/unity-toy-path-tracer&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://android-developers.googleblog.com/2020/02/handling-device-orientation-efficiently.html&#34; target=&#34;_blank&#34; id=&#34;Handling Device Orientation Efficiently in Vulkan With Pre-Rotation&#34;&gt;Handling Device Orientation Efficiently in Vulkan With Pre-Rotation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes how to deal with device orientation changes in a Vulkan application efficiently&lt;/li&gt;
&lt;li&gt;describes how to query the information from the system, recreate Vulkan objects and necessary modifications to shader code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-120/vulkan_prerotation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200224050900/https://android-developers.googleblog.com/2020/02/handling-device-orientation-efficiently.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/postgoodism&#34; target=&#34;_blank&#34;&gt;Cort Stratton&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 119 — February 16, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-119/</link>
      <pubDate>Sun, 16 Feb 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-119/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.imgtec.com/blog/coherency-gathering-in-ray-tracing-the-benefits-of-hardware-ray-tracking/&#34; target=&#34;_blank&#34; id=&#34;Coherency gathering in ray tracing: the benefits of hardware ray tracking&#34;&gt;Coherency gathering in ray tracing: the benefits of hardware ray tracking&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the problems with ray tracing in terms of divergence workflows&lt;/li&gt;
&lt;li&gt;Imagination GPUs are able to reorder rays in hardware to maintain better coherency&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-119/ray_coherency.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200217062318/https://www.imgtec.com/blog/coherency-gathering-in-ray-tracing-the-benefits-of-hardware-ray-tracking/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://asher.gg/?p=2600&#34; target=&#34;_blank&#34; id=&#34;Create nice and feasible volumetric cloud in Unreal Engine 4&#34;&gt;Create nice and feasible volumetric cloud in Unreal Engine 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog posts presents how to use high quality volumetric fog in UE4 to simulate ground level rolling fog&lt;/li&gt;
&lt;li&gt;based on multiple layers of 3D texture based noise, and fake self shadowing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-119/ue4_fog.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200217062515/http://asher.gg/?p=2600&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://minionsart.github.io/tutorials/&#34; target=&#34;_blank&#34; id=&#34;Minions Art Tutorials&#34;&gt;Minions Art Tutorials&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collections of art, unity tutorials and shader introduction articles&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-119/tutorial_list.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200217062703/https://minionsart.github.io/tutorials/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jeremyong.com/Klein/&#34; target=&#34;_blank&#34; id=&#34;Klein&#34;&gt;Klein&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new Geometric Algebra designed for realtime graphics and animation applications&lt;/li&gt;
&lt;li&gt;including SSE optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-119/ga_math.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200217062755/https://www.jeremyong.com/Klein/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1721_how_to_correctly_interpolate_vertex_attributes_on_a_parallelogram_using_modern_gpus&#34; target=&#34;_blank&#34; id=&#34;How to Correctly Interpolate Vertex Attributes on a Parallelogram Using Modern GPUs?&#34;&gt;How to Correctly Interpolate Vertex Attributes on a Parallelogram Using Modern GPUs?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;article presents how to use barycentric coordinates in a pixel shader to manually interpoliate values in a quad&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-119/quad_blend.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200217062951/https://asawicki.info/news_1721_how_to_correctly_interpolate_vertex_attributes_on_a_parallelogram_using_modern_gpus&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/shaders-for-who-34008552&#34; target=&#34;_blank&#34; id=&#34;Shaders For People Who Don&amp;#39;t Know How To Shader: Deferred&#34;&gt;Shaders For People Who Don&amp;#39;t Know How To Shader: Deferred&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a brief overview of what deferred shading is&lt;/li&gt;
&lt;li&gt;shows how to customize the deferred shading logic used by unity&lt;/li&gt;
&lt;li&gt;expose global tweakable settings that influence the whole scene&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-119/deferred.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200217063118/https://www.patreon.com/posts/shaders-for-who-34008552&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://raphlinus.github.io/gpu/2020/02/12/gpu-resources.html&#34; target=&#34;_blank&#34; id=&#34;GPU resources&#34;&gt;GPU resources&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of gpu resources&lt;/li&gt;
&lt;li&gt;links to details about hardware, shader languages, and WebGPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-119/gpu_resources.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200214154449/https://raphlinus.github.io/gpu/2020/02/12/gpu-resources.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@jannik_boysen/procedural-skybox-shader-137f6b0cb77c&#34; target=&#34;_blank&#34; id=&#34;Reaching for the stars&#34;&gt;Reaching for the stars&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity article describes how to generate a stylized procedualr skybox&lt;/li&gt;
&lt;li&gt;shows how to generate proper speherical UVs, generate a sky gradient, stars, moon, sun and clouds&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-119/procedural_sky.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200217063240/https://medium.com/@jannik_boysen/procedural-skybox-shader-137f6b0cb77c&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ronja-tutorials.com/2020/02/11/material-property-blocks.html&#34; target=&#34;_blank&#34; id=&#34;Instancing and Material Property Blocks&#34;&gt;Instancing and Material Property Blocks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorials shows how to use  Material Property Blocks&lt;/li&gt;
&lt;li&gt;this feature allows Unity to better batch draw calls even if multiple materials are used&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-119/BallPit.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200217063300/https://www.ronja-tutorials.com/2020/02/11/material-property-blocks.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://mitchmcclellan.com/four-color-gradient/&#34; target=&#34;_blank&#34; id=&#34;Four Color Gradient&#34;&gt;Four Color Gradient&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;beginner Unity shader tutorial that shows how to implement a gradient made from 4 colors forming a quad&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-119/gradient.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200217063400/https://mitchmcclellan.com/four-color-gradient/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.alanzucconi.com/2019/10/08/journey-sand-shader-6/&#34; target=&#34;_blank&#34; id=&#34;Journey Sand Shader: Ripples&#34;&gt;Journey Sand Shader: Ripples&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;last part of Unity shader torial that shows how to add ripples into the sand dunes&lt;/li&gt;
&lt;li&gt;this is achieved using normal mapping&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-119/sand_ripples.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200217063434/https://www.alanzucconi.com/2019/10/08/journey-sand-shader-6/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gamedevbill.com/shader-graph-normal-calculation/&#34; target=&#34;_blank&#34; id=&#34;How to Calculate Shader Graph Normals&#34;&gt;How to Calculate Shader Graph Normals&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Unity tutorial that shows how to calculate new normals from a vertex shader&lt;/li&gt;
&lt;li&gt;this is required because the vertex shader modifies the vertex positions&lt;/li&gt;
&lt;li&gt;normal is calcuded by transform neighboring points and adjusting the normal based on the relative change of the points&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-119/NormalCalcTitle.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200217063512/https://gamedevbill.com/shader-graph-normal-calculation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://metalbyexample.com/&#34; target=&#34;_blank&#34;&gt;Warren Moore&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 118 — February 9, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-118/</link>
      <pubDate>Sun, 09 Feb 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-118/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@bgolus/generating-perfect-normal-maps-for-unity-f929e673fc57&#34; target=&#34;_blank&#34; id=&#34;Generating Perfect Normal Maps for Unity (and Other Programs)&#34;&gt;Generating Perfect Normal Maps for Unity (and Other Programs)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows what needs to be considered when baking normal maps for use with separate applications&lt;/li&gt;
&lt;li&gt;it shows what kind of different conventions exists, what common artifacts look like and how to verify that the content pipeline is correct&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-118/normal_maps.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200204125057/https://medium.com/@bgolus/generating-perfect-normal-maps-for-unity-f929e673fc57&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2020/02/09/a-fun-2d-rotation-matrix-derivation/&#34; target=&#34;_blank&#34; id=&#34;A Fun 2d Rotation Matrix Derivation&#34;&gt;A Fun 2d Rotation Matrix Derivation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows a connection between &amp;ldquo;2D cross product&amp;rdquo;, Complex Numbers and 2D rotation matrices&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-118/vectors2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200210050826/https://blog.demofox.org/2020/02/09/a-fun-2d-rotation-matrix-derivation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://twitter.com/zeuxcg/status/1226334381091872769&#34; target=&#34;_blank&#34; id=&#34;Normal matrices are overrated&#34;&gt;Normal matrices are overrated&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tweet shows an alternative formulation for a normal transformation matrix (required when non-uniform scaling is allowed)&lt;/li&gt;
&lt;li&gt;the technique uses less memory but more ALU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-118/normal_transform.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200210050943/https://twitter.com/zeuxcg/status/1226334381091872769&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cyangamedev.wordpress.com/2020/02/04/dissolve-shader-breakdown/&#34; target=&#34;_blank&#34; id=&#34;Dissolve Shader Breakdown&#34;&gt;Dissolve Shader Breakdown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity shader breakdown explains how to dissolve a mesh using a combination of noise and height based effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-118/dissolve.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200210051008/https://cyangamedev.wordpress.com/2020/02/04/dissolve-shader-breakdown/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://drive.google.com/file/d/19EHLJAfqQECjRRShHyS3mHrg4XFxpCOx/view&#34; target=&#34;_blank&#34; id=&#34;A Scalable Real-Time Many-Shadowed-Light Rendering System&#34;&gt;A Scalable Real-Time Many-Shadowed-Light Rendering System&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Siggraph presentation showcasing a shadow system that enables thousands of shadowed-lights in large environments&lt;/li&gt;
&lt;li&gt;uses a fixed size shadow map pool, each light allocates it&amp;rsquo;s the target size&lt;/li&gt;
&lt;li&gt;splits dynamic and static shadows, using conservative filtering for the highly sparse dynamic shadows&lt;/li&gt;
&lt;li&gt;presents several techniques for compression, filtering and an overview of performance&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-118/shadow_system.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.youtube.com/watch?v=lyYpFVB_-fI&amp;amp;feature=youtu.be&#34; style=&#34;color:white;&#34;&gt;video &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.boristhebrave.com/2020/02/08/wave-function-collapse-tips-and-tricks/&#34; target=&#34;_blank&#34; id=&#34;Wave Function Collapse tips and trick&#34;&gt;Wave Function Collapse tips and trick&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of the Wave Function Collapse algorithm&lt;/li&gt;
&lt;li&gt;a tile-based algorithm for the generation of procedural structures&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-118/wfc.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200210051233/https://www.boristhebrave.com/2020/02/08/wave-function-collapse-tips-and-tricks/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.yiningkarlli.com/2020/02/shadow-terminator-in-takua.html&#34; target=&#34;_blank&#34; id=&#34;Shadow Terminator in Takua&#34;&gt;Shadow Terminator in Takua&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a comparison between techniques to solve the harsh shadow terminator problem&lt;/li&gt;
&lt;li&gt;offers comparison images in different situations and with and without normal mapping&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-118/shadow_termination.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200210051311/https://blog.yiningkarlli.com/2020/02/shadow-terminator-in-takua.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://therealmjp.github.io/posts/sss-sg/&#34; target=&#34;_blank&#34; id=&#34;Approximating Subsurface Scattering With Spherical Gaussians&#34;&gt;Approximating Subsurface Scattering With Spherical Gaussians&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows a breakdown on how to approximate subsurface scattering from a point light using Spherical Gaussians&lt;/li&gt;
&lt;li&gt;presents why spherical harmonics are not a good fit to approximate point lights&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-118/spherical_gaussians.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200210051448/https://therealmjp.github.io/posts/sss-sg/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/pedanticcoder&#34; target=&#34;_blank&#34;&gt;Steven Cannavan&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 117 — February 2, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-117/</link>
      <pubDate>Sun, 02 Feb 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-117/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2020/02/03/separate-your-filters-svd-and-low-rank-approximation-of-image-filters/&#34; target=&#34;_blank&#34; id=&#34;Separate your filters! Separability, SVD and low-rank approximation of 2D image processing filters&#34;&gt;Separate your filters! Separability, SVD and low-rank approximation of 2D image processing filters&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the basics of Singular Value Decomposition&lt;/li&gt;
&lt;li&gt;shows how to use the concept to check if filters are separable and if not how it helps with approximations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-117/filtered_images.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200203151040/https://bartwronski.com/2020/02/03/separate-your-filters-svd-and-low-rank-approximation-of-image-filters/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gist.github.com/pxv8270/e3904c49cbd8ff52cb53d95ceda3980e&#34; target=&#34;_blank&#34; id=&#34;Volumetric Clouds Resources List&#34;&gt;Volumetric Clouds Resources List&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a collection of articles, presentations and other resources covering volumetric cloud rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-117/Smokeball.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200205041451/https://gist.github.com/pxv8270/e3904c49cbd8ff52cb53d95ceda3980e&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://fosdem.org/2020/schedule/event/rust_webgpu/&#34; target=&#34;_blank&#34; id=&#34;Building WebGPU with Rust&#34;&gt;Building WebGPU with Rust&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation provides an overview of the development of WebGPU&lt;/li&gt;
&lt;li&gt;presents a few API examples regarding how to use the API from Rust&lt;/li&gt;
&lt;li&gt;additionally offers a solution to prevent the spreading of generics required by the API&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-117/webgpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200205042526/https://fosdem.org/2020/schedule/event/rust_webgpu/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/2d-sprite-33606001&#34; target=&#34;_blank&#34; id=&#34;2D Sprite Overlay Effects&#34;&gt;2D Sprite Overlay Effects&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;short Unity tutorial that shows how to use sprites to simulate screenspace effects such as distortion and color shifts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-117/2d_sprite_overlay.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200205042543/https://www.patreon.com/posts/2d-sprite-33606001&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/custom-srp/baked-light/&#34; target=&#34;_blank&#34; id=&#34;Baked Light Light Maps and Probes&#34;&gt;Baked Light Light Maps and Probes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial shows how light baking is implemented in Unity&lt;/li&gt;
&lt;li&gt;shows how to integrate lightmaps and light probes into a custom render pipeline&lt;/li&gt;
&lt;li&gt;replace the default surface model during baking with a custom model&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-117/light_baking_unity.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200205042602/https://catlikecoding.com/unity/tutorials/custom-srp/baked-light/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/best-practices-gpu-performance-events/&#34; target=&#34;_blank&#34; id=&#34;Optimizing Game Development with GPU Performance Events&#34;&gt;Optimizing Game Development with GPU Performance Events&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents Do’s and Don’ts for the use of GPU performance events&lt;/li&gt;
&lt;li&gt;shows how to write performance event with D3D11, D3D12, Vulkan, and OpenGL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-117/metro_exodus.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200205042623/https://devblogs.nvidia.com/best-practices-gpu-performance-events/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.visualextract.com/posts/color-banding/&#34; target=&#34;_blank&#34; id=&#34;Color Banding&#34;&gt;Color Banding&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes what color banding is and what causes it&lt;/li&gt;
&lt;li&gt;presents a demo application that shows how dithering can help to reduce banding&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-117/ColorBanding.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200205042638/http://www.visualextract.com/posts/color-banding/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cyangamedev.wordpress.com/2020/01/28/worldspace-uvs-triplanar-mapping/&#34; target=&#34;_blank&#34; id=&#34;World space UVs &amp;amp; Triplanar Mapping&#34;&gt;World space UVs &amp;amp; Triplanar Mapping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial shows how WorldSpace positions can be used to texture planar object&lt;/li&gt;
&lt;li&gt;extends these ideas to show tri-planar mapping can be used to texture arbitary meshes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-117/multitexturetriplanar.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200205042656/https://cyangamedev.wordpress.com/2020/01/28/worldspace-uvs-triplanar-mapping/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://tayfunkayhan.wordpress.com/2020/01/26/vulkan-bad-practices/&#34; target=&#34;_blank&#34; id=&#34;Vulkan: Bad Practices&#34;&gt;Vulkan: Bad Practices&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents several Vulkan patterns that cause reduced performance and should be avoided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-117/vulkan_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200205042714/https://tayfunkayhan.wordpress.com/2020/01/26/vulkan-bad-practices/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://jcgt.org/published/0009/01/02/&#34; target=&#34;_blank&#34; id=&#34;Progressive Least-Squares Encoding for Linear Bases&#34;&gt;Progressive Least-Squares Encoding for Linear Bases&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a GPU compatible algorithm for processive approximation least-square encoding into linear bases&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-117/least_squares.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://jcgt.org/published/0009/01/02/paper.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20200205042805/http://jcgt.org/published/0009/01/02/paper.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200127073426/http://jcgt.org/published/0009/01/02/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Sean McAlliste for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 116 — January 26, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-116/</link>
      <pubDate>Sun, 26 Jan 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-116/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zeux.io/2020/01/22/learning-from-data/&#34; target=&#34;_blank&#34; id=&#34;Learning from data&#34;&gt;Learning from data&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how ordering mesh data can influence rendering performance&lt;/li&gt;
&lt;li&gt;compares different algorithms developed for this purpose&lt;/li&gt;
&lt;li&gt;the primary focus is on how to train these algorithms using machine learning techniques&lt;/li&gt;
&lt;li&gt;analyzes the results of different approaches and presents results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-116/vcachetuner.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/using-amd-freesync-premium-pro-hdr-code-samples/&#34; target=&#34;_blank&#34; id=&#34;Using AMD FreeSync™ Premium Pro HDR: Code Samples&#34;&gt;Using AMD FreeSync™ Premium Pro HDR: Code Samples&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to enable AMD FreeSync using D3D12 and Vulkan&lt;/li&gt;
&lt;li&gt;presents how to use the library to encode color information into the desired HDR display format&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-116/freesync.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/news/press/khronos-group-releases-vulkan-1.2&#34; target=&#34;_blank&#34; id=&#34;Khronos Group Releases Vulkan 1.2&#34;&gt;Khronos Group Releases Vulkan 1.2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Vulkan 1.2 has been released&lt;/li&gt;
&lt;li&gt;this release promotes &lt;a href=&#34;https://www.khronos.org/registry/vulkan/specs/1.2/html/chap38.html#versions-1.2&#34; target=&#34;_blank&#34;&gt;23 extensions&lt;/a&gt; into core Vulkan&lt;/li&gt;
&lt;li&gt;including extensions such as imageless_framebuffer, timeline semaphores, and better support for HLSL shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-116/Vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/d3d12-translation-layer-and-d3d11on12-are-now-open-source/&#34; target=&#34;_blank&#34; id=&#34;D3D12 Translation Layer and D3D11On12 are now open source&#34;&gt;D3D12 Translation Layer and D3D11On12 are now open source&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Microsoft open-sourced two layers to help to port to D3D12&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/microsoft/D3D12TranslationLayer&#34; target=&#34;_blank&#34;&gt;D3D12 Translation Layer&lt;/a&gt; helps mapping from D3D11 style APIs to D3D12 style

&lt;ul&gt;
&lt;li&gt;Resource binding, renaming, sub-allocation, pooling, and deferred destruction&lt;/li&gt;
&lt;li&gt;Batching and threading&lt;/li&gt;
&lt;li&gt;Residency management&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/microsoft/D3D11On12&#34; target=&#34;_blank&#34;&gt;D3D11On12&lt;/a&gt; is implemented on top of the previous layer and contains the D3D11 specific aspects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-116/d3d12.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://jcgt.org/published/0009/01/01/&#34; target=&#34;_blank&#34; id=&#34;Performance Evaluation of Acceleration Structures for Cone Tracing Traversal&#34;&gt;Performance Evaluation of Acceleration Structures for Cone Tracing Traversal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper examines k-d trees and bounding volume hierarchies&lt;/li&gt;
&lt;li&gt;comparing the approaches with varying cone sizes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-116/cone_tracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.khronos.org/blog/vulkan-timeline-semaphores&#34; target=&#34;_blank&#34; id=&#34;Vulkan Timeline Semaphores&#34;&gt;Vulkan Timeline Semaphores&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the new timeline semaphore synchronization API included in Vulkan 1.2&lt;/li&gt;
&lt;li&gt;superset VkSemaphore and VkFence allows synchronization between CPU and GPU using a single primitive&lt;/li&gt;
&lt;li&gt;additionally provides support for wait-before-signal submission and multiple waits per signal&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-116/TimelineSemaphore.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gist.github.com/JarkkoPFC/1186bc8a861dae3c8339b0cda4e6cdb3&#34; target=&#34;_blank&#34; id=&#34;Calculates view space 3D sphere extents on the screen&#34;&gt;Calculates view space 3D sphere extents on the screen&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the code snippet shows how to screenspace extends of a sphere from view space&lt;/li&gt;
&lt;li&gt;an optimized version of &lt;a href=&#34;http://jcgt.org/published/0002/02/05/paper.pdf&#34; target=&#34;_blank&#34;&gt;Clipped Perspective-Projected 3D Sphere&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-116/sphere_viewspace.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://terathon.com/blog/projective-geometric-algebra-done-right/&#34; target=&#34;_blank&#34; id=&#34;Projective Geometric Algebra Done Right&#34;&gt;Projective Geometric Algebra Done Right&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how Grassmann (Geometric) Algebra extends four-dimensional homogeneous coordinates into a larger algebraic structure&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-116/ProjectiveGeometricAlgebra.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/stylized-lava-32245619&#34; target=&#34;_blank&#34; id=&#34;Stylized Lava Shader&#34;&gt;Stylized Lava Shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial explains how to achieve a stylized lava effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-116/lava_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/shader-graph-33388865&#34; target=&#34;_blank&#34; id=&#34;Shader Graph Stylized Lava&#34;&gt;Shader Graph Stylized Lava&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial shows to implement the stylized lava effect discussed in the previous article using Shader Graph&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-116/lava_shader_graph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://alextardif.com/RenderingAbstractionLayers.html&#34; target=&#34;_blank&#34; id=&#34;An Opinionated Post on Modern Rendering Abstraction Layers&#34;&gt;An Opinionated Post on Modern Rendering Abstraction Layers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents his opinions about how a rendering abstraction layer should be designed&lt;/li&gt;
&lt;li&gt;additionally offers his thoughts on Render Graphs, Meta Command Buffers, and meta shader languages&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-116/rendering_abstractions.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://atyuwen.github.io/posts/normal-reconstruction/&#34; target=&#34;_blank&#34; id=&#34;Accurate Normal Reconstruction from Depth Buffer&#34;&gt;Accurate Normal Reconstruction from Depth Buffer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents an improved precision method for normal reconstruction from depth buffers&lt;/li&gt;
&lt;li&gt;the technique uses 5 depth samples in each direction&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-116/normal-reconstruction-decals.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://giordi91.github.io/post/viewportclamp/&#34; target=&#34;_blank&#34; id=&#34;HLSL Viewport Clamping trick&#34;&gt;HLSL Viewport Clamping trick&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a few approaches to skybox rendering&lt;/li&gt;
&lt;li&gt;introduces how to use the min/max depth of the D3D12 viewport to force skybox to a max depth&lt;/li&gt;
&lt;li&gt;the comments present other approaches&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-116/viewport_clamping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.activision.com/publications/2020-01/ray-guiding-for-production-lightmap-baking&#34; target=&#34;_blank&#34; id=&#34;Ray Guiding for Production Lightmap Baking&#34;&gt;Ray Guiding for Production Lightmap Baking&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a technique for improving the computation time required for lightmap baking&lt;/li&gt;
&lt;li&gt;based on guided sampling and minimum variance-based estimator combination&lt;/li&gt;
&lt;li&gt;the method has a fixed memory footprint and is independent of scene complexity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-116/ray_guiding.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://maierfelix.github.io/2020-01-13-webgpu-ray-tracing/&#34; target=&#34;_blank&#34; id=&#34;Real-Time Ray-Tracing in WebGPU&#34;&gt;Real-Time Ray-Tracing in WebGPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to use Node bindings to enable RTX support when using WebGPU&lt;/li&gt;
&lt;li&gt;provides a brief overview of the DXR API and presents how to use the API to set up the pipeline and render an animated mesh&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-116/webgpu_rtx.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cyangamedev.wordpress.com/2020/01/14/uv-based-nodes/&#34; target=&#34;_blank&#34; id=&#34;UV-Based Nodes&#34;&gt;UV-Based Nodes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the shader nodes from Unity ShaderGraph system&lt;/li&gt;
&lt;li&gt;explains how to use the nodes, what options are available and how to combine them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-116/uv4.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.thetenthplanet.de/archives/5367&#34; target=&#34;_blank&#34; id=&#34;Correct sRGB Dithering&#34;&gt;Correct sRGB Dithering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents code and explains the logic behind correct dithering patterns that preserve the brightness&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-116/srgb_dithering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/JasperBekkers/&#34; target=&#34;_blank&#34;&gt;Jasper Bekkers&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 115 — January 12, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-115/</link>
      <pubDate>Sun, 12 Jan 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-115/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://themaister.net/blog/2020/01/10/clustered-shading-evolution-in-granite/&#34; target=&#34;_blank&#34; id=&#34;Clustered shading evolution in Granite&#34;&gt;Clustered shading evolution in Granite&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows an overview of deferred shading techniques&lt;/li&gt;
&lt;li&gt;alternative structures and methods for optimizations are presented&lt;/li&gt;
&lt;li&gt;using compute shader for conservative rasterization for spot and sphere lights&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-115/pointcull.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200111180213/https://themaister.net/blog/2020/01/10/clustered-shading-evolution-in-granite/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/radeon-gpu-profiler-1-7/&#34; target=&#34;_blank&#34; id=&#34;Radeon™ GPU Profiler 1.7&#34;&gt;Radeon™ GPU Profiler 1.7&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new release of AMD profiler that introduces a new pipeline overview view and adds new overlays for the wave occupancy view&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-115/EventTimelineOverlays.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200114000115/https://gpuopen.com/radeon-gpu-profiler-1-7/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.oculus.com/blog/how-to-optimize-your-oculus-quest-app-w-renderdoc-walkthroughs-of-key-usage-scenarios-and-optimization-tips-part-2/&#34; target=&#34;_blank&#34; id=&#34;How to Optimize your Oculus Quest App w/ RenderDoc: Walkthroughs of Key Usage Scenarios and Optimization Tips Part 2&#34;&gt;How to Optimize your Oculus Quest App w/ RenderDoc: Walkthroughs of Key Usage Scenarios and Optimization Tips Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to use RenderDoc to identify issues and how to alleviate them&lt;/li&gt;
&lt;li&gt;most advice is not Occulus specific and talks about shader complexity, LOD, culling, and empty draws&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-115/batching.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200114000232/https://developer.oculus.com/blog/how-to-optimize-your-oculus-quest-app-w-renderdoc-walkthroughs-of-key-usage-scenarios-and-optimization-tips-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ronja-tutorials.com/2020/01/08/invlerp_remap.html&#34; target=&#34;_blank&#34; id=&#34;Inverse Lerp and Remap&#34;&gt;Inverse Lerp and Remap&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a short Unity tutorial that explains inverse lerp function&lt;/li&gt;
&lt;li&gt;a function that given value in an input range returns a normalized 0-1 value&lt;/li&gt;
&lt;li&gt;additionally shows how to combine lerp and inverse lerp to allow range remapping&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-115/gradient.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200114000407/https://www.ronja-tutorials.com/2020/01/08/invlerp_remap.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/nvidia-vrss-a-zero-effort-way-to-improve-your-vr-image-quality/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA VRSS, a Zero-Effort Way to Improve Your VR Image Quality&#34;&gt;NVIDIA VRSS, a Zero-Effort Way to Improve Your VR Image Quality&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the latest Nvidia driver update introduce Variable Rate Supersampling for D3D11 + MSAA applications&lt;/li&gt;
&lt;li&gt;driver side implementation that allows games to render with higher quality in the center of the screen&lt;/li&gt;
&lt;li&gt;the article presents and compares MSAA and SSAA&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-115/VRSS_3.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200114000849/https://devblogs.nvidia.com/nvidia-vrss-a-zero-effort-way-to-improve-your-vr-image-quality/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=XaiYKkxvrFM&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Shader Coding: Over the Moon - Part 2&#34;&gt;[video] Shader Coding: Over the Moon - Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the second part of a shadertoy video tutorial&lt;/li&gt;
&lt;li&gt;the tutorial extends the scene to render multiple parallax layers of mountain ranges&lt;/li&gt;
&lt;li&gt;how to draw a moon&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-115/over_the_moon.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=PMltMdi1Wzg&#34; target=&#34;_blank&#34; id=&#34;[video] Deriving the SDF of a Line Segment&#34;&gt;[video] Deriving the SDF of a Line Segment&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this video tutorial shows how to derive the signed distance field for a line segment&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-115/sdf_line_segment.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.alanzucconi.com/2019/10/08/journey-sand-shader-5/&#34; target=&#34;_blank&#34; id=&#34;Journey Sand Shader: Glitter Reflection&#34;&gt;Journey Sand Shader: Glitter Reflection&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;next part in Unity tutorial series about the rendering of sand&lt;/li&gt;
&lt;li&gt;adds support for sparkling based on microfacets based on a texture with precomputed random values&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-115/sand_glitter.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200114001241/https://www.alanzucconi.com/2019/10/08/journey-sand-shader-5/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://indieburg.com/blog/posts/20200110-mip-map-folding&#34; target=&#34;_blank&#34; id=&#34;Mip Map Folding&#34;&gt;Mip Map Folding&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a brief summary of mipmapping&lt;/li&gt;
&lt;li&gt;shows how mipmapping causes details in glitter effect of sand to be lost in the distance&lt;/li&gt;
&lt;li&gt;proposes a manual mipmapping strategy where the texture coordinates are adjusted to keep a constant texel density&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-115/mip_map_folding.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200114001401/https://indieburg.com/blog/posts/20200110-mip-map-folding&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alexanderameye.github.io/outlineshader&#34; target=&#34;_blank&#34; id=&#34;outline shader&#34;&gt;outline shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to write an outline shader for Unity&lt;/li&gt;
&lt;li&gt;uses color, normal and depth information&lt;/li&gt;
&lt;li&gt;implemented as a post-processing effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-115/outline_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200114001501/https://alexanderameye.github.io/outlineshader&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/alpha-to-or-anti-33042721&#34; target=&#34;_blank&#34; id=&#34;Alpha to Coverage or Anti-Aliased Cutout - TUTORIAL&#34;&gt;Alpha to Coverage or Anti-Aliased Cutout - TUTORIAL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial shows how alpha to coverage allows improved edges on vegetation&lt;/li&gt;
&lt;li&gt;how to implement alpha to coverage into a shader&lt;/li&gt;
&lt;li&gt;shows how to adjust mipmap calculation to preserve small details with this method&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-115/alpha_to_coverage.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200114001638/https://www.patreon.com/posts/alpha-to-or-anti-33042721&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.saschawillems.de/blog/2020/01/11/vulkan-hardware-database-feature-update/&#34; target=&#34;_blank&#34; id=&#34;Vulkan hardware database feature update&#34;&gt;Vulkan hardware database feature update&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;update to Vulkan database shows the first driver version an extension/feature has been introduced&lt;/li&gt;
&lt;li&gt;a more natural way to compare extension support across different platforms&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-115/feature_platforms.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200114001742/https://www.saschawillems.de/blog/2020/01/11/vulkan-hardware-database-feature-update/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alain.xyz/blog/raw-webgpu&#34; target=&#34;_blank&#34; id=&#34;Raw WebGPU&#34;&gt;Raw WebGPU&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to use the WebGPU API to implement everything required to render a colored triangle&lt;/li&gt;
&lt;li&gt;this includes shader loading, mesh creation and command generation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-115/raw_webgpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200112193617/http://alain.xyz/404&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://twitter.com/m_ninepoints/status/1215429886715629569&#34; target=&#34;_blank&#34; id=&#34;How to learn graphics programming (but not in a hurry): self-study edition!&#34;&gt;How to learn graphics programming (but not in a hurry): self-study edition!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Twitter thread about the authors&amp;rsquo; recommendations about learning graphics programming&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-115/how_to_learn_graphics_programming.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200111045346/https://twitter.com/m_ninepoints/status/1215429886715629569&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Stephen Hill for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 114 — January 05, 2020</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-114/</link>
      <pubDate>Sun, 05 Jan 2020 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-114/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://lousodrome.net/blog/light/2020/01/04/physically-based-rendering-references-at-the-end-of-2019/&#34; target=&#34;_blank&#34; id=&#34;Physically based shading references, at the end of 2019&#34;&gt;Physically based shading references, at the end of 2019&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of resources covering physically based shading&lt;/li&gt;
&lt;li&gt;a short summary for every source is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-114/pbr.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200104072847/http://lousodrome.net/blog/light/2020/01/04/physically-based-rendering-references-at-the-end-of-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cyangamedev.wordpress.com/2020/01/03/toon-glass-shader-breakdown/&#34; target=&#34;_blank&#34; id=&#34;Toon Glass Shader Breakdown&#34;&gt;Toon Glass Shader Breakdown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial shows to create a toon style glass shader using shader graph
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-114/toon-glass.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200106110046/https://cyangamedev.wordpress.com/2020/01/03/toon-glass-shader-breakdown/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://fabiensanglard.net/another_world_polygons/index.html&#34; target=&#34;_blank&#34; id=&#34;The polygons of Another World&#34;&gt;The polygons of Another World&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how the 1991 game Another World is being rendered&lt;/li&gt;
&lt;li&gt;the game is using a 16-bit color palette, with a static background runtime cache and composited from an off-screen target&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-114/another_world.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200105131822/https://fabiensanglard.net/another_world_polygons/index.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.oculus.com/blog/how-to-optimize-your-oculus-quest-app-w-renderdoc-walkthroughs-of-key-usage-scenarios-and-optimization-tips-part-1/&#34; target=&#34;_blank&#34; id=&#34;How to Optimize your Oculus Quest App w/ RenderDoc: Walkthroughs of Key Usage Scenarios and Optimization Tips Part 1&#34;&gt;How to Optimize your Oculus Quest App w/ RenderDoc: Walkthroughs of Key Usage Scenarios and Optimization Tips Part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows a collection of usage scenarios and explains what should be done for best performance&lt;/li&gt;
&lt;li&gt;shows how to use RenderDoc to verify the behavior&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-114/occulus_performance_shadow_cascade.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200106110455/https://developer.oculus.com/blog/how-to-optimize-your-oculus-quest-app-w-renderdoc-walkthroughs-of-key-usage-scenarios-and-optimization-tips-part-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://atyuwen.github.io/posts/antialiased-line/&#34; target=&#34;_blank&#34; id=&#34;Draw Anti-aliased Lines with Geometry Shader&#34;&gt;Draw Anti-aliased Lines with Geometry Shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to render anti-aliased lines&lt;/li&gt;
&lt;li&gt;expanding lines in the geometry shaders into quads and fading out the lines towards the edges of the quad&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-114/messiah-line.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200106110607/https://atyuwen.github.io/posts/antialiased-line/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.alanzucconi.com/2019/10/08/journey-sand-shader-4/&#34; target=&#34;_blank&#34; id=&#34;Journey Sand Shader: Specular Reflection&#34;&gt;Journey Sand Shader: Specular Reflection&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 4 of sand rendering tutorial&lt;/li&gt;
&lt;li&gt;adds support for Rim Lighting, Fresnel Reflectance, and a secondary specular highlight&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-114/journey_04.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200106110707/https://www.alanzucconi.com/2019/10/08/journey-sand-shader-4/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.ipol.im/pub/art/2019/279/&#34; target=&#34;_blank&#34; id=&#34;Simulated Exposure Fusion&#34;&gt;Simulated Exposure Fusion&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper extends the Exposure Fusion technique to operate on a single image&lt;/li&gt;
&lt;li&gt;the method aims to enhance the contrast in an image locally&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-114/sef.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://www.ipol.im/pub/art/2019/279//article.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20191230005435/http://www.ipol.im/pub/art/2019/279//article.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200106110807/http://www.ipol.im/pub/art/2019/279/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wickedengine.net/2020/01/05/tile-based-optimization-for-post-processing/&#34; target=&#34;_blank&#34; id=&#34;Tile-based optimization for post processing&#34;&gt;Tile-based optimization for post processing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a tile-based classification system for post-processing depth of field&lt;/li&gt;
&lt;li&gt;DispatchIndirect is then used to execute only the required functionality&lt;/li&gt;
&lt;li&gt;the post shows how the classification, stream compaction, and final execution is implemented&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-114/dof_sidebyside.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200106110954/https://wickedengine.net/2020/01/05/tile-based-optimization-for-post-processing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-50-03-01-2020/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 50 (03.01.2020)&#34;&gt;Technically Art: Issue 50 (03.01.2020)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-114/technically_art_template_50.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20200105194134/https://halisavakis.com/technically-art-issue-50-03-01-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://amesyta.wordpress.com/2019/12/29/applying-for-technical-art-jobs/&#34; target=&#34;_blank&#34; id=&#34;Applying For Technical Art Jobs&#34;&gt;Applying For Technical Art Jobs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the technical artist role&lt;/li&gt;
&lt;li&gt;the author shows different specializations and offers recommendations for skills required&lt;/li&gt;
&lt;li&gt;additionally includes general information about the application process&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-114/tech_art.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20200106111337/https://amesyta.wordpress.com/2019/12/29/applying-for-technical-art-jobs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/jhfredriksen&#34; target=&#34;_blank&#34;&gt;Jan-Harald Fredriksen&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 113 — December 29, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-113/</link>
      <pubDate>Sun, 29 Dec 2019 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-113/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://asawicki.info/news_1719_two_shader_compilers_of_direct3d_12&#34; target=&#34;_blank&#34; id=&#34;Two Shader Compilers of Direct3D 12&#34;&gt;Two Shader Compilers of Direct3D 12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows the two different shader compilers for D3D12: the FXC and DXC compiler&lt;/li&gt;
&lt;li&gt;presents a high-level overview of the compiler&lt;/li&gt;
&lt;li&gt;how to compile shaders from DLL vs. command line and other relevant information on the usage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-113/d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191230122917/https://asawicki.info/news_1719_two_shader_compilers_of_direct3d_12&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/32642532&#34; target=&#34;_blank&#34; id=&#34;Height Maps &amp;amp; Parallaxing&#34;&gt;Height Maps &amp;amp; Parallaxing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the parallax effect and how it&amp;rsquo;s different from normal mapping&lt;/li&gt;
&lt;li&gt;afterward shows how to extend a Unit surface shader to support parallax&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-113/UnityParallax.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191230123132/https://www.patreon.com/posts/32642532&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://nical.github.io/posts/new-tessellator.html&#34; target=&#34;_blank&#34; id=&#34;A new tessellator&#34;&gt;A new tessellator&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes the algorithm rewire of a vector to triangle mesh tesselator written in Rust&lt;/li&gt;
&lt;li&gt;focuses on the discussion of precision issues,  fill rules and custom vertex attributes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-113/lyon-sweep-v-h.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191227161344/https://nical.github.io/posts/new-tessellator.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/thermal-stealth-32245569&#34; target=&#34;_blank&#34; id=&#34;Thermal/ Stealth Vision Effect&#34;&gt;Thermal/ Stealth Vision Effect&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial shows how to implement a thermal view effect&lt;/li&gt;
&lt;li&gt;implemented as offscreen rendering and the result is blended with the main pass&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-113/UnityThermal.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191230123323/https://www.patreon.com/posts/thermal-stealth-32245569&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-49-27-12-2019/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 49 (27.12.2019)&#34;&gt;Technically Art: Issue 49 (27.12.2019)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-113/technically_art_template_49.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191230123457/https://halisavakis.com/technically-art-issue-49-27-12-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=7WzUwTKXCWw&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;Procedural Generation - Unity3d Procedurally Generation For Beginners With Random Inspector Options&#34;&gt;Procedural Generation - Unity3d Procedurally Generation For Beginners With Random Inspector Options&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A unity video tutorial that shows how to generate a circle procedurally&lt;/li&gt;
&lt;li&gt;additionally shows how to deform the circle, apply different line width and other modification&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-113/unity_procedural_geometry.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gist.github.com/zeux/7d3ff56568c6b02de3a87cc69899d949#what-does-the-future-hold&#34; target=&#34;_blank&#34; id=&#34;Roblox graphics APIs 2019 - What does the future hold?&#34;&gt;Roblox graphics APIs 2019 - What does the future hold?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an updated article that presents the latest numbers and what APIs Roblox is currently supporting&lt;/li&gt;
&lt;li&gt;nearly 50% of android users are now using the Vulkan backend&lt;/li&gt;
&lt;li&gt;looking into dropping D3D9 support on Windows soon&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-113/RobloxAPIs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191230125537/https://gist.github.com/zeux/7d3ff56568c6b02de3a87cc69899d949&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 112 — December 22, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-112/</link>
      <pubDate>Sun, 22 Dec 2019 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-112/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zero-radiance.github.io/post/sampling-diffusion/&#34; target=&#34;_blank&#34; id=&#34;Sampling Burley&amp;#39;s Normalized Diffusion Profiles&#34;&gt;Sampling Burley&amp;#39;s Normalized Diffusion Profiles&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to inverse the CDF of the Disney SSS&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-112/disney_sss.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191223231101/https://zero-radiance.github.io/post/sampling-diffusion/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://kkhomyakov3d.github.io/raytracers-and-pathtracers/&#34; target=&#34;_blank&#34; id=&#34;Open-Source Ray Tracers and Path Tracers&#34;&gt;Open-Source Ray Tracers and Path Tracers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a list of open-source ray and path tracers&lt;/li&gt;
&lt;li&gt;the comment sections contain some additional ones&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-112/baikal.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191223231210/https://kkhomyakov3d.github.io/raytracers-and-pathtracers/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/new-dxr-spotlight-contest-ray-tracing/&#34; target=&#34;_blank&#34; id=&#34;Developers Show Off Amazing Real-Time Ray-Traced Projects in New DXR Spotlight Contest&#34;&gt;Developers Show Off Amazing Real-Time Ray-Traced Projects in New DXR Spotlight Contest&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of games that have been selected by Nvidia as excellent showcases for the use of RTX raytracing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-112/rtx.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191223231256/https://news.developer.nvidia.com/new-dxr-spotlight-contest-ray-tracing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/ray-tracing-essentials-part-1-basics-of-ray-tracing/&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing Essentials, Part 1: Basics of Ray Tracing&#34;&gt;Ray Tracing Essentials, Part 1: Basics of Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the first part of the video series that will explain the basics of ray-tracing&lt;/li&gt;
&lt;li&gt;covers basic of ray-tracing with the diffuse lighting model&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-112/ray_tracing_basic.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191223231405/https://news.developer.nvidia.com/ray-tracing-essentials-part-1-basics-of-ray-tracing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=DPjS6s677NI&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;Mitsuba 2: A Retargetable Forward and Inverse Renderer&#34;&gt;Mitsuba 2: A Retargetable Forward and Inverse Renderer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the recording of a talk presents an overview of the architecture of the Mitsuba 2 renderer&lt;/li&gt;
&lt;li&gt;a set of problems and how Mitsuba can help in solving them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-112/mitsuba2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/32478484&#34; target=&#34;_blank&#34; id=&#34;Part 23: Intro to Unity&amp;#39;s Specular Workflow&#34;&gt;Part 23: Intro to Unity&amp;#39;s Specular Workflow&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the unity tutorial provides a brief overview of the specular workflow compared with the metalness workflow&lt;/li&gt;
&lt;li&gt;this is covered with a toon shading model&lt;/li&gt;
&lt;li&gt;focuses on the art authoring aspect, less on the shader aspects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-112/unity_specular.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191223231451/https://www.patreon.com/posts/32478484&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://prideout.net/blog/octasphere/&#34; target=&#34;_blank&#34; id=&#34;The Simple, Flexible, Octasphere&#34;&gt;The Simple, Flexible, Octasphere&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows a UV sphere, icosphere and proposes the octasphere&lt;/li&gt;
&lt;li&gt;an alternative way to generate a sphere surface&lt;/li&gt;
&lt;li&gt;shows how to create a sphere and additional extend the method for other surfaces&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-112/three_spheres.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191219184850/https://prideout.net/blog/octasphere/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@shahriyarshahrabi/matrices-for-tech-artists-non-affine-transformations-a072990c85c7&#34; target=&#34;_blank&#34; id=&#34;Matrices for Tech Artists, non Affine Transformations&#34;&gt;Matrices for Tech Artists, non Affine Transformations&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents transformations around an arbitrary axis and points&lt;/li&gt;
&lt;li&gt;follow by a discussion of non-affine transformations (parallel lines are not preserved, such as perspective projection)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-112/affine_transform.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=y_nYcbQv2xA&#34; target=&#34;_blank&#34; id=&#34;Digital Foundry&amp;#39;s Best Game Graphics Of 2019: The Year&amp;#39;s Best Tech In Review!&#34;&gt;Digital Foundry&amp;#39;s Best Game Graphics Of 2019: The Year&amp;#39;s Best Tech In Review!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video review by Digital Foundry of the games released in 2019s&lt;/li&gt;
&lt;li&gt;talking about the technology used in different games, not just covering AAA games&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-112/death_stranding.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=S8AWd66hoCo&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;Writing a ray marcher in Unity&#34;&gt;Writing a ray marcher in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video tutorial shows how to write a ray marcher in a unity pixel shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-112/unity_ray_marcher.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/integrating-fidelityfx-ego-engine/&#34; target=&#34;_blank&#34; id=&#34;Integrating FidelityFX into the Ego Engine&#34;&gt;Integrating FidelityFX into the Ego Engine&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how to integrate FidelityFX Contrast Adaptive Sharpening (CAS) compute post-processing filter into an engine&lt;/li&gt;
&lt;li&gt;the architecture is designed to make integration into a custom engine relatively simple&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-112/fidelity_trees.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191223231757/https://gpuopen.com/integrating-fidelityfx-ego-engine/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/light-saber-32368670&#34; target=&#34;_blank&#34; id=&#34;Light Saber Breakdown&#34;&gt;Light Saber Breakdown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to use a vertex shader to animate the vertices for a lightsaber effect
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-112/LightSaberBreakdown.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191223232028/https://www.patreon.com/posts/light-saber-32368670&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/keithoconor&#34; target=&#34;_blank&#34;&gt;Keith O&amp;rsquo;Conor&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 111 — December 15, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-111/</link>
      <pubDate>Sun, 15 Dec 2019 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-111/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/amd-vega-7nm-instruction-set-architecture-documentation/&#34; target=&#34;_blank&#34; id=&#34;AMD “Vega” 7nm Instruction Set Architecture documentation&#34;&gt;AMD “Vega” 7nm Instruction Set Architecture documentation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Instruction Set Architecture provides an overview of how Vega architecture is designed&lt;/li&gt;
&lt;li&gt;an in-depth description of all instruction set and additional hardware details&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-111/amd_vega_7nm.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191216042423/https://gpuopen.com/amd-vega-7nm-instruction-set-architecture-documentation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.imgtec.com/blog/powervr-sdk-and-tools-2019-release-2-now-available/&#34; target=&#34;_blank&#34; id=&#34;PowerVR SDK and Tools 2019 Release 2 now available&#34;&gt;PowerVR SDK and Tools 2019 Release 2 now available&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of new features of the PowerVR SDK&lt;/li&gt;
&lt;li&gt;improved tools, improved Vulkan support, support for Android 10&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-111/resource_viewer.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191216040049/https://www.imgtec.com/blog/powervr-sdk-and-tools-2019-release-2-now-available/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zeux.io/2019/12/12/three-years-of-metal/&#34; target=&#34;_blank&#34; id=&#34;Three years of Metal&#34;&gt;Three years of Metal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the experience using metal over the last 3 years&lt;/li&gt;
&lt;li&gt;discusses the situation on iOS, macOS, and improvement has been made since the first iterations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-111/metal_api.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191216040133/https://zeux.io/2019/12/12/three-years-of-metal/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-47-13-12-2019/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 47 (13.12.2019)&#34;&gt;Technically Art: Issue 47 (13.12.2019)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-111/technically_art_template_47.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191216040206/https://halisavakis.com/technically-art-issue-47-13-12-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/32355159&#34; target=&#34;_blank&#34; id=&#34;Part 22: Skyboxes&#34;&gt;Part 22: Skyboxes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial shows how to create a skybox shader that uses a gradient defined by two colors&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-111/skybox_unity.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191216042509/https://www.patreon.com/posts/32355159&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rayground.com&#34; target=&#34;_blank&#34; id=&#34;Ray tracing on the WEB&#34;&gt;Ray tracing on the WEB&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a web-based ray tracing framework that exposes programmable stages based on GLSL for rapid prototyping, in a similar fashion to ShaderToy&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-111/web_raytracing.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2019/12/11/probability-theory-for-physically-based-rendering/&#34; target=&#34;_blank&#34; id=&#34;Probability Theory for Physically Based Rendering&#34;&gt;Probability Theory for Physically Based Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the blog details the mathematical approach of Monte-Carlo integration&lt;/li&gt;
&lt;li&gt;additionally explores several techniques (such as Importance Sampling) to reduce the variance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-111/probability_theory.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191216040828/https://jacco.ompf2.com/2019/12/11/probability-theory-for-physically-based-rendering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2019/12/13/probability-theory-for-physically-based-rendering-part-2/&#34; target=&#34;_blank&#34; id=&#34;Probability Theory for Physically Based Rendering Part 2&#34;&gt;Probability Theory for Physically Based Rendering Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article extends the knowledge from part 1 to the domain of solving the rendering equation&lt;/li&gt;
&lt;li&gt;explains the theory behind the different aspects of path tracing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-111/probability_theory_2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191214151944/https://jacco.ompf2.com/2019/12/13/probability-theory-for-physically-based-rendering-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jorenjoestar.github.io/post/writing_shader_effect_language_3/&#34; target=&#34;_blank&#34; id=&#34;Writing a Shader Effect Language Part 3: Materials&#34;&gt;Writing a Shader Effect Language Part 3: Materials&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an exploration of a material system designed for Vulkan requirements&lt;/li&gt;
&lt;li&gt;the material system expresses the information required to create pipeline objects&lt;/li&gt;
&lt;li&gt;additionally supports loading and binding of resources&lt;/li&gt;
&lt;li&gt;example implementation (with provided code) provides examples of how to use it for different workloads&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-111/shader_effect.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191216042527/https://jorenjoestar.github.io/post/writing_shader_effect_language_3//&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://drive.google.com/drive/folders/16A6Yj2esRTk0FP-ALr6XfxkGQvTb_1dD&#34; target=&#34;_blank&#34; id=&#34;Collection of light transport papers&#34;&gt;Collection of light transport papers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an extensive collection of light transport papers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-111/light_transport.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://bruop.github.io&#34; target=&#34;_blank&#34;&gt;Bruno Opsenica&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 110 — December 8, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-110/</link>
      <pubDate>Sun, 08 Dec 2019 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-110/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2019/12/07/bezier-triangles/&#34; target=&#34;_blank&#34; id=&#34;Bezier Triangles&#34;&gt;Bezier Triangles&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows the possibility of using Bezier Triangles to store arbitrary and use this as a lookup structure for GPUs&lt;/li&gt;
&lt;li&gt;shows how to calculate Barycentric Coordinates&lt;/li&gt;
&lt;li&gt;provide the foundation for Bezier curve creation&lt;/li&gt;
&lt;li&gt;extends this to a triangle formation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-110/cubictriangleinbox.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191209062712/https://blog.demofox.org/2019/12/07/bezier-triangles/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-1911-27/&#34; target=&#34;_blank&#34; id=&#34;PIX 1911.27 – New Buffer Formatter and Capture from Launch&#34;&gt;PIX 1911.27 – New Buffer Formatter and Capture from Launch&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new PIX version allows the creation of custom buffer formats and saves/restore those&lt;/li&gt;
&lt;li&gt;can now start applications in a suspended state, this will enable workloads leading up to the first frame to be captured&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-110/PixBufferFormatter.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191209062751/https://devblogs.microsoft.com/pix/pix-1911-27/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-46-06-12-2019/&#34; target=&#34;_blank&#34; id=&#34;collection of tweets showcasing a large number of effects, games and technical art resources&#34;&gt;collection of tweets showcasing a large number of effects, games and technical art resources&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets showcasing a large number of effects, games and technical art resources&lt;/li&gt;
&lt;li&gt;contains gifs that explain the length of a vector, dot and cross product&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-110/technically_art_46.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191209062813/https://halisavakis.com/technically-art-issue-46-06-12-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.imgtec.com/blog/img-a-series-the-gpu-for-generation-2020/&#34; target=&#34;_blank&#34; id=&#34;IMG A-Series: the GPU for generation 2020&#34;&gt;IMG A-Series: the GPU for generation 2020&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new GPU architecture by Imagination Technologies (PowerVR)&lt;/li&gt;
&lt;li&gt;promises a 2.5x performance increased while using 60% less power and providing no thermal throttling problem&lt;/li&gt;
&lt;li&gt;now uses MAD 128-thread wide ALU&lt;/li&gt;
&lt;li&gt;improved multi-tasking systems allow timing guarantees for parallel GPU work&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-110/powervr_20.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191203095559/https://www.imgtec.com/blog/img-a-series-the-gpu-for-generation-2020/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://80.lv/articles/a-new-language-for-sparse-data&#34; target=&#34;_blank&#34; id=&#34;A New Language for Sparse Data&#34;&gt;A New Language for Sparse Data&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of the Taichi programming language&lt;/li&gt;
&lt;li&gt;a data-oriented language that separates computations from data structures&lt;/li&gt;
&lt;li&gt;programmers can write algorithms as if the data structure was dense&lt;/li&gt;
&lt;li&gt;compiler and runtime will deal with the extra complexity introduced by sparse data structures&lt;/li&gt;
&lt;li&gt;can generate CPU and GPU instructions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-110/sparse_data.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://taichi.graphics/wp-content/uploads/2019/09/taichi_lang.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20191002214005/http://taichi.graphics/wp-content/uploads/2019/09/taichi_lang.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191209062856/https://80.lv/articles/a-new-language-for-sparse-data&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://engstad.github.io/visible-ggx.html&#34; target=&#34;_blank&#34; id=&#34;Proof of the Sampling Method for Visible GGX&#34;&gt;Proof of the Sampling Method for Visible GGX&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes the Visible GGX distribution (vGGX) sampling method&lt;/li&gt;
&lt;li&gt;mathematically proves that this results in the required probability density&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-110/vggx-top.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191209062912/https://engstad.github.io/visible-ggx.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.oculus.com/blog/how-to-optimize-your-oculus-quest-app-w-renderdoc-getting-started-frame-capture/&#34; target=&#34;_blank&#34; id=&#34;How to Optimize your Oculus Quest App w/ RenderDoc: Getting Started &amp;#43; Frame Capture&#34;&gt;How to Optimize your Oculus Quest App w/ RenderDoc: Getting Started &amp;#43; Frame Capture&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;begins with an overview of RenderDoc functionality&lt;/li&gt;
&lt;li&gt;shows what window are provided by the UI, what features they expose&lt;/li&gt;
&lt;li&gt;how to take a frame capture of a game&lt;/li&gt;
&lt;li&gt;and a basic look at how to start investigating the capture
&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-110/render_doc.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191209062928/https://developer.oculus.com/blog/how-to-optimize-your-oculus-quest-app-w-renderdoc-getting-started-frame-capture/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/my-take-on-shaders-grass-shader-part-ii/&#34; target=&#34;_blank&#34; id=&#34;My take on shaders: Grass Shader (Part II)&#34;&gt;My take on shaders: Grass Shader (Part II)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 2 of the grass shader, part 1 was discussed in issues &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-105/&#34; target=&#34;_blank&#34;&gt;105&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;will extend the shader with tesselation, better lighting, and shadows&lt;/li&gt;
&lt;li&gt;additionally shows how this can be extended to support trampling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-110/grass_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191209062947/https://halisavakis.com/my-take-on-shaders-grass-shader-part-ii/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@shahriyarshahrabi/matrices-for-tech-artists-a-cheat-sheet-a81ef64f3b7f&#34; target=&#34;_blank&#34; id=&#34;Matrices for Tech Artists, a Cheat Sheet&#34;&gt;Matrices for Tech Artists, a Cheat Sheet&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of matrices&lt;/li&gt;
&lt;li&gt;introduces the idea of viewing matrices as spaces and the importance of frame of reference&lt;/li&gt;
&lt;li&gt;with this knowledge presents the different types of linear transformation and how they influence the space&lt;/li&gt;
&lt;li&gt;additionally covers translations, homogeneous coordinates, and projection matrices&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-110/translation_matrix.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191209063005/https://medium.com/@shahriyarshahrabi/matrices-for-tech-artists-a-cheat-sheet-a81ef64f3b7f&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jendrikillner.com/post/rust-game-part-5/&#34; target=&#34;_blank&#34; id=&#34;Rust Game Series - Part 5 - D3D11 Device and Swap Chain creation&#34;&gt;Rust Game Series - Part 5 - D3D11 Device and Swap Chain creation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part of Rust game programming series&lt;/li&gt;
&lt;li&gt;the article shows how to call D3D11 from Rust&lt;/li&gt;
&lt;li&gt;shows how to create a d3d11 device, swap chain and present the back buffer to the window&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-110/black_win32_window.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191209064236/https://www.jendrikillner.com/post/rust-game-part-5/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Spencer Sherk for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 109 — December 1, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-109/</link>
      <pubDate>Sun, 01 Dec 2019 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-109/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.imgtec.com/blog/powervr-perfdoc-performance-validation-for-powervr/&#34; target=&#34;_blank&#34; id=&#34;PowerVR PerfDoc – Performance Validation for PowerVR&#34;&gt;PowerVR PerfDoc – Performance Validation for PowerVR&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;fork of the PerfDoc performance layer to detect performance issues on PowerVR hardware&lt;/li&gt;
&lt;li&gt;the article provides an overview of performance issues that the layer can detect and possible improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-109/PVRIC-lossless-vs-lossy.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191128153138/https://www.imgtec.com/blog/powervr-perfdoc-performance-validation-for-powervr/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.unrealengine.com/en-US/tech-blog/exploring-sculptrvr-s-efficient-lighting-solution-for-the-oculus-quest&#34; target=&#34;_blank&#34; id=&#34;Exploring SculptrVR’s efficient lighting solution for the Oculus Quest&#34;&gt;Exploring SculptrVR’s efficient lighting solution for the Oculus Quest&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the lighting model used by SculptrVR&lt;/li&gt;
&lt;li&gt;designed for the hardware constraints of the occulus quest&lt;/li&gt;
&lt;li&gt;it&amp;rsquo;s based on the  Phong lighting and supports clay, metal, and glowing materials&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-109/ScupltVR_Mobile-Lighting.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191202012659/https://www.unrealengine.com/en-US/tech-blog/exploring-sculptrvr-s-efficient-lighting-solution-for-the-oculus-quest&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/nvidia-variable-rate-shading-demonstrated-in-autodesk-vred/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Variable Rate Shading Demonstrated in Autodesk VRED&#34;&gt;NVIDIA Variable Rate Shading Demonstrated in Autodesk VRED&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an easy to understand overview of Variable Rate Shading&lt;/li&gt;
&lt;li&gt;shows what quality and performance can be expected with different modes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-109/autodesk_vrs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191202013000/https://devblogs.nvidia.com/nvidia-variable-rate-shading-demonstrated-in-autodesk-vred/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ronja-tutorials.com/2019/11/29/fwidth.html&#34; target=&#34;_blank&#34; id=&#34;Partial Derivatives (fwidth)&#34;&gt;Partial Derivatives (fwidth)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial explains the ddx and ddy shader functions&lt;/li&gt;
&lt;li&gt;provides a visualization of its effects&lt;/li&gt;
&lt;li&gt;shows how to use fwidth to antialias a cutoff transition from a gradient&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-109/fwidth_fire.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191202013129/https://www.ronja-tutorials.com/2019/11/29/fwidth.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/31955204&#34; target=&#34;_blank&#34; id=&#34;Making a Glass Shader, Part 1: GrabPass &amp;amp; Refraction&#34;&gt;Making a Glass Shader, Part 1: GrabPass &amp;amp; Refraction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the Unity tutorial shows how to use transparency to create a look through the object&lt;/li&gt;
&lt;li&gt;later uses a grab pass (copy of the screen buffer before a draw call starts) to implement a glass appearance material&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-109/glass_shader_part1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191202013246/https://www.patreon.com/posts/31955204&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/making-glass-2-31958357&#34; target=&#34;_blank&#34; id=&#34;Making a Glass Shader, Part 2: Highlights &amp;amp; Reflections&#34;&gt;Making a Glass Shader, Part 2: Highlights &amp;amp; Reflections&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 2 of the shader glass material shader tutorial with Unity&lt;/li&gt;
&lt;li&gt;extends the standard lighting model to feature stringer rim lighting, stronger highlights, and a more cartoony overall look&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-109/glass_shader_part2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191202013624/https://www.patreon.com/posts/making-glass-2-31958357&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/custom-srp/directional-lights/&#34; target=&#34;_blank&#34; id=&#34;Directional Lights Direct Illumination&#34;&gt;Directional Lights Direct Illumination&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;this Unity tutorial shows how to use the scriptable rendering pipeline to implement up to 4 directional lights&lt;/li&gt;
&lt;li&gt;the shading model is based on the default physically-based unity BRDF&lt;/li&gt;
&lt;li&gt;additionally shows how to deal with transparency and implement a custom material UI&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-109/direction_lights_srp.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191202013755/https://catlikecoding.com/unity/tutorials/custom-srp/directional-lights/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://themaister.net/blog/2019/12/01/yuv-sampling-in-vulkan-a-niche-and-complicated-feature-vk_khr_ycbcr_sampler_conversion/&#34; target=&#34;_blank&#34; id=&#34;YUV sampling in Vulkan – a niche and complicated feature – VK_KHR_ycbcr_sampler_conversion&#34;&gt;YUV sampling in Vulkan – a niche and complicated feature – VK_KHR_ycbcr_sampler_conversion&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides a brief overview of the YUV/YCbCr colorspace and a few complications with it&lt;/li&gt;
&lt;li&gt;then show how to use the ycbcr_sampler_conversion to sample YUV textures from a shader more efficiently&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-109/vulkan_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191202013947/http://themaister.net/blog/2019/12/01/yuv-sampling-in-vulkan-a-niche-and-complicated-feature-vk_khr_ycbcr_sampler_conversion/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/positional-back-31938500&#34; target=&#34;_blank&#34; id=&#34;Positional Effects (Scattered Objects Moving Back / Growing Flowers)&#34;&gt;Positional Effects (Scattered Objects Moving Back / Growing Flowers)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;brief unity tutorial that shows how to implement effects that are based on the player position&lt;/li&gt;
&lt;li&gt;such as flowers spawning around the player, or stones moving to form a path in front of the player&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-109/moving_stones.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191202014130/https://www.patreon.com/posts/positional-back-31938500&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://terathon.com/blog/rgb-xyz-conversion-matrix-accuracy/&#34; target=&#34;_blank&#34; id=&#34;RGB/XYZ Conversion Matrix Accuracy&#34;&gt;RGB/XYZ Conversion Matrix Accuracy&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows the matrices between XYZ colors and sRGB colors&lt;/li&gt;
&lt;li&gt;these numbers vary from the ones found in Real-Time Rendering and Physically Based Rendering&lt;/li&gt;
&lt;li&gt;the author explains how he derived the values and why they are correct&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-109/srgb_conversion.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191202014003/http://terathon.com/blog/rgb-xyz-conversion-matrix-accuracy/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.wihlidal.com&#34; target=&#34;_blank&#34;&gt;Graham Wihlidal&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 108 — November 24, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-108/</link>
      <pubDate>Sun, 24 Nov 2019 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-108/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.oculus.com/blog/pc-rendering-techniques-to-avoid-when-developing-for-mobile-vr/&#34; target=&#34;_blank&#34; id=&#34;PC Rendering Techniques to Avoid when Developing for Mobile VR&#34;&gt;PC Rendering Techniques to Avoid when Developing for Mobile VR&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of techniques that are not a good fit for mobile VR applications&lt;/li&gt;
&lt;li&gt;provides brief explanations of the methods and the reasons for why they should be avoided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-108/vr_techniques.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191125053723/https://developer.oculus.com/blog/pc-rendering-techniques-to-avoid-when-developing-for-mobile-vr/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-44-22-11-2019/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 44 (22.11.2019)&#34;&gt;Technically Art: Issue 44 (22.11.2019)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets showcasing a large number of effects, games and technical art resources&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-108/technically_art_44.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191125053817/https://halisavakis.com/technically-art-issue-44-22-11-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/31597594&#34; target=&#34;_blank&#34; id=&#34;Part 20: Post Processing Effects &amp;amp; Chromatic Aberration&#34;&gt;Part 20: Post Processing Effects &amp;amp; Chromatic Aberration&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a unity tutorial that explains how to create a post-processing effect that implements a Chromatic Aberration style effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-108/unity_post_processing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191125053840/https://www.patreon.com/posts/31597594&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blogs.unity3d.com/2019/11/20/normal-map-compositing-using-the-surface-gradient-framework-in-shader-graph/&#34; target=&#34;_blank&#34; id=&#34;Normal map compositing using the surface gradient framework in Shader Graph&#34;&gt;Normal map compositing using the surface gradient framework in Shader Graph&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how the surface gradient framework  (discussed in issue &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-102/&#34;&gt;102&lt;/a&gt;) can be integrated into the High Definition Rendering Pipeline (HDRP) from Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-108/note_graph_gradients.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191120230832/https://blogs.unity3d.com/2019/11/20/normal-map-compositing-using-the-surface-gradient-framework-in-shader-graph/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/vulkan-releases-extension-to-expose-cross-vendor-performance-metrics&#34; target=&#34;_blank&#34; id=&#34;Vulkan Releases Extension to Expose Cross-Vendor Performance Metrics&#34;&gt;Vulkan Releases Extension to Expose Cross-Vendor Performance Metrics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a new Vulkan extension that allows developers to query performance metrics from the GPU&lt;/li&gt;
&lt;li&gt;exposed metrics are defined by the driver&lt;/li&gt;
&lt;li&gt;granularity is determined by the capabilities of the GPU, ranging from single commands to complete command buffers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-108/vulkan_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191125053915/https://www.khronos.org/blog/vulkan-releases-extension-to-expose-cross-vendor-performance-metrics&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://alextardif.com/GraphicsJobGuide.html&#34; target=&#34;_blank&#34; id=&#34;Applying for Entry Level Graphics Jobs in Games&#34;&gt;Applying for Entry Level Graphics Jobs in Games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of advice by the author on what candidates should be focusing on if they are interested in getting started in graphics programming positions in games&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-108/ESOScreenshot.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191125053931/http://alextardif.com/GraphicsJobGuide.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://konstantinkhomyakov3d.github.io/real-time-engines/&#34; target=&#34;_blank&#34; id=&#34;Open-Source Real-Time Rendering Engines and Libs&#34;&gt;Open-Source Real-Time Rendering Engines and Libs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;list of open-source rendering engines and helper libraries&lt;/li&gt;
&lt;li&gt;a mix of large, established and hobby projects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-108/GitHub-Mark.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191125053951/https://konstantinkhomyakov3d.github.io/real-time-engines/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://timothydries.com/blog/lovo/78-podcast-time-amp-pbr-theory-for-artists-part-one&#34; target=&#34;_blank&#34; id=&#34;[#78] Podcast time! &amp;amp; PBR Theory for Artists - Part one&#34;&gt;[#78] Podcast time! &amp;amp; PBR Theory for Artists - Part one&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;podcast episode for artists&lt;/li&gt;
&lt;li&gt;contains a collection of links to other articles related to PBR rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-108/art_podcast.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191125054011/https://timothydries.com/blog/lovo/78-podcast-time-amp-pbr-theory-for-artists-part-one&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.willusher.io/graphics/2019/11/20/the-sbt-three-ways&#34; target=&#34;_blank&#34; id=&#34;The RTX Shader Binding Table Three Ways&#34;&gt;The RTX Shader Binding Table Three Ways&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides an overview of the raytracing execution model&lt;/li&gt;
&lt;li&gt;explains shader binding tables and why they are fundamental for raytracing APIs&lt;/li&gt;
&lt;li&gt;differences between Vulkan, DXR, and OptiX&lt;/li&gt;
&lt;li&gt;provides a tool that visualizes the required table layout for the different APIs and how to trace rays with correct offsets&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-108/shader_binding_table.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191120154131/https://www.willusher.io/graphics/2019/11/20/the-sbt-three-ways&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/developers/library/2019-reboot-develop-red&#34; target=&#34;_blank&#34; id=&#34;2019 Reboot Develop Red&#34;&gt;2019 Reboot Develop Red&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;links to Vulkan presentations and videos from  Reboot Develop Red&lt;/li&gt;
&lt;li&gt;topics include Vulkan Ray tracing, mobile, and optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-108/reboot_red.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191122214431/https://www.khronos.org/developers/library/2019-reboot-develop-red&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.nvidia.com/publication/2019-11_Latency-of-30&#34; target=&#34;_blank&#34; id=&#34;Latency of 30 ms Matters More Than Refresh Rate Above 60 Hz for First Person Targeting Tasks&#34;&gt;Latency of 30 ms Matters More Than Refresh Rate Above 60 Hz for First Person Targeting Tasks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;research by Nvidia that investigates the influence of latency reduction and higher frame rates in the context of first-person shooters&lt;/li&gt;
&lt;li&gt;shows that high frame rates are mainly significant because of the latency reductions it provides&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-108/exp_setup_doc.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191125054220/https://research.nvidia.com/publication/2019-11_Latency-of-30&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wwwtyro.net/2019/11/18/instanced-lines.html&#34; target=&#34;_blank&#34; id=&#34;Instanced Line Rendering&#34;&gt;Instanced Line Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to render lines&lt;/li&gt;
&lt;li&gt;extends the method to support different styles of line rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-108/instanced_lines.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191119141824/https://wwwtyro.net/2019/11/18/instanced-lines.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://bruop.github.io&#34; target=&#34;_blank&#34;&gt;Bruno Opsenica&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 107 — November 17, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-107/</link>
      <pubDate>Sun, 17 Nov 2019 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-107/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://research.fb.com/publications/deepfovea-neural-reconstruction-for-foveated-rendering-and-video-compression-using-learned-statistics-of-natural-videos/&#34; target=&#34;_blank&#34; id=&#34;DeepFovea: Neural Reconstruction for Foveated Rendering and Video Compression using Learned Statistics of Natural Videos&#34;&gt;DeepFovea: Neural Reconstruction for Foveated Rendering and Video Compression using Learned Statistics of Natural Videos&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new technique that uses a neural network to reconstruct foveated rendering from sparse source data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-107/DeepFovea.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://research.fb.com/wp-content/uploads/2019/11/DeepFovea-Neural-Reconstruction-for-Foveated-Rendering-and-Video-Compression-using-Learned-Statistics-of-Natural-Videos.pdf?&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20191119060556/https://research.fb.com/wp-content/uploads/2019/11/DeepFovea-Neural-Reconstruction-for-Foveated-Rendering-and-Video-Compression-using-Learned-Statistics-of-Natural-Videos.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191119060456/https://research.fb.com/publications/deepfovea-neural-reconstruction-for-foveated-rendering-and-video-compression-using-learned-statistics-of-natural-videos/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/coming-to-directx-12-d3d9on12-and-d3d11on12-resource-interop-apis/&#34; target=&#34;_blank&#34; id=&#34;Coming to DirectX 12: D3D9On12 and D3D11On12 Resource Interop APIs&#34;&gt;Coming to DirectX 12: D3D9On12 and D3D11On12 Resource Interop APIs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of the new API that allows users to request the underlying D3D12 resources from an application that is using the D3D9 on D3D12 layer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-107/d3d12_logo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191119060917/https://devblogs.microsoft.com/directx/coming-to-directx-12-d3d9on12-and-d3d11on12-resource-interop-apis/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.alanzucconi.com/2019/10/08/journey-sand-shader-3/&#34; target=&#34;_blank&#34; id=&#34;Journey Sand Shader: Sand Normal&#34;&gt;Journey Sand Shader: Sand Normal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article proposes a technique that uses a random texture to perturb the normals of dunes to simulate the variation caused by sand grains&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-107/journey_icon.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191119061009/https://www.alanzucconi.com/2019/10/08/journey-sand-shader-3/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/developer/tools-software/graphics/b/blog/posts/vulkan-descriptor-and-buffer-management&#34; target=&#34;_blank&#34; id=&#34;Vulkan Mobile Best Practices - Descriptor and Buffer Management&#34;&gt;Vulkan Mobile Best Practices - Descriptor and Buffer Management&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article provides an overview of how Vulkan descriptor set management influences CPU performance&lt;/li&gt;
&lt;li&gt;provides 3 possible solutions to the problem&lt;/li&gt;
&lt;li&gt;showing how they affect both performance and application implementation&lt;/li&gt;
&lt;li&gt;suggest a descriptor set caching scheme combined with using a single VkBuffer to store uniform data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-107/VulkanDescriptorManagement.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191119061213/https://community.arm.com/developer/tools-software/graphics/b/blog/posts/vulkan-descriptor-and-buffer-management&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/coming-to-directx-12-more-control-over-memory-allocation/&#34; target=&#34;_blank&#34; id=&#34;Coming to DirectX 12: More control over memory allocation&#34;&gt;Coming to DirectX 12: More control over memory allocation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;D3D12 is adding two new flags for memory heap creation&lt;/li&gt;
&lt;li&gt;D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT, the heap is created non-resident state to enable EnqueueMakeResident to be used for heaps&lt;/li&gt;
&lt;li&gt;D3D12_HEAP_FLAG_CREATE_NOT_ZEROED enables an optimization that allows non-zeroed pages to be returned&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-107/d3d12_memory.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191119061342/https://devblogs.microsoft.com/directx/coming-to-directx-12-more-control-over-memory-allocation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jobtalle.com/layered_voxel_rendering.html&#34; target=&#34;_blank&#34; id=&#34;Layered voxel rendering&#34;&gt;Layered voxel rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article proposes a solution for voxel rendering&lt;/li&gt;
&lt;li&gt;voxel scene is pre-calculated into multiple vertical slices&lt;/li&gt;
&lt;li&gt;each slice is represented by an image and stores all voxel in the slice&lt;/li&gt;
&lt;li&gt;additionally contains a logic summary on how to procedurally generate a voxel-based island&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-107/voxel_island.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191114191007/https://jobtalle.com/layered_voxel_rendering.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.imgtec.com/blog/improving-particle-systems-on-powervr/&#34; target=&#34;_blank&#34; id=&#34;Improving Particle Systems on PowerVR&#34;&gt;Improving Particle Systems on PowerVR&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;brief article explains how to detect particle overdraw using the PowerVR profiler&lt;/li&gt;
&lt;li&gt;suggest to disable anisotropic filtering and use close fit meshes for particles&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-107/powervr_particles.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191119062432/https://www.imgtec.com/blog/improving-particle-systems-on-powervr/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.yiningkarlli.com/2019/11/froz2.html&#34; target=&#34;_blank&#34; id=&#34;Frozen 2&#34;&gt;Frozen 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author mentions the new rendering features of Disneys&amp;rsquo; Hyperion Renderer that have been used on Frozen 2&lt;/li&gt;
&lt;li&gt;contains a large selection of stills from the movie&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-107/FROZ2_17.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191119062711/https://blog.yiningkarlli.com/2019/11/froz2.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-43-15-11-2019/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 43 (15.11.2019)&#34;&gt;Technically Art: Issue 43 (15.11.2019)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets showcasing a large number of effects, games and technical art resources&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-107/technically_art_43.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191119062837/https://halisavakis.com/technically-art-issue-43-15-11-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevičius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 106 — November 10, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-106/</link>
      <pubDate>Sun, 10 Nov 2019 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-106/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://jcgt.org/published/0008/04/02/&#34; target=&#34;_blank&#34; id=&#34;On Histogram-Preserving Blending for Randomized Texture Tiling&#34;&gt;On Histogram-Preserving Blending for Randomized Texture Tiling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a modification of histogram-preserving tiling algorithm discussed in &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-45/&#34; target=&#34;_blank&#34;&gt;issue 45&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;it removes the lengthy 3D optimal transport preprocessing step and replaces it with per-channel lookup tables&lt;/li&gt;
&lt;li&gt;aims to reduce clipping and ghosting artifacts&lt;/li&gt;
&lt;li&gt;provides multiple blend modes that treat quality for performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-106/histogram_blending.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://jcgt.org/published/0008/04/02/paper.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20191110213928/http://jcgt.org/published/0008/04/02/paper.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191110213544/http://jcgt.org/published/0008/04/02/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/coming-to-directx-12-mesh-shaders-and-amplification-shaders-reinventing-the-geometry-pipeline/&#34; target=&#34;_blank&#34; id=&#34;Coming to DirectX 12— Mesh Shaders and Amplification Shaders: Reinventing the Geometry Pipeline  &#34;&gt;Coming to DirectX 12— Mesh Shaders and Amplification Shaders: Reinventing the Geometry Pipeline  &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains the problem with the  classic GPU geometry pipeline&lt;/li&gt;
&lt;li&gt;mesh shaders allow kernels to execute on sub-parts of meshes and output per-vertex and per-primitive attributes&lt;/li&gt;
&lt;li&gt;amplification shaders are run before, and output decide how many mesh shaders to launch&lt;/li&gt;
&lt;li&gt;shows code examples on how to use the feature in both HLSL and C++ API&lt;/li&gt;
&lt;li&gt;ExecuteIndirect also supports launch mesh shaders from the GPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-106/mesh_shader_flow.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191110221529/https://devblogs.microsoft.com/directx/coming-to-directx-12-mesh-shaders-and-amplification-shaders-reinventing-the-geometry-pipeline/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/dxr-1-1/&#34; target=&#34;_blank&#34; id=&#34;DirectX Raytracing (DXR) Tier 1.1&#34;&gt;DirectX Raytracing (DXR) Tier 1.1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains what has been added with DXR tier 1.1&lt;/li&gt;
&lt;li&gt;it doesn&amp;rsquo;t require new hardware features but needs a new windows version and driver support&lt;/li&gt;
&lt;li&gt;provides an alternative to that doesn&amp;rsquo;t use separate dynamic shaders or shader tables&lt;/li&gt;
&lt;li&gt;inline shaders allow all shader stages to trace rays&lt;/li&gt;
&lt;li&gt;additionally added features are DispatchRays generated on the GPU&lt;/li&gt;
&lt;li&gt;growing state objects, GeometryIndex() in ray shaders, flags to skip triangles / procedural geometry&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-106/traceRayInlineControlFlow.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191109013830/https://devblogs.microsoft.com/directx/dxr-1-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/KhronosGroup/Vulkan-Guide&#34; target=&#34;_blank&#34; id=&#34;Vulkan-Guide&#34;&gt;Vulkan-Guide&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new Vulkan guide by Khronos&lt;/li&gt;
&lt;li&gt;a crucial starting point for getting started with Vulkan&lt;/li&gt;
&lt;li&gt;provides an overview of the ecosystem, components of Vulkan, tools, &amp;hellip;&lt;/li&gt;
&lt;li&gt;additionally contains links to specific usage patterns and further information&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-106/vulkan_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191110231013/https://github.com/KhronosGroup/Vulkan-Guide&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/coming-to-directx-12-sampler-feedback-some-useful-once-hidden-data-unlocked/&#34; target=&#34;_blank&#34; id=&#34;Coming to DirectX 12— Sampler Feedback: some useful once-hidden data, unlocked&#34;&gt;Coming to DirectX 12— Sampler Feedback: some useful once-hidden data, unlocked&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the use-case of the streaming system and texture space shading&lt;/li&gt;
&lt;li&gt;sampler feedback is a hardware feature that allows D3D12 shaders to write to a texture which MIPS has been accessed&lt;/li&gt;
&lt;li&gt;FeedbackTexture2D is a new HLSL resource type to express it&lt;/li&gt;
&lt;li&gt;the granularity of the feedback map is user-controlled&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-106/SFS_MinMip.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191104222439/https://devblogs.microsoft.com/directx/coming-to-directx-12-sampler-feedback-some-useful-once-hidden-data-unlocked/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://twitter.com/ApoorvaJ/status/1191734587833114624?s=09&#34; target=&#34;_blank&#34; id=&#34;What are use-cases of Texture-Space Shading in DX12, based on current research?&#34;&gt;What are use-cases of Texture-Space Shading in DX12, based on current research?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Twitter thread about possibilities of texture-space shading&lt;/li&gt;
&lt;li&gt;Sampler Feedback addition in D3D12 can improve the implementations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-106/TSS_Diagram.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191110231849/https://twitter.com/ApoorvaJ/status/1191734587833114624?s=09&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://arisilvennoinen.github.io/Publications/ray_guiding_For_production_lightmap_baking_author_version.pdf&#34; target=&#34;_blank&#34; id=&#34;Ray Guiding for Production Lightmap Baking&#34;&gt;Ray Guiding for Production Lightmap Baking&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a technique for improving the computation time required for lightmap baking&lt;/li&gt;
&lt;li&gt;based on guided sampling and minimum
variance-based estimator combination&lt;/li&gt;
&lt;li&gt;the method has a fixed memory footprint and is independent of scene complexity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-106/ray_guiding.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191110232830/https://arisilvennoinen.github.io/Publications/ray_guiding_For_production_lightmap_baking_author_version.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://jcgt.org/published/0008/04/01/&#34; target=&#34;_blank&#34; id=&#34;Image-based Remapping of Spatially-varying Material Appearance&#34;&gt;Image-based Remapping of Spatially-varying Material Appearance&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper introduces a technique for translation of materials between different renderers&lt;/li&gt;
&lt;li&gt;using an image-based metric for uniform and texture based paramterization&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-106/material_transfer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://jcgt.org/published/0008/04/01/paper.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20191111021300/http://jcgt.org/published/0008/04/01/paper.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191111021206/http://jcgt.org/published/0008/04/01/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=s5NGeUV2EyU&#34; target=&#34;_blank&#34; id=&#34;[video] Rounding Corners in SDFs&#34;&gt;[video] Rounding Corners in SDFs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video shows how to modify the SDF of any geometrical shape to make its edges more rounded&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-106/rounding_sdf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/JasperBekkers/&#34; target=&#34;_blank&#34;&gt;Jasper Bekkers&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 105 — November 3, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-105/</link>
      <pubDate>Sun, 03 Nov 2019 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-105/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/dev-preview-of-new-directx-12-features/&#34; target=&#34;_blank&#34; id=&#34;Dev Preview of New DirectX 12 Features&#34;&gt;Dev Preview of New DirectX 12 Features&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post introduces new D3D12 features available with latest win10 preview version&lt;/li&gt;
&lt;li&gt;DirectX Raytracing Tier 1.1 introduces ExecuteIndirect, dynamic raytracing PSO additions and Inline Raytracing&lt;/li&gt;
&lt;li&gt;Inline Raytracing allows RayQuery to be called from every shader stage&lt;/li&gt;
&lt;li&gt;DirectX Mesh Shader are similar to nvidia mesh shaders, allowing more flexibily in the vertex processing pipeline&lt;/li&gt;
&lt;li&gt;DirectX Sampler Feedback allows the recording of which parts of textures have been accessed&lt;/li&gt;
&lt;li&gt;enabling more fine grained streaming and texture space shading scenarios&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-105/MeshShaderPipeline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191030134126/https://devblogs.microsoft.com/directx/dev-preview-of-new-directx-12-features/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=xOCSmvKqRWg&#34; target=&#34;_blank&#34; id=&#34;[video] How to Write Shaders in Unity - an Easy introduction by Febucci&#34;&gt;[video] How to Write Shaders in Unity - an Easy introduction by Febucci&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video explains the basic of shaders in Unity for beginners&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-105/unity_shaders_intro.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/developer/tools-software/graphics/b/blog/posts/arm-donates-vulkan-best-practice-for-mobile-developers-to-khronos-1610165794&#34; target=&#34;_blank&#34; id=&#34;Arm donates Vulkan Best Practice for Mobile Developers to The Khronos Group&#34;&gt;Arm donates Vulkan Best Practice for Mobile Developers to The Khronos Group&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the ARM developed sets of samples to showcase best practices for Vulkan on mobile is now open-source and part of Khronos&lt;/li&gt;
&lt;li&gt;article has list of samples and tutorials for a number of different areas&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-105/arm_khronos.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191104012212/https://community.arm.com/developer/tools-software/graphics/b/blog/posts/arm-donates-vulkan-best-practice-for-mobile-developers-to-khronos-1610165794&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/vulkan-releases-unified-samples-repository&#34; target=&#34;_blank&#34; id=&#34;Vulkan Releases Unified Samples Repository&#34;&gt;Vulkan Releases Unified Samples Repository&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Khronos published a unified Vulkan Samples Repository&lt;/li&gt;
&lt;li&gt;all samples are based on the same framework and have been reviewed and are maintained by Khronos&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-105/2019-vulkan-samples-banner.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191101101730/https://www.khronos.org/blog/vulkan-releases-unified-samples-repository&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/my-take-on-shaders-grass-shader-part-i/&#34; target=&#34;_blank&#34; id=&#34;My take on shaders: Grass Shader (Part I)&#34;&gt;My take on shaders: Grass Shader (Part I)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows the Unity shader implementation for stylized and unlit grass&lt;/li&gt;
&lt;li&gt;a geometry shader is used to spawn a variable number of grass blades based on camera distance&lt;/li&gt;
&lt;li&gt;grass movement by wind is emulated with a displacement texture&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-105/grass_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191104012303/https://halisavakis.com/my-take-on-shaders-grass-shader-part-i/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://casual-effects.com/research/McGuire2019ProcGen/McGuire2019ProcGen.pdf&#34; target=&#34;_blank&#34; id=&#34;ray tracing a tiny procedural planet&#34;&gt;ray tracing a tiny procedural planet&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;starts by showing how to create a small 2D world procedurally&lt;/li&gt;
&lt;li&gt;small overview of explicit vs implcit surface ray tracing&lt;/li&gt;
&lt;li&gt;then shows the steps used to render a procedural mini planet&lt;/li&gt;
&lt;li&gt;including ocean waves, mountains and clouds&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-105/tiny_planet.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191104011546/http://casual-effects.com/research/McGuire2019ProcGen/McGuire2019ProcGen.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=62-pRVZuS5c&#34; target=&#34;_blank&#34; id=&#34;[video] Deriving the SDF of a Box&#34;&gt;[video] Deriving the SDF of a Box&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the video presents how to derive the SDF for a box&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-105/sdf_box.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/siggraph-2019-highlight-finding-a-practical-hybrid-anti-aliasing-algorithm/&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2019 Highlight: Finding a Practical Hybrid Anti-Aliasing Algorithm&#34;&gt;SIGGRAPH 2019 Highlight: Finding a Practical Hybrid Anti-Aliasing Algorithm&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;summary of SIGGRAPH 2019 for a hybrid solution between temporal anti-aliasing with adaptive ray tracing&lt;/li&gt;
&lt;li&gt;using heuristics to detect when adaptive ray tracing provides the best improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-105/adaptive_ray_tracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191104012351/https://news.developer.nvidia.com/siggraph-2019-highlight-finding-a-practical-hybrid-anti-aliasing-algorithm/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/michael-riegger-33b55a11/&#34; target=&#34;_blank&#34;&gt;Michael Riegger&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 104 — October 27, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-104/</link>
      <pubDate>Sun, 27 Oct 2019 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-104/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.colour-science.org/posts/srgb-eotf-pure-gamma-22-or-piece-wise-function/&#34; target=&#34;_blank&#34; id=&#34;srgb eotf: pure gamma 2.2 function or piece-wise function?&#34;&gt;srgb eotf: pure gamma 2.2 function or piece-wise function?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the different meaning of the term gamma in different color contexts&lt;/li&gt;
&lt;li&gt;suggest to always use a piece-wise sRGB function&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-104/Gamma-2.2_sRGB_CCTFs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191029014826/https://www.colour-science.org/posts/srgb-eotf-pure-gamma-22-or-piece-wise-function/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.imgtec.com/blog/flow-control-on-powervr-optimising-shaders/&#34; target=&#34;_blank&#34; id=&#34;Flow Control on PowerVR – Optimising Shaders&#34;&gt;Flow Control on PowerVR – Optimising Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents an overview of the difference between static and dynamic branching&lt;/li&gt;
&lt;li&gt;dynamic is a lot more expensive of PowerVR hardware&lt;/li&gt;
&lt;li&gt;shows examples of problematic cases with dynamic branching&lt;/li&gt;
&lt;li&gt;presents an extension that can be used to make the dynamic branch a lot more performant if all threads agree on a condition&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-104/PowerVR.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191029015149/https://www.imgtec.com/blog/flow-control-on-powervr-optimising-shaders/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.humus.name/index.php?ID=387&#34; target=&#34;_blank&#34; id=&#34;Another Metaballs2 update&#34;&gt;Another Metaballs2 update&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduction of marching cube pre-pass stage reduces the mesh shader example GPU time by 33% to 50%&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-104/Metaballs2.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191029015204/http://www.humus.name/index.php?ID=387&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-4025-10-2019/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 40 (25.10.2019)&#34;&gt;Technically Art: Issue 40 (25.10.2019)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-104/technically_art_template_40.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191029015237/https://halisavakis.com/technically-art-issue-4025-10-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@shahriyarshahrabi/mesh-texture-painting-in-unity-using-shaders-8eb7fc31221c&#34; target=&#34;_blank&#34; id=&#34;Mesh Texture painting in Unity Using Shaders&#34;&gt;Mesh Texture painting in Unity Using Shaders&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents his solution on how to implement painting onto textures using unity&lt;/li&gt;
&lt;li&gt;intersects mouse position with meshes, converting into UV space to be able to apply painting information using signed distance fields&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-104/TextureSpacePainting.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191029015302/https://medium.com/@shahriyarshahrabi/mesh-texture-painting-in-unity-using-shaders-8eb7fc31221c&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/a-look-inside-d3d12-resource-state-barriers/&#34; target=&#34;_blank&#34; id=&#34;A Look Inside D3D12 Resource State Barriers&#34;&gt;A Look Inside D3D12 Resource State Barriers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the D3D12 resource state promotion and decay rules related to the common resource state&lt;/li&gt;
&lt;li&gt;mentions the AssertResourceState debug API that can be used to validate resource state promotion/decay behavior&lt;/li&gt;
&lt;li&gt;explains the ExecuteCommandLists behavior concerning resource states&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-104/d3d12_logo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191029015401/https://devblogs.microsoft.com/directx/a-look-inside-d3d12-resource-state-barriers/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://roar11.com/2019/10/gpu-ray-tracing-in-an-afternoon/&#34; target=&#34;_blank&#34; id=&#34;GPU Ray Tracing in an Afternoon&#34;&gt;GPU Ray Tracing in an Afternoon&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents how the author took the CPU implementation of Ray Tracing in a Weekend and converted it to run on the GPU using a GLSL implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-104/ray_tracing_motion_blur.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191022070033/http://roar11.com/2019/10/gpu-ray-tracing-in-an-afternoon/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://docs.google.com/presentation/d/1_cB-sxUusYVoCYdXnqwAg2u3-lrqBfgrUj205ytxYaw/preview?slide=id.p&#34; target=&#34;_blank&#34; id=&#34;RLSL - A rust to SPIR-V compiler&#34;&gt;RLSL - A rust to SPIR-V compiler&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a brief presentation by Embark Studios showing RLSL, a subset of rust compiled to SPIR-V&lt;/li&gt;
&lt;li&gt;experimental stage&lt;/li&gt;
&lt;li&gt;showing how/what it is currently implemented, vision for the future&lt;/li&gt;
&lt;li&gt;presents examples of how shaders are implemented&lt;/li&gt;
&lt;li&gt;integration into the rust ecosystem&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-104/RLSL.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191029024712/https://docs.google.com/presentation/d/1_cB-sxUusYVoCYdXnqwAg2u3-lrqBfgrUj205ytxYaw/preview?slide=id.p&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/pedanticcoder&#34; target=&#34;_blank&#34;&gt;Steven Cannavan&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 103 — October 20, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-103/</link>
      <pubDate>Sun, 20 Oct 2019 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-103/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://community.arm.com/developer/tools-software/graphics/b/blog/posts/picking-the-most-efficient-load-store-operations&#34; target=&#34;_blank&#34; id=&#34;Vulkan Mobile Best Practice: Picking the Most Efficient Load/Store Operations&#34;&gt;Vulkan Mobile Best Practice: Picking the Most Efficient Load/Store Operations&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes how the architecture of mobile GPUs is different from PC&lt;/li&gt;
&lt;li&gt;shows why load/store operations have a significant impact on mobile&lt;/li&gt;
&lt;li&gt;present a demo application to profile the various load and store operation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-103/load_store_vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191016040905/https://community.arm.com/developer/tools-software/graphics/b/blog/posts/picking-the-most-efficient-load-store-operations&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alain.xyz/blog/raw-directx12&#34; target=&#34;_blank&#34; id=&#34;Raw DirectX 12&#34;&gt;Raw DirectX 12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial shows the steps necessary to render a single triangle using the D3D12 API&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-103/d3d12_logo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191016040937/https://alain.xyz/blog/raw-directx12&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alain.xyz/blog/raw-webgl&#34; target=&#34;_blank&#34; id=&#34;Raw WebGL&#34;&gt;Raw WebGL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial shows the steps necessary to render a triangle in WebGL using Typescript&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-103/webgl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191016041008/https://alain.xyz/blog/raw-webgl&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/massively-parallel-path-space-filtering-in-game-development/&#34; target=&#34;_blank&#34; id=&#34;Massively Parallel Path Space Filtering in Game Development&#34;&gt;Massively Parallel Path Space Filtering in Game Development&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;excerpt of Siggraph 2019 talk that proposes averaging of neighboring rays into cells&lt;/li&gt;
&lt;li&gt;using a jittered access + filtering to remove artifacts of discretization&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-103/filtering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191016041113/https://news.developer.nvidia.com/massively-parallel-path-space-filtering-in-game-development/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/radeon-gpu-analyzer-2-3-direct3d-12-graphics/&#34; target=&#34;_blank&#34; id=&#34;Radeon™ GPU Analyzer 2.3 for Direct3D® 12 Graphics&#34;&gt;Radeon™ GPU Analyzer 2.3 for Direct3D® 12 Graphics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to use the Radeon GPU Analyzer to generate hardware native ISA disassembly, provide resource and register usage statistics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-103/gcn_isa.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191016041142/https://gpuopen.com/radeon-gpu-analyzer-2-3-direct3d-12-graphics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://codingwithballs.wordpress.com/2019/10/13/goon-voxel-object/&#34; target=&#34;_blank&#34; id=&#34;GOON – VOXEL OBJECT&#34;&gt;GOON – VOXEL OBJECT&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes a demo scene effect that uses a 2D height map on a flat 2D shaded object to simulate the appearance of 3D voxels&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-103/para_4_parallax.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191016041254/https://codingwithballs.wordpress.com/2019/10/13/goon-voxel-object/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ronja-tutorials.com/2019/10/14/spheretracing-depth.html&#34; target=&#34;_blank&#34; id=&#34;Handling Depth for Spheretracing&#34;&gt;Handling Depth for Spheretracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;next part of tutorial series shows how to extend a sphere tracing implementation in Unity to use the depth buffer correctly&lt;/li&gt;
&lt;li&gt;shows the necessary shader state changes and how to calculate custom depth output in a pixel shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-103/depth_sphere_tracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191016050617/https://www.ronja-tutorials.com/2019/10/14/spheretracing-depth.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://engstad.github.io/elliptic-stretch.html&#34; target=&#34;_blank&#34; id=&#34;GGX Derivation&#34;&gt;GGX Derivation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents the derivation of the GGX BRDF&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-103/ggx.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191017035032/https://engstad.github.io/elliptic-stretch.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.alanzucconi.com/2019/10/08/journey-sand-shader-1/&#34; target=&#34;_blank&#34; id=&#34;A Journey Into Journey’s Sand Shader&#34;&gt;A Journey Into Journey’s Sand Shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 1 of a Unity tutorial series about the sand rendering in Journey&lt;/li&gt;
&lt;li&gt;show visually the contribution of the different shading components&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-103/journey_01.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191020202955/https://www.alanzucconi.com/2019/10/08/journey-sand-shader-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.linkedin.com/in/michael-riegger-33b55a11/&#34; target=&#34;_blank&#34;&gt;Michael Riegger&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 102 — October 13, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-102/</link>
      <pubDate>Sun, 13 Oct 2019 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-102/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://unity.com/labs/publications#surface-gradient-based-bump-mapping-framework-2019&#34; target=&#34;_blank&#34; id=&#34;Surface Gradient Based Bump Mapping Framework&#34;&gt;Surface Gradient Based Bump Mapping Framework&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a mathematical framework for more consistent layering of bump/normal maps using linear surface gradients&lt;/li&gt;
&lt;li&gt;shows the problems with reliance on vertex level tangent space in existing techniques&lt;/li&gt;
&lt;li&gt;how to express existing methods in the new framework&lt;/li&gt;
&lt;li&gt;including source code&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-102/botd_rock_detail.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191014042627/https://drive.google.com/file/d/1UofqQ5hSIaQvKn52GiFSn2J2D5Dgq-XC/view&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://themaister.net/blog/2019/10/12/emulating-a-fake-retro-gpu-in-vulkan-compute/&#34; target=&#34;_blank&#34; id=&#34;Emulating a fake retro GPU in Vulkan compute&#34;&gt;Emulating a fake retro GPU in Vulkan compute&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;high-level system discussion of a retro GPU emulation implemented in Vulak compute shaders&lt;/li&gt;
&lt;li&gt;implementation details are discussed in the presentation&lt;/li&gt;
&lt;li&gt;using Subgroup and async compute for further optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-102/span_equations.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://themaister.net/blog/wp-content/uploads/2019/10/Implementing-Low-Level-GPU-Hans-Kristian-Munich-2019.pdf&#34; style=&#34;color:white;&#34;&gt;presentation &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20191014041552/http://themaister.net/blog/wp-content/uploads/2019/10/Implementing-Low-Level-GPU-Hans-Kristian-Munich-2019.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191014041522/http://themaister.net/blog/2019/10/12/emulating-a-fake-retro-gpu-in-vulkan-compute/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/baldurk/renderdoc/releases/tag/v1.5&#34; target=&#34;_blank&#34; id=&#34;RenderDoc - Version v1.5&#34;&gt;RenderDoc - Version v1.5&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new RenderDoc version allows explicit GPU playback selection&lt;/li&gt;
&lt;li&gt;improved SPIR-V reflection, performance improvements&lt;/li&gt;
&lt;li&gt;more extensions and feature levels supported for Vulkan and D3D12&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-102/render_doc.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191014041800/https://github.com/baldurk/renderdoc/releases/tag/v1.5&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://drive.google.com/file/d/1jaHXsLbB_MhR_KmtCPAuHKiXqyREeeYB/view&#34; target=&#34;_blank&#34; id=&#34;Real-time Rendering of Layered Materials with Anisotropic Normal Distributions&#34;&gt;Real-time Rendering of Layered Materials with Anisotropic Normal Distributions&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;proposal of approach for rendering layered materials&lt;/li&gt;
&lt;li&gt;layers are defined by anisotropic NDFs on varying tangent vector fields&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-102/layered.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191014045257/https://drive.google.com/file/d/1jaHXsLbB_MhR_KmtCPAuHKiXqyREeeYB/view&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.gamasutra.com/blogs/BradWardell/20191007/351772/Living_with_Vulkan_and_DirectX_12.php&#34; target=&#34;_blank&#34; id=&#34;Living with Vulkan and DirectX 12&#34;&gt;Living with Vulkan and DirectX 12&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the post describes the perspective from Stardock on D3D12/Vulkan vs. D3D11&lt;/li&gt;
&lt;li&gt;new possibilities but also many more problems&lt;/li&gt;
&lt;li&gt;performance improvements with D3D12 need to be balanced against the higher QA costs compared to D3D11&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-102/soc_release_ss2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191014042148/https://www.gamasutra.com/blogs/BradWardell/20191007/351772/Living_with_Vulkan_and_DirectX_12.php&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cg.tuwien.ac.at/research/publications/2019/TR%20193-2-2019-4/&#34; target=&#34;_blank&#34; id=&#34;Progressive Real-Time Rendering of One Billion Points Without Hierarchical Acceleration Structures&#34;&gt;Progressive Real-Time Rendering of One Billion Points Without Hierarchical Acceleration Structures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;proposes a real-time solution to rendering unstructured point clouds&lt;/li&gt;
&lt;li&gt;combination of temporal reprojection, random point selection, and GPU vertex buffer shuffling&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-102/point_set_rendering.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.cg.tuwien.ac.at/research/publications/2019/TR%20193-2-2019-4/TR%20193-2-2019-4-preprint.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20191014042238/https://www.cg.tuwien.ac.at/research/publications/2019/TR%20193-2-2019-4/TR%20193-2-2019-4-preprint.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191014043251/https://www.cg.tuwien.ac.at/research/publications/2019/TR%20193-2-2019-4/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://drive.google.com/file/d/17FKt5eOG5GNtjT00-3nevcvwOJ8Cbk9H/view&#34; target=&#34;_blank&#34; id=&#34;Denoising as a Building Block&#34;&gt;Denoising as a Building Block&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides an overview of the foundations of denoising techniques&lt;/li&gt;
&lt;li&gt;expands pon the basics to explain how more complex schemes are constructed&lt;/li&gt;
&lt;li&gt;how to consider denoising as a building block for several different problems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-102/denoising.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191014042559/https://drive.google.com/file/d/17FKt5eOG5GNtjT00-3nevcvwOJ8Cbk9H/view&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://www.wihlidal.com&#34; target=&#34;_blank&#34;&gt;Graham Wihlidal&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 101 — October 6, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-101/</link>
      <pubDate>Sun, 06 Oct 2019 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-101/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://therealmjp.github.io/posts/sss-intro/&#34; target=&#34;_blank&#34; id=&#34;An Introduction To Real-Time Subsurface Scattering&#34;&gt;An Introduction To Real-Time Subsurface Scattering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;in-depth article that provides an overview of subsurface scattering techniques used for games&lt;/li&gt;
&lt;li&gt;presents the most common techniques found in games, Texture-Space Diffusion, Screen-Space Subsurface Scattering, and Pre-integrated Subsurface Scattering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-101/rad_faces.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191007051541/https://therealmjp.github.io/posts/sss-intro/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gankra.github.io/blah/text-hates-you/&#34; target=&#34;_blank&#34; id=&#34;Text Rendering Hates You&#34;&gt;Text Rendering Hates You&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author provides an overview of problems that are encountered and make text rendering system very complex&lt;/li&gt;
&lt;li&gt;overview of terminology, overlapping glyphs, antialiasing, styling end emojis&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-101/firefox-color-ligatures.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191006105019/https://gankra.github.io/blah/text-hates-you/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aparis69.github.io/projects/paris2019_Deserts.html&#34; target=&#34;_blank&#34; id=&#34;Desertscape Simulation&#34;&gt;Desertscape Simulation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a model to simulate erosion and transport simulation for sand due to wind&lt;/li&gt;
&lt;li&gt;the simulation can generate a large number of different dune types&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-101/deserts_representative.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://drive.google.com/file/d/1TSSn2ubboBwjcyYRdsz4uCOd_SFWwkmz/view&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191007050255/https://aparis69.github.io/projects/paris2019_Deserts.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://web.yonsei.ac.kr/wjlee/traversalshader.html&#34; target=&#34;_blank&#34; id=&#34;Flexible Ray Traversal with an Extended Programming Model&#34;&gt;Flexible Ray Traversal with an Extended Programming Model&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper proposes the addition of a Traversal Shader stage to the DXR model&lt;/li&gt;
&lt;li&gt;this shader stage allows the programmable selection of acceleration structures&lt;/li&gt;
&lt;li&gt;presented use cases are stochastic LOD selection, choice of LOD levels based on ray type and improved multi-level instancing performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-101/lod.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://web.yonsei.ac.kr/wjlee/document/siga2019_lee_preprint.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20191007051459/http://web.yonsei.ac.kr/wjlee/document/siga2019_lee_preprint.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191007051448/http://web.yonsei.ac.kr/wjlee/traversalshader.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://therealmjp.github.io/posts/shader-fp16/&#34; target=&#34;_blank&#34; id=&#34;Half The Precision, Twice The Fun: Working With FP16 In HLSL&#34;&gt;Half The Precision, Twice The Fun: Working With FP16 In HLSL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows how to use 16-bit floating-point types on PC hardware&lt;/li&gt;
&lt;li&gt;differences in handling between APIs and shader compilers&lt;/li&gt;
&lt;li&gt;only modern hardware supports native 16-bit instructions on PC&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-101/fp16.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191007052537/https://therealmjp.github.io/posts/shader-fp16/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-37-04-10-2019/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 37 (04.10.2019)&#34;&gt;Technically Art: Issue 37 (04.10.2019)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-101/technically_art_template_37.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191007062013/https://halisavakis.com/technically-art-issue-37-04-10-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://iquilezles.org/www/articles/fbm/fbm.htm&#34; target=&#34;_blank&#34; id=&#34;Fractional Brownian Motion&#34;&gt;Fractional Brownian Motion&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes the characteristics of Fractional Brownian Motion&lt;/li&gt;
&lt;li&gt;commonly used for the procedural modeling of nature&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-101/gfx00.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191006140708/http://iquilezles.org/www/articles/fbm/fbm.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.imgtec.com/blog/physically-based-rendering-with-powervr-part-2/&#34; target=&#34;_blank&#34; id=&#34;Physically-Based Rendering with PowerVR – Part 2&#34;&gt;Physically-Based Rendering with PowerVR – Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows the precalculations steps that enable PBR rendering on mobile devices&lt;/li&gt;
&lt;li&gt;irradiance map from the environment, BRDF lookup table for Cook-Torrance model and prefiltered reflections map&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-101/brdf_lut_with_labels.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20191007062141/https://www.imgtec.com/blog/physically-based-rendering-with-powervr-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Sean McAllister for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 100 — September 29, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-100/</link>
      <pubDate>Sun, 29 Sep 2019 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-100/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://advances.realtimerendering.com/s2019/hair_presentation_final.pdf&#34; target=&#34;_blank&#34; id=&#34;Strand-based Hair Rendering in Frostbite&#34;&gt;Strand-based Hair Rendering in Frostbite&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation shows the new WIP hair rendering system&lt;/li&gt;
&lt;li&gt;a realtime system that is based on hair stands instead of cards&lt;/li&gt;
&lt;li&gt;strands are rasterized into shadow and deep opacity maps&lt;/li&gt;
&lt;li&gt;for performance reasons, a visibility buffer is written, and a sample deduplication pass is applied&lt;/li&gt;
&lt;li&gt;shading is done in a screen space pass&lt;/li&gt;
&lt;li&gt;shows how the different shading components have been implemented&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-100/hair_frostbite.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://advances.realtimerendering.com/s2019/hair_presentation_final.pptx&#34; style=&#34;color:white;&#34;&gt;pptx &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190929211936/http://advances.realtimerendering.com/s2019/hair_presentation_final.pptx&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190929211827/http://advances.realtimerendering.com/s2019/hair_presentation_final.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bartwronski.com/2019/09/22/local-linear-models-guided-filter/&#34; target=&#34;_blank&#34; id=&#34;Local linear models and guided filtering – an alternative to bilateral filter&#34;&gt;Local linear models and guided filtering – an alternative to bilateral filter&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents guided filtering as an alternative to a bilateral filter&lt;/li&gt;
&lt;li&gt;explains the bilateral filter logic and compares against guided filtering&lt;/li&gt;
&lt;li&gt;showing what the strengths and weaknesses of both approaches are&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-100/guided_filtering_ssao.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190930050411/https://bartwronski.com/2019/09/22/local-linear-models-guided-filter/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-1909-23/&#34; target=&#34;_blank&#34; id=&#34;PIX 1909.23 – New timing capture features, performance improvements and bug fixes&#34;&gt;PIX 1909.23 – New timing capture features, performance improvements and bug fixes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the new PIX CPU timeline view shows when a thread context switch happened and to where&lt;/li&gt;
&lt;li&gt;optimized shader access tracking, significant speedup when opening the pipeline view&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-100/190913-img1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190930050444/https://devblogs.microsoft.com/pix/pix-1909-23/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alain.xyz/blog/raytracing-denoising&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing Denoising&#34;&gt;Ray Tracing Denoising&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of denoising techniques in raytracing applications&lt;/li&gt;
&lt;li&gt;covering sampling and signal processing techniques&lt;/li&gt;
&lt;li&gt;additionally covers blurring kernels and spatial reprojection techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-100/motion-buffer.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190928233822/https://alain.xyz/blog/raytracing-denoising&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://smrtr.io/3ryqt&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior or Lead Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;(Helsinki, Finland)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Ubisoft RedLynx is a multiplatform game development studio located in Helsinki. Along with the hugely popular Trials series, we have developed and published more than 100 games and we are a passionate team of over 140 people of 21 different nationalities. We are seeking an experienced Graphics Programmer to join our core technology team in creating impactful game experiences&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_redlynx.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;redlynx_week_100&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.linkedin.com/pulse/how-powerful-can-webgl-comparison-native-opengl-denis-bogolepov/&#34; target=&#34;_blank&#34; id=&#34;How powerful can WebGL be in comparison with native OpenGL?&#34;&gt;How powerful can WebGL be in comparison with native OpenGL?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;performance comparison of a ray tracer application using native OpenGL against WebGL (Chrome, Firefox)&lt;/li&gt;
&lt;li&gt;The GPU performance is comparable on the D3D backend, even better at times&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-100/raytracing_webgl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190930050545/https://www.linkedin.com/pulse/how-powerful-can-webgl-comparison-native-opengl-denis-bogolepov/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/custom-srp/custom-render-pipeline/&#34; target=&#34;_blank&#34; id=&#34;Custom Render Pipeline Taking Control of Rendering&#34;&gt;Custom Render Pipeline Taking Control of Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Unity tutorial showing how to set up a custom render pipeline&lt;/li&gt;
&lt;li&gt;covering how to set up the project&lt;/li&gt;
&lt;li&gt;cull, filter, and sort objects&lt;/li&gt;
&lt;li&gt;add support for multiple cameras&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-100/custom_unity_pipeline.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190930050528/https://catlikecoding.com/unity/tutorials/custom-srp/custom-render-pipeline/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=3EdE38iRn2A&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[Video] DirectX Raytracing: Real-Time Denoised Raytraced Ambient Occlusion&#34;&gt;[Video] DirectX Raytracing: Real-Time Denoised Raytraced Ambient Occlusion&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview video for the new DirectX Raytracing sample, showing a Raytraced Ambient Occlusion implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-100/DirectXRaytracingNoise.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-36-27-09-2019/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 36 (27.09.2019)&#34;&gt;Technically Art: Issue 36 (27.09.2019)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to VFX, shaders, and game art&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-100/technically_art_template_36.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190930050459/https://halisavakis.com/technically-art-issue-36-27-09-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://advances.realtimerendering.com/s2019/CrestSIGGRAPH2019-Final-for_web.pptx&#34; target=&#34;_blank&#34; id=&#34;Multi-resolution Ocean Rendering in Crest Ocean System [280 MB pptx]&#34;&gt;Multi-resolution Ocean Rendering in Crest Ocean System [280 MB pptx]&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides an overview of the ocean rendering system&lt;/li&gt;
&lt;li&gt;the system is based around hierarchical, fully dynamic ocean data sources&lt;/li&gt;
&lt;li&gt;shows how to model waves, integrate shading and realistic flow patterns&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-100/water_system.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190929212036/http://advances.realtimerendering.com/s2019/CrestSIGGRAPH2019-Final-for_web.pptx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Spencer Sherk for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 99 — September 22, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-99/</link>
      <pubDate>Sun, 22 Sep 2019 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-99/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wickedengine.net/2019/09/22/improved-normal-reconstruction-from-depth/&#34; target=&#34;_blank&#34; id=&#34;Improved normal reconstruction from depth&#34;&gt;Improved normal reconstruction from depth&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents what kind of artifacts happen when reconstructing normals from world space positions&lt;/li&gt;
&lt;li&gt;suggests how to reduce the artifacts by selecting triangles that are most likely to have originated from the same object&lt;/li&gt;
&lt;li&gt;additionally shows how to use compute shaders and group shared memory to optimize the reconstruction&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-99/normal_discontinuity_2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190922214331/https://wickedengine.net/2019/09/22/improved-normal-reconstruction-from-depth/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cs.dartmouth.edu/~wjarosz/publications/seyb19nonlinear.html&#34; target=&#34;_blank&#34; id=&#34;Non-linear sphere tracing for rendering deformed signed distance fields&#34;&gt;Non-linear sphere tracing for rendering deformed signed distance fields&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a method that allows SDFs to be combined with techniques such as linear skinning&lt;/li&gt;
&lt;li&gt;this is achieved by calculating a triangle mesh hull for the SDF, applying the transformation to the hull and using this to trace&lt;/li&gt;
&lt;li&gt;tracing linearly in transformed space follows a non-linear trace in untransformed space&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-99/non_linear_sphere_tracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://cs.dartmouth.edu/~wjarosz/publications/seyb19nonlinear.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190922212239/https://cs.dartmouth.edu/~wjarosz/publications/seyb19nonlinear.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190919193202/https://cs.dartmouth.edu/~wjarosz/publications/seyb19nonlinear.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.apple.com/videos/play/tech-talks/608/&#34; target=&#34;_blank&#34; id=&#34;Metal Enhancements for A13 Bionic&#34;&gt;Metal Enhancements for A13 Bionic&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of what has been improved in the latest apple GPU architecture and metal&lt;/li&gt;
&lt;li&gt;sparse textures, what it is, use cases and explanation of how to use it&lt;/li&gt;
&lt;li&gt;rasterization rate maps, mask that allows defining non-linear mapping between virtual and physical render targets&lt;/li&gt;
&lt;li&gt;vertex amplification specifies which vertex calculations can be shared between multiple viewports and which ones are unique per viewport&lt;/li&gt;
&lt;li&gt;better argument buffers, allow access to 500k textures and multiple levels of indirection&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-99/metal_api.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190913212235/https://developer.apple.com/videos/play/tech-talks/608/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://benedikt-bitterli.me/smlt/&#34; target=&#34;_blank&#34; id=&#34;Selectively Metropolised Monte Carlo light transport simulation&#34;&gt;Selectively Metropolised Monte Carlo light transport simulation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new scheme that allows selectively combining different Monte Carlo rendering algorithms&lt;/li&gt;
&lt;li&gt;allow the use of less computational complex algorithms for more straightforward light transport cases and more sophisticated algorithms for more complicated cases&lt;/li&gt;
&lt;li&gt;enables to reduce the overall amount of noise in the same render time&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-99/smlt.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://benedikt-bitterli.me/smlt/bitterli19selectively.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190922212955/http://benedikt-bitterli.me/smlt/bitterli19selectively.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190922212932/http://benedikt-bitterli.me/smlt/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ourmachinery.com/post/vertex-assembly-and-skinning/&#34; target=&#34;_blank&#34; id=&#34;Vertex Assembly and Skinning&#34;&gt;Vertex Assembly and Skinning&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how vertex shaders in &amp;ldquo;Our Machinery&amp;rdquo; engine is handled&lt;/li&gt;
&lt;li&gt;all vertex data is explicitly loaded in the vertex shader&lt;/li&gt;
&lt;li&gt;shows how a more flexible skinning variation can be implemented&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-99/our_machinery_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190922213342/https://ourmachinery.com/post/vertex-assembly-and-skinning/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://smrtr.io/3ryqt&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior or Lead Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;(Helsinki, Finland)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Ubisoft RedLynx is a multiplatform game development studio located in Helsinki. Along with the hugely popular Trials series, we have developed and published more than 100 games and we are a passionate team of over 140 people of 21 different nationalities. We are seeking an experienced Graphics Programmer to join our core technology team in creating impactful game experiences&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_redlynx.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;redlynx_week_99&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/geometry-reinvented-with-mesh-shading/&#34; target=&#34;_blank&#34; id=&#34;Geometry Reinvented with Mesh Shading&#34;&gt;Geometry Reinvented with Mesh Shading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;excerpt from the &lt;a href=&#34;https://developer.nvidia.com/siggraph/2019/video/sig918-vid&#34; target=&#34;_blank&#34;&gt;Siggraph talk&lt;/a&gt; talk&lt;/li&gt;
&lt;li&gt;overview of the mesh shading demo&lt;/li&gt;
&lt;li&gt;culling implement in task shader&lt;/li&gt;
&lt;li&gt;frustum calling also is done in the meshlet shader stage, since only parts of the model could be visible on screen&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-99/mesh_shader_demo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190922213429/https://news.developer.nvidia.com/geometry-reinvented-with-mesh-shading/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/dred-v1-2-supports-pix-marker-and-event-strings-in-auto-breadcrumbs/&#34; target=&#34;_blank&#34; id=&#34;DRED v1.2 supports PIX marker and event strings in Auto-Breadcrumbs&#34;&gt;DRED v1.2 supports PIX marker and event strings in Auto-Breadcrumbs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;DRED can now include PIX markers&lt;/li&gt;
&lt;li&gt;additional string events can be attached to markers&lt;/li&gt;
&lt;li&gt;debugger extension has been updated to provide access to the information&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-99/d3d12_logo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190922213548/https://devblogs.microsoft.com/directx/dred-v1-2-supports-pix-marker-and-event-strings-in-auto-breadcrumbs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.dropbox.com/s/vxxk339nuxz04mt/lightmap_londongpu.pptx&#34; target=&#34;_blank&#34; id=&#34;Real-time lightmap baking&#34;&gt;Real-time lightmap baking&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation explains how lightmap baking has been implemented in &lt;a href=&#34;https://github.com/turanszkij/WickedEngine&#34; target=&#34;_blank&#34;&gt;Wicked Engine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;how to ray trace with D3D11 compute and/or pixel shaders&lt;/li&gt;
&lt;li&gt;discusses artifacts, limitations, UV packing, texture formats, and filtering&lt;/li&gt;
&lt;li&gt;the resulting system is an object space shading system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-99/lightmap_packed.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.humus.name/index.php?page=News&amp;amp;ID=386&#34; target=&#34;_blank&#34; id=&#34;Updated Metaballs2 demo&#34;&gt;Updated Metaballs2 demo&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Metaballs2 demo has been updated&lt;/li&gt;
&lt;li&gt;the demo shows how to use mesh shaders and now provides a compute shader fallback version&lt;/li&gt;
&lt;li&gt;allows switching between both implementations&lt;/li&gt;
&lt;li&gt;compute shaders require extra memory to store intermediate results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-99/Metaballs2.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190922214242/http://www.humus.name/index.php?page=Comments&amp;amp;ID=386&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/Jontology&#34; target=&#34;_blank&#34;&gt;Jon Greenberg&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 98 — September 15, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-98/</link>
      <pubDate>Sun, 15 Sep 2019 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-98/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.eurogamer.net/amp/digitalfoundry-2019-gears-5-tech-interview&#34; target=&#34;_blank&#34; id=&#34;The making of Gears 5: how the Coalition hit 60fps - and improved visual quality&#34;&gt;The making of Gears 5: how the Coalition hit 60fps - and improved visual quality&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;interview discussing the details of the Gear 5 implementation&lt;/li&gt;
&lt;li&gt;all post-processing and UI rendering is done post-upscaling in the output resolution&lt;/li&gt;
&lt;li&gt;using &lt;a href=&#34;https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch18.html&#34; target=&#34;_blank&#34;&gt;Relaxed Cone Stepping&lt;/a&gt; for extra details instead of parallax occlusion mapping&lt;/li&gt;
&lt;li&gt;a mix of shadow maps and ray-traced distance field shadows&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-98/gears5.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190915000820/https://www.eurogamer.net/amp/digitalfoundry-2019-gears-5-tech-interview?__twitter_impression=true&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.alanzucconi.com/2019/09/13/believable-caustics-reflections/&#34; target=&#34;_blank&#34; id=&#34;Believable Caustics Reflections&#34;&gt;Believable Caustics Reflections&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tutorial explaining how to implement a Caustics effect in unity&lt;/li&gt;
&lt;li&gt;uses a tileable texture, that is sampled multiple times&lt;/li&gt;
&lt;li&gt;slight offsets in RGB sample locations allow for color shifting across channels&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-98/caustics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190915035825/https://www.alanzucconi.com/2019/09/13/believable-caustics-reflections/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@shahriyarshahrabi/diagnosing-performance-issues-in-unity-c1fab81790b3&#34; target=&#34;_blank&#34; id=&#34;Diagnosing performance issues in Unity&#34;&gt;Diagnosing performance issues in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents an overview of performance methodology to detect performance issues earlier&lt;/li&gt;
&lt;li&gt;including the building of test scenes, early clarification of constraints and constant checking of assumptions&lt;/li&gt;
&lt;li&gt;setting budgets early simplifies expectations and possibilities&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-98/unity_performance.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190915035848/https://medium.com/@shahriyarshahrabi/diagnosing-performance-issues-in-unity-c1fab81790b3&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;job_container_tall&#34;&gt;
    &lt;div class=&#34;job_header&#34;&gt;
        &lt;hr&gt;
        &lt;div class=&#34;job_region_start&#34;&gt;Jobs&lt;/div&gt;
        &lt;h2&gt; 
            &lt;a href=&#34;https://smrtr.io/3ryqt&#34; target=&#34;_blank&#34; onclick=&#34;register_job_click();&#34; &gt;Senior or Lead Graphics Programmer&lt;/a&gt; 
            &lt;p class=&#34;job_location&#34;&gt;(Helsinki, Finland)&lt;/p&gt; 
        &lt;/h2&gt;
        
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;p&gt;Ubisoft RedLynx is a multiplatform game development studio located in Helsinki. Along with the hugely popular Trials series, we have developed and published more than 100 games and we are a passionate team of over 140 people of 21 different nationalities. We are seeking an experienced Graphics Programmer to join our core technology team in creating impactful game experiences&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class=&#34;job_image_tall&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/jobs/logo_redlynx.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        Would you like to advertise your job openings here too? &lt;a href=&#34;https://www.jendrikillner.com/jobs&#34;&gt; More information &lt;/a&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_right&#34;&gt;
    &lt;/div&gt;
    &lt;script&gt;
        function register_job_click() {
            sa_event(&#34;redlynx_week_98&#34;)
        }
    &lt;/script&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://webkit.org/blog/9528/webgpu-and-wsl-in-safari/&#34; target=&#34;_blank&#34; id=&#34;WebGPU and WSL in Safari&#34;&gt;WebGPU and WSL in Safari&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of the state of WebGPU in safari&lt;/li&gt;
&lt;li&gt;Web Shading Language is a new text-based shader language, now supported&lt;/li&gt;
&lt;li&gt;presents compile-time and size comparisons against SPIR-V based implementations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-98/WSLTrianglesBenchmark.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190915040020/https://webkit.org/blog/9528/webgpu-and-wsl-in-safari/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://themaister.net/blog/2019/09/12/the-weird-world-of-shader-divergence-and-lod/&#34; target=&#34;_blank&#34; id=&#34;Mip-mapping is hard – importance of keeping your quads full&#34;&gt;Mip-mapping is hard – importance of keeping your quads full&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;looks at the behavior of texture sampling in divergent code flows on different hardware&lt;/li&gt;
&lt;li&gt;undefined behavior that is handled very differently depending on the GPU hardware&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-98/shader_divergence.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190915040102/http://themaister.net/blog/2019/09/12/the-weird-world-of-shader-divergence-and-lod/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/lunarg-releases-new-sdks-for-vulkan-1-1-121/&#34; target=&#34;_blank&#34; id=&#34;Overview of new additions to Vulkan SDK 1.1.121&#34;&gt;Overview of new additions to Vulkan SDK 1.1.121&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;GPU assisted validation for VK_EXT_buffer_device_address&lt;/li&gt;
&lt;li&gt;SPIRV-opt can now retarget shaders to use RelaxedPrecision without requiring source-level changes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-98/vulkan_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190915040215/https://www.lunarg.com/lunarg-releases-new-sdks-for-vulkan-1-1-121/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://rgl.epfl.ch/publications/NimierDavidVicini2019Mitsuba2&#34; target=&#34;_blank&#34; id=&#34;Mitsuba 2: A Retargetable Forward and Inverse Renderer&#34;&gt;Mitsuba 2: A Retargetable Forward and Inverse Renderer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper discusses the design of the  Mitsuba 2 renderer&lt;/li&gt;
&lt;li&gt;based on a combination of generic algorithms and composable compile-time transformations&lt;/li&gt;
&lt;li&gt;demonstrates the approach with Polarized light transport, coherent Markov Chain Monte Carlo (MCMC) exploration, caustic design in heterogeneous media with multiple scattering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-98/Mitsuba2_teaser.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://rgl.s3.eu-central-1.amazonaws.com/media/papers/NimierDavidVicini2019Mitsuba2.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190915040315/https://rgl.s3.eu-central-1.amazonaws.com/media/papers/NimierDavidVicini2019Mitsuba2.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190915040252/https://rgl.epfl.ch/publications/NimierDavidVicini2019Mitsuba2&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-34-13-09-2019/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 34 (13.09.2019)&#34;&gt;Technically Art: Issue 34 (13.09.2019)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tech art tweets, many gifs, and videos showing a large variety of effects and art styles&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-98/technically_art_34.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190915040724/https://halisavakis.com/technically-art-issue-34-13-09-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.iliyan.com/publications/VarianceAwareMIS&#34; target=&#34;_blank&#34; id=&#34;Variance-aware multiple importance sampling&#34;&gt;Variance-aware multiple importance sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper proposes a new weighting heuristic for multiple importance
sampling&lt;/li&gt;
&lt;li&gt;taking into account variance estimations&lt;/li&gt;
&lt;li&gt;shows how to integrate the solution into Bidirectional path tracing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-98/variance_aware.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://www.iliyan.com/publications/VarianceAwareMIS/VarianceAwareMIS_SigAsia2019.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;#ZgotmplZ&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190915161104/http://www.iliyan.com/publications/VarianceAwareMIS&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.iliyan.com/publications/TransmittanceFormulations&#34; target=&#34;_blank&#34; id=&#34;Integral formulations of volumetric transmittance&#34;&gt;Integral formulations of volumetric transmittance&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents novel integral formulations for volumetric transmittance&lt;/li&gt;
&lt;li&gt;it enables the use of Monte Carlo estimator variance analysis&lt;/li&gt;
&lt;li&gt;comparison of different estimators for different scenarios&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-98/TransmittanceFormulations.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://www.iliyan.com/publications/VarianceAwareMIS/VarianceAwareMIS_SigAsia2019.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190915161230/http://www.iliyan.com/publications/VarianceAwareMIS/VarianceAwareMIS_SigAsia2019.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190915161209/http://www.iliyan.com/publications/TransmittanceFormulations&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://bruop.github.io&#34; target=&#34;_blank&#34;&gt;Bruno Opsenica&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 97 — September 8, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-97/</link>
      <pubDate>Mon, 12 Aug 2019 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-97/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://c0de517e.blogspot.com/2019/08/engineering-career-guide-leaked.html&#34; target=&#34;_blank&#34; id=&#34;Engineering Career Guide [LEAKED]&#34;&gt;Engineering Career Guide [LEAKED]&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;guide by Roblox for the career development of rendering engineers&lt;/li&gt;
&lt;li&gt;what jobs are required, how to learn and personally take control of directed development&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-97/CareerGuide.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190908061637/http://c0de517e.blogspot.com/2019/08/engineering-career-guide-leaked.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blogs.unity3d.com/2019/09/03/watch-the-unity-graphics-sessions-from-siggraph-2019/&#34; target=&#34;_blank&#34; id=&#34;Watch the Unity Graphics Sessions from SIGGRAPH 2019&#34;&gt;Watch the Unity Graphics Sessions from SIGGRAPH 2019&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;summary and links to the video recordings from Unity talks at SIGGRAPH 2019&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-97/Unity_SIGGRAPH.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190909020252/https://blogs.unity3d.com/2019/09/03/watch-the-unity-graphics-sessions-from-siggraph-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/d3d12-memory-allocator-1-0-0/&#34; target=&#34;_blank&#34; id=&#34;D3D12 Memory Allocator 1.0.0&#34;&gt;D3D12 Memory Allocator 1.0.0&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the first release of a new open-source D3D12 memory allocator project by AMD&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-97/d3d12_allocator.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190909020319/https://gpuopen.com/d3d12-memory-allocator-1-0-0/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/my-take-on-shaders-water-shader/&#34; target=&#34;_blank&#34; id=&#34;My take on shaders: Water Shader&#34;&gt;My take on shaders: Water Shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a walkthrough that explains a Unity water shader implementation&lt;/li&gt;
&lt;li&gt;the shader is designed to be easy to use, control and extend&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-97/unity_water_shader.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190909020336/https://halisavakis.com/my-take-on-shaders-water-shader/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.shivoa.net/2019/08/the-sharpening-curse.html&#34; target=&#34;_blank&#34; id=&#34;The Sharpening Curse&#34;&gt;The Sharpening Curse&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the image quality difference between film and realtime rendering&lt;/li&gt;
&lt;li&gt;presents that games are overly sharp and what future developments might look like&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-97/BlackFlagWithTXAA.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190909020354/https://blog.shivoa.net/2019/08/the-sharpening-curse.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2019/09/07/hybrid-screen-space-reflections/&#34; target=&#34;_blank&#34; id=&#34;hybrid screen-space reflections&#34;&gt;hybrid screen-space reflections&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a hybrid technique between Screen space reflections and ray-traced reflections&lt;/li&gt;
&lt;li&gt;shows comparisons between the two methods, differences, strengths, and weaknesses&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-97/comp_raytracing_shadows1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190908091809/https://interplayoflight.wordpress.com/2019/09/07/hybrid-screen-space-reflections/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://alain.xyz/blog/raw-opengl&#34; target=&#34;_blank&#34; id=&#34;Raw OpenGL&#34;&gt;Raw OpenGL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;OpenGL tutorial that teaches the concepts required to render a textured mesh&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-97/opengl-users.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190909020425/https://alain.xyz/blog/raw-opengl&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/microsoft/DirectXShaderCompiler/releases&#34; target=&#34;_blank&#34; id=&#34;DirectXShaderCompiler - prebuild releases&#34;&gt;DirectXShaderCompiler - prebuild releases&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Microsoft is now offering pre-built binaries of the shader compiler on GitHub&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-97/dxc.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.willusher.io/graphics/2019/09/06/faster-shadow-rays-on-rtx&#34; target=&#34;_blank&#34; id=&#34;Faster Shadow Rays on RTX&#34;&gt;Faster Shadow Rays on RTX&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents different techniques to generate ray traced shadows&lt;/li&gt;
&lt;li&gt;compares the performance of using Any Hit, Closest Hit or Miss Shader to determine if the ray has been occluded&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-97/shadow_rays.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190909020456/https://www.willusher.io/graphics/2019/09/06/faster-shadow-rays-on-rtx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://morgan3d.github.io/advanced-ray-tracing-course/path-tracing-review.pdf&#34; target=&#34;_blank&#34; id=&#34;Path Tracing Review&#34;&gt;Path Tracing Review&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;intro to computer graphics from University of Waterloo summarized in one slide deck&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-97/path_tracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190909020436/https://morgan3d.github.io/advanced-ray-tracing-course/path-tracing-review.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/gmodarelli&#34; target=&#34;_blank&#34;&gt;Giuseppe Modarelli&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 96 — August 04, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-96/</link>
      <pubDate>Sun, 04 Aug 2019 04:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-96/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://advances.realtimerendering.com/s2019/index.htm&#34; target=&#34;_blank&#34; id=&#34;Advances in Real-Time Rendering in Games - Siggraph 2019&#34;&gt;Advances in Real-Time Rendering in Games - Siggraph 2019&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;slides for the Advances in Real-Time Rendering in Games are starting to be released&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-96/siggraph_2019.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://advances.realtimerendering.com/s2019/Mesh_shading_SIG2019.pptx&#34; target=&#34;_blank&#34; id=&#34;Mesh Shading: Towards Greater Efficiency Of Geometry Processing (pptx)&#34;&gt;Mesh Shading: Towards Greater Efficiency Of Geometry Processing (pptx)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a brief historical look at the rendering pipeline&lt;/li&gt;
&lt;li&gt;what aspects mesh shaders can improve&lt;/li&gt;
&lt;li&gt;explanation of programming model&lt;/li&gt;
&lt;li&gt;what new programming approaches it enables&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-96/mesh_shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190805011357/http://advances.realtimerendering.com/s2019/Mesh_shading_SIG2019.pptx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://advances.realtimerendering.com/s2019/SIGGRAPH_GOW_WIND_day_of.pptx&#34; target=&#34;_blank&#34; id=&#34;Interactive Wind and Vegetation in &amp;#39;God of War&amp;#39; (2GB pptx!)&#34;&gt;Interactive Wind and Vegetation in &amp;#39;God of War&amp;#39; (2GB pptx!)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of the interactive wind system in God of War&lt;/li&gt;
&lt;li&gt;discussion wind fluid simulation, wind sources, receivers, and interactions&lt;/li&gt;
&lt;li&gt;authoring pipeline, best practices, and algorithm implementation details&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-96/gow_wind.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190805012105/http://advances.realtimerendering.com/s2019/SIGGRAPH_GOW_WIND_day_of.pptx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://advances.realtimerendering.com/s2019/slides_public_release.pptx&#34; target=&#34;_blank&#34; id=&#34;Creating the Atmospheric World of Red Dead Redemption 2: A Complete and Integrated Solution (227 MB pptx)&#34;&gt;Creating the Atmospheric World of Red Dead Redemption 2: A Complete and Integrated Solution (227 MB pptx)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a presentation covering the volumetric effects of Red Dead Redemption 2&lt;/li&gt;
&lt;li&gt;talks about the data model, rendering and scene integration&lt;/li&gt;
&lt;li&gt;covering clouds, fog, sky, light shafts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-96/red_dead_redemption.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190805012819/http://advances.realtimerendering.com/s2019/slides_public_release.pptx&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/compute-product/amd-rdna-1-0-instruction-set-architecture/&#34; target=&#34;_blank&#34; id=&#34;AMD RDNA 1.0 Instruction Set Architecture&#34;&gt;AMD RDNA 1.0 Instruction Set Architecture&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;instruction set documentation for the new AMD RDNA GPU architecture&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-96/swizzle_buffer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://gpuopen.com/wp-content/uploads/2019/08/RDNA_Shader_ISA_7July2019.pdf&#34; style=&#34;color:white;&#34;&gt;pdf &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190802105905/https://gpuopen.com/wp-content/uploads/2019/08/RDNA_Shader_ISA_7July2019.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190802105840/https://gpuopen.com/compute-product/amd-rdna-1-0-instruction-set-architecture/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aschrein.github.io/2019/08/01/re2_breakdown.html&#34; target=&#34;_blank&#34; id=&#34;Resident Evil 2 Frame Breakdown&#34;&gt;Resident Evil 2 Frame Breakdown&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;frame breakdown of a Resident Evil 2&lt;/li&gt;
&lt;li&gt;presents the different stages found in the frame&lt;/li&gt;
&lt;li&gt;deferred rendering engine, heavy use compute and indirect draw&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-96/resident_evil.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190805013649/https://aschrein.github.io/2019/08/01/re2_breakdown.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://iquilezles.org/www/articles/ellipsoids/ellipsoids.htm&#34; target=&#34;_blank&#34; id=&#34;SDF - ellipsoid&#34;&gt;SDF - ellipsoid&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a distance for function for ellipsoid&lt;/li&gt;
&lt;li&gt;how to improve it for better control and better interaction with other primitive types&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-96/gfx09.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190805014227/http://iquilezles.org/www/articles/ellipsoids/ellipsoids.htm&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://prideout.net/blog/occlusion_sorting/&#34; target=&#34;_blank&#34; id=&#34;Split-free occlusion sorting&#34;&gt;Split-free occlusion sorting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses how to build a correct CPU occlusion sorting structure&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-96/occluder_clipspace.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190805014822/https://prideout.net/blog/occlusion_sorting/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.selfshadow.com/2019/07/30/siggraph-2019-links/&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2019 Links&#34;&gt;SIGGRAPH 2019 Links&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of links to content from Siggraph 2019&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-96/siggraph_2019.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190805015559/https://blog.selfshadow.com/2019/07/30/siggraph-2019-links/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://reedbeta.com&#34; target=&#34;_blank&#34;&gt;Nathan Reed&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 95 — July 28, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-95/</link>
      <pubDate>Sun, 28 Jul 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-95/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://sites.google.com/view/arewedonewithraytracing&#34; target=&#34;_blank&#34; id=&#34;Are we done with Ray Tracing?&#34;&gt;Are we done with Ray Tracing?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;slides for Siggraph 2019 course&lt;/li&gt;
&lt;li&gt;talking about the state of ray-tracing&lt;/li&gt;
&lt;li&gt;state-of-the-art in hardware and software developments&lt;/li&gt;
&lt;li&gt;provides a history and vision of where ray-tracing in games is going to develop&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-95/RayTracingSiggraph2019.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190729050027/https://sites.google.com/view/arewedonewithraytracing&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://tayfunkayhan.wordpress.com/2019/07/26/chasing-triangles-in-a-tile-based-rasterizer/&#34; target=&#34;_blank&#34; id=&#34;Chasing Triangles in a Tile-based Rasterizer&#34;&gt;Chasing Triangles in a Tile-based Rasterizer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the detailed article explains how to tile-based rasterization works&lt;/li&gt;
&lt;li&gt;show how to implement rasterization using this design&lt;/li&gt;
&lt;li&gt;includes SSE and multithreaded implemenation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-95/boundedtri.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190729050107/https://tayfunkayhan.wordpress.com/2019/07/26/chasing-triangles-in-a-tile-based-rasterizer/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jo.dreggn.org/path-tracing-in-production/2019/index.html&#34; target=&#34;_blank&#34; id=&#34;siggraph course: path tracing in production 2019&#34;&gt;siggraph course: path tracing in production 2019&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;course notes for the Siggraph 2019 course&lt;/li&gt;

&lt;li&gt;&lt;p&gt;part 1 focuses on the necessary background knowledge
provide an insight into movie production requirements and mathematical foundation&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;part 2 focuses on materials (acquisition and production requirements) showing practical efforts, achievements and problems encountered&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-95/path_tracing_teaser.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190729050155/https://jo.dreggn.org/path-tracing-in-production/2019/index.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ciechanow.ski/alpha-compositing/&#34; target=&#34;_blank&#34; id=&#34;Alpha Compositing&#34;&gt;Alpha Compositing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses the foundations of alpha compositing&lt;/li&gt;
&lt;li&gt;explains the different compositing operations&lt;/li&gt;
&lt;li&gt;show how to use pre-multiplied alpha to eliminate common problems&lt;/li&gt;
&lt;li&gt;explanation of filtering, interpolation, blend modes, and additive blending&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-95/alpha_premul_blur.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190729050321/https://ciechanow.ski/alpha-compositing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-27-26-07-2019/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 27 (26.07.2019)&#34;&gt;Technically Art: Issue 27 (26.07.2019)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of VFX tweets of the week&lt;/li&gt;
&lt;li&gt;tutorials, demos, and showcases of great looking effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-95/technically_art_27.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190729142133/https://halisavakis.com/technically-art-issue-27-26-07-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://asawicki.info/articles/memory_management_vulkan_direct3d_12.php5&#34; target=&#34;_blank&#34; id=&#34;Differences in memory management between Direct3D 12 and Vulkan&#34;&gt;Differences in memory management between Direct3D 12 and Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses memory management in Vulkan and D3D12&lt;/li&gt;
&lt;li&gt;shows differences in API and exposed features&lt;/li&gt;
&lt;li&gt;discussion resource allocation, mapping, cache invalidation, memory budgets, and resource residency&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-95/d3d12_vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190729051042/http://asawicki.info/articles/memory_management_vulkan_direct3d_12.php5&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://renderwonk.com/publications/mam2019/&#34; target=&#34;_blank&#34; id=&#34;Fresnel Equations Considered Harmful&#34;&gt;Fresnel Equations Considered Harmful&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents problems with the Fresnel equations when applied to sRGB data&lt;/li&gt;
&lt;li&gt;model is only accurate when the parameters are carefully selected&lt;/li&gt;
&lt;li&gt;comparison against the Schlick model&lt;/li&gt;
&lt;li&gt;offers an extension of the  Schlick model for more accuracy and control&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-95/new_model.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190729051316/http://renderwonk.com/publications/mam2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shadertoyunofficial.wordpress.com/2019/07/23/shadertoy-media-files/&#34; target=&#34;_blank&#34; id=&#34;Shadertoy media files&#34;&gt;Shadertoy media files&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article contains the links to the build-in Shadertoy media files&lt;/li&gt;
&lt;li&gt;useful when implementing an effect based on reference found on Shadertoy&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-95/shadertoy_media.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190729143248/https://shadertoyunofficial.wordpress.com/2019/07/23/shadertoy-media-files/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://erichaines.com/&#34; target=&#34;_blank&#34;&gt;Eric Haines&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 94 — July 21, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-94/</link>
      <pubDate>Sun, 21 Jul 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-94/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@bromanz/axis-aligned-bounding-tetrahedra-and-octahedra-for-ray-tracing-bounding-volume-hierarchies-683751d84bca&#34; target=&#34;_blank&#34; id=&#34;Axis-Aligned Bounding Tetrahedra and Octahedra for Ray Tracing Bounding Volume Hierarchies&#34;&gt;Axis-Aligned Bounding Tetrahedra and Octahedra for Ray Tracing Bounding Volume Hierarchies&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents Axis-Aligned-Bounding-Tetrahedron (AABT) and Axis-Aligned-Bounding-Octahedron (AABO) as alternative approaches to  axis-aligned Bounding Boxes (AABB)  to build acceleration structures&lt;/li&gt;
&lt;li&gt;displays the data structures in 2D and extends into 3D&lt;/li&gt;
&lt;li&gt;showing results and possible proposals for more research into the topic&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-94/bvh_heatmap.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190722232250/https://medium.com/@bromanz/axis-aligned-bounding-tetrahedra-and-octahedra-for-ray-tracing-bounding-volume-hierarchies-683751d84bca&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://anki3d.org/anatomy-of-a-frame-in-anki/&#34; target=&#34;_blank&#34; id=&#34;Anatomy of a frame in AnKi&#34;&gt;Anatomy of a frame in AnKi&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;frame breakdown of a single frame in the Anki engine&lt;/li&gt;
&lt;li&gt;clustered deferred engine&lt;/li&gt;
&lt;li&gt;discussing shadows, Screen space ambient occlusion, global illumination,
Volumetric lighting/fog, reflections, tone mapping, and compositing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-94/anki_frame.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190723000111/http://anki3d.org/anatomy-of-a-frame-in-anki/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2019/07/18/wavefront-path-tracing/&#34; target=&#34;_blank&#34; id=&#34;Wavefront Path Tracing&#34;&gt;Wavefront Path Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains what wavefront path tracing is&lt;/li&gt;
&lt;li&gt;how it enables efficient path tracing on GPUs&lt;/li&gt;
&lt;li&gt;implementation provided in &lt;a href=&#34;https://github.com/jbikker/lighthouse2/blob/master/README.md&#34; target=&#34;_blank&#34;&gt;Lighthouse 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-94/wavefront_path_tracing.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190723000946/https://jacco.ompf2.com/2019/07/18/wavefront-path-tracing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zeux.io/2019/07/17/serializing-pipeline-cache/&#34; target=&#34;_blank&#34; id=&#34;Robust pipeline cache serialization&#34;&gt;Robust pipeline cache serialization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides an overview of Vulkan pipeline caching&lt;/li&gt;
&lt;li&gt;list of possible problems that can be encountered&lt;/li&gt;
&lt;li&gt;different driver behavior and IO issues require user code validation&lt;/li&gt;
&lt;li&gt;shows the system used by Roblox to validate the cache&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-94/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190723001943/https://zeux.io/2019/07/17/serializing-pipeline-cache/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.highperformancegraphics.org/2019/program/&#34; target=&#34;_blank&#34; id=&#34;High-Performance Graphics 2019&#34;&gt;High-Performance Graphics 2019&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;slides for the High-Performance Graphics 2019 conference are now available&lt;/li&gt;
&lt;li&gt;topics include raytracing, 3D text rendering, denoising, many light techniques, shadows, VR and more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-94/cropped-strasbourg-2-2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190723003045/https://www.highperformancegraphics.org/2019/program/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.shadertoy.com/view/4sSfzK&#34; target=&#34;_blank&#34; id=&#34;Physically Based Shading&#34;&gt;Physically Based Shading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;A Shadertoy that shows the different components the define physically based rendering&lt;/li&gt;
&lt;li&gt;with explanations and demos of the separate components&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-94/pbr.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/updated-vulkan-white-paper-available-for-gpu-assisted-validation/&#34; target=&#34;_blank&#34; id=&#34; GPU-Assisted Validation&#34;&gt; GPU-Assisted Validation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;GPU based validation in Vulkan has been updated&lt;/li&gt;
&lt;li&gt;now supports more cases, the article explains which are currently supported&lt;/li&gt;
&lt;li&gt;the whitepaper provides more details&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-94/lunarg.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.lunarg.com/wp-content/uploads/2019/06/GPU-Assisted-Validation-Phase-2_final.pdf&#34; style=&#34;color:white;&#34;&gt;whitepaper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190723003749/https://www.lunarg.com/wp-content/uploads/2019/06/GPU-Assisted-Validation-Phase-2_final.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190723003812/https://www.lunarg.com/updated-vulkan-white-paper-available-for-gpu-assisted-validation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/radeon-gpu-analyzer-2-2-direct3d12-compute/&#34; target=&#34;_blank&#34; id=&#34;Radeon GPU Analyzer 2.2 for Direct3D®12 Compute&#34;&gt;Radeon GPU Analyzer 2.2 for Direct3D®12 Compute&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Radeon GPU Analyzer can now compile compute shaders to the target ISA without having to have the GPU installed in the host machine&lt;/li&gt;
&lt;li&gt;the article explains how the shader compiler pipeline works and the different ways to express the required information&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-94/blog_img_keyboard_1920x700-1024x373.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190723004255/https://gpuopen.com/radeon-gpu-analyzer-2-2-direct3d12-compute/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://sandervanrossen.blogspot.com/2019/07/dot-products-and-planes.html&#34; target=&#34;_blank&#34; id=&#34;Dot products and planes&#34;&gt;Dot products and planes&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an article explains the dot product and how it relates to the plane equation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-94/dot_product.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190723011654/http://sandervanrossen.blogspot.com/2019/07/dot-products-and-planes.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://sandervanrossen.blogspot.com/2019/07/dot-product-and-its-relationship-to.html&#34; target=&#34;_blank&#34; id=&#34;Dot product and its relationship to matrices&#34;&gt;Dot product and its relationship to matrices&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows how the dot product and axis define matrices&lt;/li&gt;
&lt;li&gt;dot products can be used to decompose effects onto the axis&lt;/li&gt;
&lt;li&gt;3 axis represents a 3x3 matrix&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-94/matrix_and_dot.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190723011709/http://sandervanrossen.blogspot.com/2019/07/dot-product-and-its-relationship-to.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://erkaman.github.io/posts/ray_trace_inverse_ray.html&#34; target=&#34;_blank&#34; id=&#34;How to ray-intersect a transformed geometry, without actually transforming it: a geometric illustration&#34;&gt;How to ray-intersect a transformed geometry, without actually transforming it: a geometric illustration&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows that with the inverse-transformation applied to a ray origin and direction&lt;/li&gt;
&lt;li&gt;intersection tests can be done against the untransformed geometry&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-94/ray_trace_inverse_ray_rot3.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190723010418/https://erkaman.github.io/posts/ray_trace_inverse_ray.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/self_shadow&#34; target=&#34;_blank&#34;&gt;Stephen Hill&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 93 — July 14, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-93/</link>
      <pubDate>Sun, 14 Jul 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-93/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://alinloghin.com/articles/command_buffer.html&#34; target=&#34;_blank&#34; id=&#34;Command buffers for multi-threaded rendering&#34;&gt;Command buffers for multi-threaded rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains a renderer architecture that separates command generation from execution&lt;/li&gt;
&lt;li&gt;commands have an associated sort key that is used to determine the execution order&lt;/li&gt;
&lt;li&gt;shows how to handle materials, resource updates and some advice for debugging such a system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-93/multithreaded_command_buffer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190716011541/http://alinloghin.com/articles/command_buffer.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=DxSm6Q-BITU&#34; target=&#34;_blank&#34; id=&#34;I3D19 Keynote: Advances in Rendering, Graphics Research and Video Game Production (Steve McAuley)&#34;&gt;I3D19 Keynote: Advances in Rendering, Graphics Research and Video Game Production (Steve McAuley)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video recording of the i3D keynote discussed in detail in &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-88/&#34; target=&#34;_blank&#34;&gt;issue 88&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;additionally contains the QA that is not covered in the slides&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-93/fc5_night.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://forms.office.com/Pages/ResponsePage.aspx?id=eVlO89lXqkqtTbEipmIYTXj9aTSQt6RAs-RsXxjV2xNURjIyS1pCSThKOTBDSEVUMEE4TkNITzlURC4u&#34; target=&#34;_blank&#34; id=&#34;Texture Compression in Games&#34;&gt;Texture Compression in Games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;survey by the ASTC Khronos group to understand compression use in games&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-93/khronos-group-logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://eriksvjansson.net/papers/rthhr.pdf&#34; target=&#34;_blank&#34; id=&#34;Real-Time Hybrid Hair Rendering using Vulkan&#34;&gt;Real-Time Hybrid Hair Rendering using Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a paper about a new hair rendering technique&lt;/li&gt;
&lt;li&gt;the technique is a hybrid between strand-based rasterizer and volume-based raymarching&lt;/li&gt;
&lt;li&gt;example implementation is available &lt;a href=&#34;https://github.com/CaffeineViking/vkhr&#34; target=&#34;_blank&#34;&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-93/hybrid.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://github.com/CaffeineViking/vkhr&#34; style=&#34;color:white;&#34;&gt;code &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190716012611/https://eriksvjansson.net/papers/rthhr.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=e2wPMqWETj8&#34; target=&#34;_blank&#34; id=&#34;Bindless Deferred Decals in The Surge 2 - Philip Hammer&#34;&gt;Bindless Deferred Decals in The Surge 2 - Philip Hammer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video recording of the talk discussed in detail in &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-87/&#34; target=&#34;_blank&#34;&gt;issue 87&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-93/the_surge_2_decals.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.elopezr.com/rendering-line-lights/&#34; target=&#34;_blank&#34; id=&#34;Rendering Line Lights&#34;&gt;Rendering Line Lights&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how to implement line lights&lt;/li&gt;
&lt;li&gt;using a Most Representative Point (MRP) approximation&lt;/li&gt;
&lt;li&gt;finds the point with the most significant contribution along the line and treats that as point light source&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-93/LineLight_ShaderToy.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190716013016/http://www.elopezr.com/rendering-line-lights/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/new-in-d3d12-motion-estimation/&#34; target=&#34;_blank&#34; id=&#34;New in D3D12 – Motion Estimation&#34;&gt;New in D3D12 – Motion Estimation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;D3D12 motion estimation support exposes access to the motion estimation hardware found in supported GPUs&lt;/li&gt;
&lt;li&gt;resolved motion vectors are stored in 2D textures, ready to be used by other application stages&lt;/li&gt;
&lt;li&gt;the article presents the API&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-93/XII_BLACK_1kx1k.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190716013317/https://devblogs.microsoft.com/directx/new-in-d3d12-motion-estimation/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jacco.ompf2.com/2019/07/11/lighthouse-2/&#34; target=&#34;_blank&#34; id=&#34;Lighthouse 2&#34;&gt;Lighthouse 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses a new renderer project aimed at providing a high-performance to enable ray tracing research&lt;/li&gt;
&lt;li&gt;split into layers to provide application logic, scene representation and actual render codes&lt;/li&gt;
&lt;li&gt;render codes are plugins that can be shared&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-93/turing.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190716013842/https://jacco.ompf2.com/2019/07/11/lighthouse-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://metalbyexample.com/basis-universal/&#34; target=&#34;_blank&#34; id=&#34;Using Basis Universal Texture Compression with Metal&#34;&gt;Using Basis Universal Texture Compression with Metal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows how to compile the Basis command line tool&lt;/li&gt;
&lt;li&gt;use it to compress a texture&lt;/li&gt;
&lt;li&gt;and runtime code required to load it into a metal application&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-93/front-cover-promo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190716015914/http://metalbyexample.com/basis-universal/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/gpu-timing-data-in-new-timing-captures/&#34; target=&#34;_blank&#34; id=&#34;GPU timing data in New Timing Captures&#34;&gt;GPU timing data in New Timing Captures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the timing capture view now supports GPU workload visualization&lt;/li&gt;
&lt;li&gt;the article shows the different features&lt;/li&gt;
&lt;li&gt;overlapping GPU work on the same queue and on different queues can be visualized&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-93/ShowingOverlappedWork.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190716020023/https://devblogs.microsoft.com/pix/gpu-timing-data-in-new-timing-captures/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://posts.tanki.ninja/2019/07/11/Using-DXC-In-Practice/&#34; target=&#34;_blank&#34; id=&#34;Using DXC In Practice&#34;&gt;Using DXC In Practice&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to use the DXC compiler API&lt;/li&gt;
&lt;li&gt;compile a shader, shader reflection, and signing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-93/19-7-11-dxcompiler-available.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190716020053/https://posts.tanki.ninja/2019/07/11/Using-DXC-In-Practice/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.realtimerendering.com/raytracing/roundup.html&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2019 Ray Tracing Roundup&#34;&gt;SIGGRAPH 2019 Ray Tracing Roundup&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;updated page with all raytracing related sessions, talks and papers from Siggraph 2019&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-93/siggraph2019.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190716020611/http://www.realtimerendering.com/raytracing/roundup.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://twitter.com/reduzio/status/1149317544643366912?s=09&#34; target=&#34;_blank&#34; id=&#34;[Twitter] Low-Level Rendering API discussion&#34;&gt;[Twitter] Low-Level Rendering API discussion&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Twitter thread about modern APIs&lt;/li&gt;
&lt;li&gt;strengths, weaknesses, opinions, and suggestions for an alternate design&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-93/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190716022440/https://twitter.com/reduzio/status/1149317544643366912?s=09&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/postgoodism&#34; target=&#34;_blank&#34;&gt;Cort Stratton&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 92 — July 7, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-92/</link>
      <pubDate>Sun, 07 Jul 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-92/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://geometrian.com/research/index.php&#34; target=&#34;_blank&#34; id=&#34;Spectral Primary Decomposition for Rendering with sRGB Reflectance&#34;&gt;Spectral Primary Decomposition for Rendering with sRGB Reflectance&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper presents a new technique that allows the generation of spectral data from sRGB source data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-92/SpectralPrimaryDecomposition.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://geometrian.com/data/research/spectral-primaries/EGSR2019_SpectralPrimaryDecomposition.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190708030923/https://geometrian.com/data/research/spectral-primaries/EGSR2019_SpectralPrimaryDecomposition.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34;&gt;
            &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                &lt;a href=&#34;https://geometrian.com/data/research/spectral-primaries/supplemental.zip&#34; style=&#34;color:white;&#34;&gt;supplemental &lt;/a&gt; 
            &lt;/button&gt;
            
            &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                &lt;a href=&#34;https://web.archive.org/web/20190708031028/https://geometrian.com/data/research/spectral-primaries/supplemental.zip&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
            &lt;/button&gt;
            
        &lt;/div&gt;
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190708030753/https://geometrian.com/research/index.php&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/imallett/simple-spectral&#34; target=&#34;_blank&#34; id=&#34;A Simple Spectral Renderer&#34;&gt;A Simple Spectral Renderer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;open source and well-commented implementation of a spectral path tracer&lt;/li&gt;
&lt;li&gt;provides support for the previously discussed technique&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-92/spectral_rendering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=H2_M2fr2_KM&amp;amp;feature=youtu.be&#34; target=&#34;_blank&#34; id=&#34;[video] Turn your Frame Rate up to 60 with Vulkan on the Nintendo Switch: – Reboot Develop Blue 2019&#34;&gt;[video] Turn your Frame Rate up to 60 with Vulkan on the Nintendo Switch: – Reboot Develop Blue 2019&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Vulkan techniques used to achieve better performance on the Nintendo Switch&lt;/li&gt;
&lt;li&gt;how to measure performance using timestamps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-92/vulkan_switch.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=da_6dsWz8yg&#34; target=&#34;_blank&#34; id=&#34;[video] Halcyon: Rapid innovation using modern graphics – Reboot Develop 2019&#34;&gt;[video] Halcyon: Rapid innovation using modern graphics – Reboot Develop 2019&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video recording of talk about the SEED halyon engine, was discussed in &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-65/&#34; target=&#34;_blank&#34;&gt;issue-65&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-92/seed.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.cs.toronto.edu/~jacobson/images/geometry-processing-in-the-wild-alec-jacobson.pdf&#34; target=&#34;_blank&#34; id=&#34;geometry processing in the wild&#34;&gt;geometry processing in the wild&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;slides that present common problems with mesh data&lt;/li&gt;
&lt;li&gt;what problems geometry processing algorithms need to support&lt;/li&gt;
&lt;li&gt;possible solutions to a few common problems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-92/geometry_processing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190708033746/http://www.cs.toronto.edu/~jacobson/images/geometry-processing-in-the-wild-alec-jacobson.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://astralcode.blogspot.com/2019/07/hlslexplorer-101-ui-improvements-and.html?m=1&#34; target=&#34;_blank&#34; id=&#34;HLSLexplorer 1.01 - UI improvements and D3D12 rendering backend&#34;&gt;HLSLexplorer 1.01 - UI improvements and D3D12 rendering backend&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;HLSLexplorer, a tool which helps in understanding how HLSL code gets translated to hardware assembly&lt;/li&gt;
&lt;li&gt;added support for D3D12 preview and other quality of life improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-92/hlsl_explorer.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190708034651/https://astralcode.blogspot.com/2019/07/hlslexplorer-101-ui-improvements-and.html?m=1&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.alanzucconi.com/2019/07/03/interactive-map-01/&#34; target=&#34;_blank&#34; id=&#34;Interactive Map Shader: Vertex Displacement&#34;&gt;Interactive Map Shader: Vertex Displacement&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 1 of a Unity tutorial that shows how to create 3D geometry offset from  a texture and corresponding heightmap&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-92/map_processing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190708121903/https://www.alanzucconi.com/2019/07/03/interactive-map-01/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-25-05-07-2019/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 25 (05.07.2019)&#34;&gt;Technically Art: Issue 25 (05.07.2019)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of VFX tweets of the week&lt;/li&gt;
&lt;li&gt;tutorials, demos, and showcases of great looking effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-92/technically_art_25.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190708035801/https://halisavakis.com/technically-art-issue-25-05-07-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;twitter.com/aortizelguero&#34; target=&#34;_blank&#34;&gt;Angel Ortiz&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 91 — June 30, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-91/</link>
      <pubDate>Sun, 30 Jun 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-91/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.yiningkarlli.com/2019/05/nested-dielectrics.html&#34; target=&#34;_blank&#34; id=&#34;Nested Dielectrics&#34;&gt;Nested Dielectrics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a technique that improves the handling of nested dielectrics in ray-tracing&lt;/li&gt;
&lt;li&gt;example for nested dielectrics is &amp;ldquo;ice cubes in a drink in a glass&amp;rdquo;&lt;/li&gt;
&lt;li&gt;tracking entering / existing geometry + priority system to handle overlap cases&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-91/nested_ice.0.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190630144743/https://blog.yiningkarlli.com/2019/05/nested-dielectrics.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/27942969&#34; target=&#34;_blank&#34; id=&#34;ShaderGraph Conversion - Custom Functions(Toon Lighting Example), Vertex Colors(Specular/Texture Painting)&#34;&gt;ShaderGraph Conversion - Custom Functions(Toon Lighting Example), Vertex Colors(Specular/Texture Painting)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial shows to create custom nodes in Unity Shader Graph&lt;/li&gt;
&lt;li&gt;shows to implement Vertex painting using shader graph and use it for a variety of effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-91/Gsd1LLr.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190701122208/https://www.patreon.com/posts/27942969&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jeremyong.com/rendering/2019/06/28/render-graph-optimization-scribbles.html&#34; target=&#34;_blank&#34; id=&#34;Render Graph Optimization Scribbles&#34;&gt;Render Graph Optimization Scribbles&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents an algorithm for scheduling work in a render graph architecture&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-91/render_graph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190701051418/https://www.jeremyong.com/rendering/2019/06/28/render-graph-optimization-scribbles.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/debugger-extension-for-dred/&#34; target=&#34;_blank&#34; id=&#34;Debugger Extension for DRED&#34;&gt;Debugger Extension for DRED&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;extension for WinDbg that enables debugging of Device Removed Extended Data&lt;/li&gt;
&lt;li&gt;the post shows how to track and find the reason for a GPU device lost error caused by a page fault&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-91/dred_debug.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190701122539/https://devblogs.microsoft.com/directx/debugger-extension-for-dred/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://torust.me/2019/06/25/ambient-dice-specular.html&#34; target=&#34;_blank&#34; id=&#34;Ambient Dice Specular Approximation&#34;&gt;Ambient Dice Specular Approximation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents how to use the Ambient Dice to store the GGX specular component&lt;/li&gt;
&lt;li&gt;alternative storage scheme instead of spherical harmonics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-91/Sponza-Metals-Metallic-AmbientDiceHemiNN-Crop.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190701122644/https://torust.me/2019/06/25/ambient-dice-specular.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://graphics.cg.uni-saarland.de/publications/kondapaneni-2019-siggraph-optimal-mis.html&#34; target=&#34;_blank&#34; id=&#34;Optimal Multiple Importance Sampling&#34;&gt;Optimal Multiple Importance Sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;derives weighting functions for  Multiple Importance Sampling (MIS) that  minimize the variance of an MIS estimator&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-91/konda-2019-siggraph-optimal-mis-teaser.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://graphics.cg.uni-saarland.de/papers/konda-2019-siggraph-optimal-mis.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190701122814/https://graphics.cg.uni-saarland.de/papers/konda-2019-siggraph-optimal-mis.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190701124114/https://graphics.cg.uni-saarland.de/publications/kondapaneni-2019-siggraph-optimal-mis.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://cs.dartmouth.edu/~wjarosz/publications/jarosz19orthogonal.html&#34; target=&#34;_blank&#34; id=&#34;Orthogonal array sampling for Monte Carlo rendering&#34;&gt;Orthogonal array sampling for Monte Carlo rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a new strategy for the generation of stratified samples&lt;/li&gt;
&lt;li&gt;using the concept of orthogonal arrays from statistical experiment design&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-91/array_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://cs.dartmouth.edu/~wjarosz/publications/jarosz19orthogonal.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190701123251/https://cs.dartmouth.edu/~wjarosz/publications/jarosz19orthogonal.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190701122938/https://cs.dartmouth.edu/~wjarosz/publications/jarosz19orthogonal.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.demofox.org/2019/06/25/generating-blue-noise-textures-with-void-and-cluster/&#34; target=&#34;_blank&#34; id=&#34;Generating Blue Noise Textures With Void And Cluster&#34;&gt;Generating Blue Noise Textures With Void And Cluster&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article explains how to generate high-quality blue noise&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-91/bluevc_1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190701123036/https://blog.demofox.org/2019/06/25/generating-blue-noise-textures-with-void-and-cluster/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/scriptable-render-pipeline/level-of-detail/&#34; target=&#34;_blank&#34; id=&#34;Level of Detail Cross-Fading Geometry&#34;&gt;Level of Detail Cross-Fading Geometry&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;next part in the article series about the implementation of a scriptable render pipeline in Unity&lt;/li&gt;
&lt;li&gt;adds support for multiple LOD levels per object&lt;/li&gt;
&lt;li&gt;switching between LODs is implemented using a dithering transition&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-91/tutorial-image.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190701123322/https://catlikecoding.com/unity/tutorials/scriptable-render-pipeline/level-of-detail/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://play.google.com/store/apps/developer?id=Piggybank+Software&#34; target=&#34;_blank&#34;&gt;Denis Gladkiy&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 90 — June 23, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-90/</link>
      <pubDate>Sun, 23 Jun 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-90/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/using-amd-freesync-2-hdr-gamut-mapping/&#34; target=&#34;_blank&#34; id=&#34;Using AMD FreeSync 2 HDR: Gamut Mapping&#34;&gt;Using AMD FreeSync 2 HDR: Gamut Mapping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains gamut mapping techniques&lt;/li&gt;
&lt;li&gt;difference perceptual and clipping techniques&lt;/li&gt;
&lt;li&gt;shows how gamut mappings are derived&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-90/fs2_gamut_ab_view.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190623181434/https://gpuopen.com/using-amd-freesync-2-hdr-gamut-mapping/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://astralcode.blogspot.com/2019/06/reverse-engineering-rendering-of.html&#34; target=&#34;_blank&#34; id=&#34;Reverse engineering the rendering of The Witcher 3, part 15 - fog&#34;&gt;Reverse engineering the rendering of The Witcher 3, part 15 - fog&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows how the fog in The Witcher 3 has been implemented&lt;/li&gt;
&lt;li&gt;combines aerial fog and an artist-controlled fog coloring based on a gradient from 3 colors (front to back)&lt;/li&gt;
&lt;li&gt;uses AO information to darken the fog in occluded areas&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-90/01_scene.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190623182215/https://astralcode.blogspot.com/2019/06/reverse-engineering-rendering-of.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.realtimerendering.com/raytracing/roundup.html&#34; target=&#34;_blank&#34; id=&#34;SIGGRAPH 2019 Ray Tracing Roundup&#34;&gt;SIGGRAPH 2019 Ray Tracing Roundup&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;list of sessions from SIGGRAPH 2019 that are related to ray tracing techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-90/SIGGRAPH2019.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190624141242/http://www.realtimerendering.com/raytracing/roundup.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/new-vulkan-extensions-driver-19-6-2/&#34; target=&#34;_blank&#34; id=&#34;New Vulkan® Extensions in Driver 19.6.2&#34;&gt;New Vulkan® Extensions in Driver 19.6.2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new extensions in AMD driver&lt;/li&gt;
&lt;li&gt;VK_EXT_full_screen_exclusive, allows application to enter fullscreen mode such as IDXGISwapChain::SetFullscreenState&lt;/li&gt;
&lt;li&gt;VK_EXT_separate_stencil_usage allows separate depth and stencil states&lt;/li&gt;
&lt;li&gt;VK_AMD_display_native_hdr, better HDR support for FreeSync 2 monitors without requiring AMD libraries&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-90/amd_vulkan.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190624141303/https://gpuopen.com/new-vulkan-extensions-driver-19-6-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-1906-14/&#34; target=&#34;_blank&#34; id=&#34;PIX 1906.14 – GPU Timing in New Timing Captures&#34;&gt;PIX 1906.14 – GPU Timing in New Timing Captures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;support for GPU timing data in the new timing capture view&lt;/li&gt;
&lt;li&gt;a lot of GPU capture improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-90/NewTimingCapturesWithGpuData2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190624120942/https://devblogs.microsoft.com/pix/pix-1906-14/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.unilim.fr/pages_perso/xavier.chermain/ms_glints/&#34; target=&#34;_blank&#34; id=&#34;Glint Rendering based on a Multiple-Scattering Patch BRDF&#34;&gt;Glint Rendering based on a Multiple-Scattering Patch BRDF&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new glint integrator for specular surfaces using multiple-scattering patch-based BRDF&lt;/li&gt;
&lt;li&gt;addresses energy loss introduced from classical normal mapping&lt;/li&gt;
&lt;li&gt;uses normal maps and second moments of slopes as in &lt;a href=&#34;https://hal.inria.fr/hal-00858220v1/document&#34; target=&#34;_blank&#34;&gt;LEADR mapping&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-90/teaser_EGSR_2019.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://www.unilim.fr/pages_perso/xavier.chermain/assets/pdf/egsr_2019.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190624121730/http://www.unilim.fr/pages_perso/xavier.chermain/assets/pdf/egsr_2019.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190624121317/http://www.unilim.fr/pages_perso/xavier.chermain/ms_glints/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.reddit.com/r/GraphicsProgramming/comments/byyfqc/announcing_highomega_v30_with_rtx_and_voxelbased/&#34; target=&#34;_blank&#34; id=&#34;Announcing HighOmega v3.0 with RTX and Voxel-based Hybrid Path-tracing Support!&#34;&gt;Announcing HighOmega v3.0 with RTX and Voxel-based Hybrid Path-tracing Support!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows a new version of voxel-based path-tracing based graphics engine&lt;/li&gt;
&lt;li&gt;provides an overview of the implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-90/voxel_path_tracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.youtube.com/watch?v=8IRNQupyoIs&#34; style=&#34;color:white;&#34;&gt;video &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190624122840/https://www.reddit.com/r/GraphicsProgramming/comments/byyfqc/announcing_highomega_v30_with_rtx_and_voxelbased/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://eheitzresearch.wordpress.com/762-2/&#34; target=&#34;_blank&#34; id=&#34;A Low-Discrepancy Sampler that Distributes Monte Carlo Errors as a Blue Noise in Screen Space&#34;&gt;A Low-Discrepancy Sampler that Distributes Monte Carlo Errors as a Blue Noise in Screen Space&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new path tracing sampler techniques&lt;/li&gt;
&lt;li&gt;distributed per-pixel samples so that errors are distributed as blue noise in screen space&lt;/li&gt;
&lt;li&gt;provides C++ source code&lt;/li&gt;
&lt;li&gt;comparison against other methods at various sample counts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-90/blue_noise_screen_space.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://hal.archives-ouvertes.fr/hal-02150657/document&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190624124522/https://hal.archives-ouvertes.fr/hal-02150657/document&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190621120255/https://eheitzresearch.wordpress.com/762-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://eheitzresearch.wordpress.com/772-2/&#34; target=&#34;_blank&#34; id=&#34;Distributing Monte Carlo Errors as a Blue Noise in Screen Space by Permuting Pixel Seeds Between Frames&#34;&gt;Distributing Monte Carlo Errors as a Blue Noise in Screen Space by Permuting Pixel Seeds Between Frames&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper builds on the techniques described in the previous article&lt;/li&gt;
&lt;li&gt;introduces a temporal algorithm that locally permutes the pixel sequences&lt;/li&gt;
&lt;li&gt;improves error distribution for a series of frames&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-90/blue_noise_temporal.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://drive.google.com/file/d/1znhbmKGeHphfae1tz3YnroOzOA5-sYcd/view&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190624142139/https://eheitzresearch.wordpress.com/772-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://roar11.com/2019/06/vulkan-textures-unbound/&#34; target=&#34;_blank&#34; id=&#34;Vulkan Textures Unbound&#34;&gt;Vulkan Textures Unbound&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;describes how to support unbounded arrays of textures in Vulkan&lt;/li&gt;
&lt;li&gt;presents two techniques to solve validation errors&lt;/li&gt;
&lt;li&gt;first fills unused slots with a know valid texture descriptor&lt;/li&gt;
&lt;li&gt;second shows the required extensions to enable partially filled descriptor sets&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-90/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190624141436/http://roar11.com/2019/06/vulkan-textures-unbound/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ronja-tutorials.com/2019/06/21/spheretracing-basics.html&#34; target=&#34;_blank&#34; id=&#34;Spheretracing Basics&#34;&gt;Spheretracing Basics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows how to implement raytracing against a Signed Distance Field (SDF)&lt;/li&gt;
&lt;li&gt;extends this to use sphere tracing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-90/ClippedSphere.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190624130809/https://www.ronja-tutorials.com/2019/06/21/spheretracing-basics.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://torust.me/thesis&#34; target=&#34;_blank&#34; id=&#34;Interactive Generation of Path-Traced Lightmaps&#34;&gt;Interactive Generation of Path-Traced Lightmaps&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a master thesis that describes a progressively path-traced solution for indirect illumination lightmaps on the GPU&lt;/li&gt;
&lt;li&gt;covers parameterizing geometry into lightmaps, improving coherence in a path tracer, reducing variance and spherical basis functions&lt;/li&gt;
&lt;li&gt;presents a new way to store diffuse and specular irradiance using an Ambient Dice encoding scheme (additional post below)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-90/master_thesis_illumination.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://torust.me/Thesis.pdf&#34; style=&#34;color:white;&#34;&gt;thesis &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190624131550/http://torust.me/Thesis.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190624131527/http://torust.me/thesis&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://torust.me/2019/06/21/rbf-for-indirect-specular.html&#34; target=&#34;_blank&#34; id=&#34;Spherical Radial Basis Functions for Lighting&#34;&gt;Spherical Radial Basis Functions for Lighting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how to extend the Ambient Dice basis function to store and evaluate both diffuse and specular irradiance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-90/Sponza-Metals-Metallic-SG12NN-Crop.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190624131504/http://torust.me/2019/06/21/rbf-for-indirect-specular.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aschrein.github.io/jekyll/update/2019/06/13/whatsup-with-my-branches-on-gpu.html&#34; target=&#34;_blank&#34; id=&#34;What&amp;#39;s up with my branch on GPU?&#34;&gt;What&amp;#39;s up with my branch on GPU?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how branching on GPUs is commonly implemented&lt;/li&gt;
&lt;li&gt;explains what divergence is, impact on performance and how to reduce it&lt;/li&gt;
&lt;li&gt;GPUs use an execution mask to hide results from inactive threads&lt;/li&gt;
&lt;li&gt;shows how this looks in GCN ISA and AVX512&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-90/gpu_branch_sorted.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190624132707/https://aschrein.github.io/jekyll/update/2019/06/13/whatsup-with-my-branches-on-gpu.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zero-radiance.github.io/post/surface-gradient/&#34; target=&#34;_blank&#34; id=&#34;Normal Mapping Using the Surface Gradient&#34;&gt;Normal Mapping Using the Surface Gradient&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;describes the surface gradient framework&lt;/li&gt;
&lt;li&gt;a framework for robust processing of height maps, height volumes, and normal maps&lt;/li&gt;
&lt;li&gt;explains the Preliminaries (Tangent Frame, Height Maps, and Volumes, Wrinkled Surfaces)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-90/tbn.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190624135016/https://zero-radiance.github.io/post/surface-gradient/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/Jontology&#34; target=&#34;_blank&#34;&gt;Jon Greenberg&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 89 — June 16, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-89/</link>
      <pubDate>Sun, 16 Jun 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-89/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://momentsingraphics.de/?p=251&#34; target=&#34;_blank&#34; id=&#34;Sampling projected spherical caps with multiple importance sampling&#34;&gt;Sampling projected spherical caps with multiple importance sampling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how to combine sampling of projected spherical caps and multiple importance sampling&lt;/li&gt;
&lt;li&gt;source code provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-89/spherical_caps_importance_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190617011443/http://momentsingraphics.de/?p=251&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-22-14-06-2019/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 22 (14.06.2019)&#34;&gt;Technically Art: Issue 22 (14.06.2019)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of VFX tweets of the week&lt;/li&gt;
&lt;li&gt;tutorials, demos, and showcases of great looking effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-89/technically_art_22.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190617010026/https://halisavakis.com/technically-art-issue-22-14-06-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://apoorvaj.io/alpha-compositing-opengl-blending-and-premultiplied-alpha.html&#34; target=&#34;_blank&#34; id=&#34;Alpha compositing, OpenGL blending and premultiplied alpha&#34;&gt;Alpha compositing, OpenGL blending and premultiplied alpha&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an updated article explaining color blending with OpenGL&lt;/li&gt;
&lt;li&gt;how the blend operators work and what premultiplied alpha is&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-89/gl_blending.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190617011526/http://apoorvaj.io/alpha-compositing-opengl-blending-and-premultiplied-alpha.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpureport.cz/info/Graphics_Architecture_06102019.pdf&#34; target=&#34;_blank&#34; id=&#34;RDNA - new AMD GPU architecture &#34;&gt;RDNA - new AMD GPU architecture &lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;hardware overview of the new architecture for AMD GPUs&lt;/li&gt;
&lt;li&gt;now uses 32 or 64 waves wide operations&lt;/li&gt;
&lt;li&gt;unified cache hierarchy including compression for all stages&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-89/rdna.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190617011600/https://gpureport.cz/info/Graphics_Architecture_06102019.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://metalkit.org/2019/06/10/introducing-metal-3.html&#34; target=&#34;_blank&#34; id=&#34;Introducing Metal 3&#34;&gt;Introducing Metal 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows what changes have been introduced with Metal 3&lt;/li&gt;
&lt;li&gt;including metal support for the simulator&lt;/li&gt;
&lt;li&gt;cleaned up feature levels into families&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-89/two_targets.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190617011642/http://metalkit.org/2019/06/10/introducing-metal-3.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://metalbyexample.com/new-in-metal-3/&#34; target=&#34;_blank&#34; id=&#34;What’s New in Metal (2019)&#34;&gt;What’s New in Metal (2019)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article shows what changes have been introduced with Metal 3&lt;/li&gt;
&lt;li&gt;covers additional details compared to the previous article&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-89/metal_api.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190617010308/http://metalbyexample.com/new-in-metal-3/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hgpu.org/?p=18941&#34; target=&#34;_blank&#34; id=&#34;RTX Beyond Ray Tracing: Exploring the Use of Hardware Ray Tracing Cores for Tet-Mesh Point Location&#34;&gt;RTX Beyond Ray Tracing: Exploring the Use of Hardware Ray Tracing Cores for Tet-Mesh Point Location&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the paper investigates using the raytracing hardware support added in Turing GPUs to accelerate other tasks&lt;/li&gt;
&lt;li&gt;uses the hardware to detect in which tetrahedral mesh a point is located&lt;/li&gt;
&lt;li&gt;can achieve better performance than pure CUDA implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-89/rtx_beyond_rays.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190617010359/http://www.sci.utah.edu/~wald/Publications/2019/rtxPointQueries/rtxPointQueries.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://morad.in/2019/06/16/dissecting-a-plague-tale-innocence/&#34; target=&#34;_blank&#34; id=&#34;Dissecting A Plague Tale: Innocence&#34;&gt;Dissecting A Plague Tale: Innocence&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;breakdown of two frames in the game&lt;/li&gt;
&lt;li&gt;very little instancing&lt;/li&gt;
&lt;li&gt;all render targets are manually packed into 32-bit formats&lt;/li&gt;
&lt;li&gt;rats use a 4 level LOD system, and only the last level is instanced&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-89/Final_frame1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190617010417/http://morad.in/2019/06/16/dissecting-a-plague-tale-innocence/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Jhon Adams for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 88 — June 9, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-88/</link>
      <pubDate>Sun, 09 Jun 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-88/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/presentations/2019/nordic-game-2019-triangles-are-precious.pdf&#34; target=&#34;_blank&#34; id=&#34;Triangles Are Precious - Let&amp;#39;s Treat Them With Care&#34;&gt;Triangles Are Precious - Let&amp;#39;s Treat Them With Care&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the presentation explains the stages a triangle is passing through while being processed for rendering&lt;/li&gt;
&lt;li&gt;starts with a brief look at the software layers&lt;/li&gt;
&lt;li&gt;provides more details on lower-level hardware layers&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-88/triangles-are-precious.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190613064642/https://gpuopen.com/presentations/2019/nordic-game-2019-triangles-are-precious.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/os-variable-refresh-rate/&#34; target=&#34;_blank&#34; id=&#34;OS Variable Refresh Rate&#34;&gt;OS Variable Refresh Rate&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Windows Version 1903 adds a new variable refresh rate option&lt;/li&gt;
&lt;li&gt;enable VRR in older D3D11 games if the hardware supports it&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-88/VRR_Toggle-1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190605195758/https://devblogs.microsoft.com/directx/os-variable-refresh-rate/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.techspot.com/amp/article/1851-3d-game-rendering-explained/&#34; target=&#34;_blank&#34; id=&#34;3D Game Rendering 101&#34;&gt;3D Game Rendering 101&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;beginner level explanation of the rendering pipeline for games&lt;/li&gt;
&lt;li&gt;explains how game worlds are defined, and models are converted into something that can be seen on the screen&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-88/wireframe-demo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190607083458/https://www.techspot.com/amp/article/1851-3d-game-rendering-explained/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/ARM-software/vulkan_best_practice_for_mobile_developers/blob/master/samples/pipeline_cache/pipeline_cache_tutorial.md&#34; target=&#34;_blank&#34; id=&#34;Pipeline Management&#34;&gt;Pipeline Management&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains what a Vulkan pipeline cache is, why developers want to use it&lt;/li&gt;
&lt;li&gt;presents best-practices&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-88/graphics_pipeline_dependencies.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190613064733/https://github.com/ARM-software/vulkan_best_practice_for_mobile_developers/blob/master/samples/pipeline_cache/pipeline_cache_tutorial.md&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://drive.google.com/file/d/10bzo1r-Cupv83XEKho8pcga7BSnJ6dlh/view&#34; target=&#34;_blank&#34; id=&#34;Advances in Rendering, Graphics Research and Video Game Production&#34;&gt;Advances in Rendering, Graphics Research and Video Game Production&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;keynote from I3D presenting the challenges modern open world games such as FarCry need to solve&lt;/li&gt;
&lt;li&gt;presents an in-depth case study for Multiscattering BRDFs &amp;amp; Area Lights&lt;/li&gt;
&lt;li&gt;research investigation, implementation combinations with other techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-88/fc5_long_distance.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190613064748/https://drive.google.com/file/d/10bzo1r-Cupv83XEKho8pcga7BSnJ6dlh/view&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/dynamic-diffuse-global-illumination-part-i/&#34; target=&#34;_blank&#34; id=&#34;Dynamic Diffuse Global Illumination Part I&#34;&gt;Dynamic Diffuse Global Illumination Part I&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 1 of article series about Global Illumination&lt;/li&gt;
&lt;li&gt;overview of terms and concepts required to understand Global Illumination solutions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-88/x2-diffuse-villa.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190613064819/https://devblogs.nvidia.com/dynamic-diffuse-global-illumination-part-i/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://jcgt.org/published/0008/02/01/&#34; target=&#34;_blank&#34; id=&#34;Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields&#34;&gt;Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a paper about Dynamic Diffuse Global Illumination solution&lt;/li&gt;
&lt;li&gt;builds on the terms explained in the previous article&lt;/li&gt;
&lt;li&gt;presents an overview of the problems the technique tries to solve&lt;/li&gt;
&lt;li&gt;provides implementation details&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-88/dynamic_gi.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://jcgt.org/published/0008/02/01/paper.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190606132237/http://jcgt.org/published/0008/02/01/paper.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190606132202/http://jcgt.org/published/0008/02/01/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/vulkan-dos-donts/&#34; target=&#34;_blank&#34; id=&#34;Tips and Tricks: Vulkan Dos and Don’ts&#34;&gt;Tips and Tricks: Vulkan Dos and Don’ts&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of best practices and pitfalls when using Vulkan on Nvidia hardware&lt;/li&gt;
&lt;li&gt;many of the guidelines should apply to other hardware manufacturers too&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-88/rtx_2080.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190608094223/https://devblogs.nvidia.com/vulkan-dos-donts/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pharr.org/matt/blog/2019/06/05/visualizing-env-light-warpings.html&#34; target=&#34;_blank&#34; id=&#34;Visualizing Warping Strategies for Sampling Environment Map Lights&#34;&gt;Visualizing Warping Strategies for Sampling Environment Map Lights&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article presents a comparison between two different sampling strategies for environment maps&lt;/li&gt;
&lt;li&gt;tested on three environment maps with very different characteristics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-88/hierarchical-warp.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190613064930/https://pharr.org/matt/blog/2019/06/05/visualizing-env-light-warpings.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/presentations/2019/Vulkanised2019_06_optimising_aaa_vulkan_title_on_desktop.pdf&#34; target=&#34;_blank&#34; id=&#34;optimising a aaa vulkan title on desktop&#34;&gt;optimising a aaa vulkan title on desktop&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents an overview of what requirements need to be met on AMD to enable color compression on render targets&lt;/li&gt;
&lt;li&gt;and what causes DCC to be disabled&lt;/li&gt;
&lt;li&gt;look at barriers and copy queue usage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-88/dcc_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190613064943/https://gpuopen.com/presentations/2019/Vulkanised2019_06_optimising_aaa_vulkan_title_on_desktop.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/presentations/2019/digital-dragons-2019-make-your-game-friendly.pdf&#34; target=&#34;_blank&#34; id=&#34;Make Your Game Friendly for Graphics Debugging and Optimization&#34;&gt;Make Your Game Friendly for Graphics Debugging and Optimization&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presentation with a collection of options and debug modes that help with debugging&lt;/li&gt;
&lt;li&gt;provide a safe mode to disable optimizations and use API validation layers&lt;/li&gt;
&lt;li&gt;overview of tools available and APIS to add more debug information&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-88/debugging_aaa.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190613064959/https://gpuopen.com/presentations/2019/digital-dragons-2019-make-your-game-friendly.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/maxandonuts&#34; target=&#34;_blank&#34;&gt;Max R.R. Collada&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 87 — June 2, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-87/</link>
      <pubDate>Sun, 02 Jun 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-87/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://auzaiffe.files.wordpress.com/2019/05/digital-dragons-leveraging-ray-tracing-hardware-acceleration-in-unity.pdf&#34; target=&#34;_blank&#34; id=&#34;Leveraging Ray Tracing Hardware Acceleration In Unity&#34;&gt;Leveraging Ray Tracing Hardware Acceleration In Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents how ray tracing is integrated into the High Definition Render Pipeline (HDRP)&lt;/li&gt;
&lt;li&gt;a brief overview of the Unity raytracing API integration&lt;/li&gt;
&lt;li&gt;shows how different effects have been implemented&lt;/li&gt;
&lt;li&gt;including optimizations and performance results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-87/unity_raytracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190601204732/https://auzaiffe.files.wordpress.com/2019/05/digital-dragons-leveraging-ray-tracing-hardware-acceleration-in-unity.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.wihlidal.com/blog/graphics/2019-05-28-vk-rust-ray-tracing-hlsl/&#34; target=&#34;_blank&#34; id=&#34;Vulkan NV Ray Tracing with HLSL&#34;&gt;Vulkan NV Ray Tracing with HLSL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows how to use HLSL to write a raytracing implementation using the Nvidia Vulkan extension&lt;/li&gt;
&lt;li&gt;uses recently added DXC support to compile the shaders&lt;/li&gt;
&lt;li&gt;updated docker image to provide the shader compiler support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-87/hlsl_raytracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190603034809/https://www.wihlidal.com/blog/graphics/2019-05-28-vk-rust-ray-tracing-hlsl/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://docs.google.com/presentation/d/1aiBXsNu-D9ZfpBNqcs08w7ToNJ2e7jgyoyfNUXSCWW8/edit#slide=id.g552bb7139f_6_1117&#34; target=&#34;_blank&#34; id=&#34;The Heretic - Making of a real-time short film: digital humans and vfx characters&#34;&gt;The Heretic - Making of a real-time short film: digital humans and vfx characters&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents how the Unity demo was made&lt;/li&gt;
&lt;li&gt;overview of skin/hair/eye/teeth shading&lt;/li&gt;
&lt;li&gt;facial animations used scanned information, at runtime need to resolve positions for hair&lt;/li&gt;
&lt;li&gt;details about how the tentacles were created for the different use cases&lt;/li&gt;
&lt;li&gt;based on Hermite splines, signed distance fields and divergence-free noise and skinning&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-87/heretic.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.slideshare.net/philiphammer/bindless-deferred-decals-in-the-surge-2&#34; target=&#34;_blank&#34; id=&#34;Bindless Deferred Decals in The Surge 2&#34;&gt;Bindless Deferred Decals in The Surge 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of the deferred decal solution&lt;/li&gt;
&lt;li&gt;uses bindless resource binding model&lt;/li&gt;
&lt;li&gt;decals are part of lighting shader and don&amp;rsquo;t modify the Gbuffer&lt;/li&gt;
&lt;li&gt;presents use-cases, common problems, and optimizations for deferred decals&lt;/li&gt;
&lt;li&gt;includes a lot of code samples to explain the concepts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-87/the_surge_decals.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190601223457/https://www.slideshare.net/philiphammer/bindless-deferred-decals-in-the-surge-2&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/nvidia-announces-nsight-graphics-2019-3/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Announces Nsight Graphics 2019.3!&#34;&gt;NVIDIA Announces Nsight Graphics 2019.3!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a new release, range profiler provides detailed metric graph about the performance of the application&lt;/li&gt;
&lt;li&gt;rules can be written to trigger custom performance warnings&lt;/li&gt;
&lt;li&gt;ray tracing acceleration structures can be exported and inspected independently&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-87/GPUTraceThroughputs.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190531145723/https://news.developer.nvidia.com/nvidia-announces-nsight-graphics-2019-3/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/path-tracing-quake-ii/&#34; target=&#34;_blank&#34; id=&#34;Video Series: Path Tracing for Quake II in Two Months&#34;&gt;Video Series: Path Tracing for Quake II in Two Months&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;summary of the Quake II path tracing implementation&lt;/li&gt;
&lt;li&gt;presented in 3 video parts with notes&lt;/li&gt;
&lt;li&gt;covering Path Tracing theory, denoising and the path tracer implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-87/denoised-result.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190601225926/https://devblogs.nvidia.com/path-tracing-quake-ii/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/vrs-wrapper/&#34; target=&#34;_blank&#34; id=&#34;Easy VRS Integration with Eye Tracking&#34;&gt;Easy VRS Integration with Eye Tracking&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Nvidia helper library to simplify the integration of Variable Rate Shading&lt;/li&gt;
&lt;li&gt;the user only needs to provide eye positions and select performance presets&lt;/li&gt;
&lt;li&gt;the library creates/updates/manages the required API resources&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-87/vrs_nvidia.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190601231909/https://devblogs.nvidia.com/vrs-wrapper/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://graphics.stanford.edu/~kayvonf/notes/systemspaper/&#34; target=&#34;_blank&#34; id=&#34;What Makes a (Graphics) Systems Paper Beautiful&#34;&gt;What Makes a (Graphics) Systems Paper Beautiful&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents what makes a graphics system paper&lt;/li&gt;
&lt;li&gt;papers that introduce new systems and are not necessarily introducing new discoveries&lt;/li&gt;
&lt;li&gt;provides what paper authors and reviewers should focus on&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-87/cggoals.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190601232836/http://graphics.stanford.edu/~kayvonf/notes/systemspaper/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.visualextract.com/talks/i3d19-view-warped-soft-shadows/&#34; target=&#34;_blank&#34; id=&#34;View-Warped Multi-View Soft Shadows for Local Area Lights&#34;&gt;View-Warped Multi-View Soft Shadows for Local Area Lights&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new point based shadowing algorithm for local area lights&lt;/li&gt;
&lt;li&gt;better quality than single view and less performance required than multi-view solutions&lt;/li&gt;
&lt;li&gt;generate a multi-viewpoint pointset for the area light&lt;/li&gt;
&lt;li&gt;projecting points into many depth buffers at once&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-87/point_cloud.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190601233551/http://www.visualextract.com/talks/i3d19-view-warped-soft-shadows/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/scriptable-render-pipeline/baked-shadows/&#34; target=&#34;_blank&#34; id=&#34;Baked Shadows Mixed Lighting&#34;&gt;Baked Shadows Mixed Lighting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tutorial series covering Unity&amp;rsquo;s scriptable render pipeline&lt;/li&gt;
&lt;li&gt;explains how to combine real-time lighting with baked shadows&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-87/tutorial-image.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190601235537/https://catlikecoding.com/unity/tutorials/scriptable-render-pipeline/baked-shadows/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.dropbox.com/s/wnhedrfw070e014/PixelValue.pdf?dl=0&#34; target=&#34;_blank&#34; id=&#34;Open Problems in Real-time Rendering - The Value of Pixel$&#34;&gt;Open Problems in Real-time Rendering - The Value of Pixel$&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presentations that talks about the state of rendering&lt;/li&gt;
&lt;li&gt;how did we get to today&amp;rsquo;s state and what might be the next steps&lt;/li&gt;
&lt;li&gt;ideas about challenges, workflow, and research&lt;/li&gt;
&lt;li&gt;meant to challenge ideas and start a discussion&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-87/state_of_graphics.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://momentsingraphics.de/?page_id=243&#34; target=&#34;_blank&#34; id=&#34; Using Moments to Represent Bounded Signals for Spectral Rendering&#34;&gt; Using Moments to Represent Bounded Signals for Spectral Rendering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new representation approach for spectra&lt;/li&gt;
&lt;li&gt;shows use in offline raytracing and real-time D3D12 application&lt;/li&gt;
&lt;li&gt;a variable number of momements can be used to match quality and performance constraints&lt;/li&gt;
&lt;li&gt;the source provided in C++, HLSL, and Python&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-87/RepresentativeImage.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://momentsingraphics.de/Media/Siggraph2019/Peters2019-CompactSpectra.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190602185736/http://momentsingraphics.de/Media/Siggraph2019/Peters2019-CompactSpectra.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190602185656/http://momentsingraphics.de/?page_id=243&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://pharr.org/matt&#34; target=&#34;_blank&#34;&gt;Matt Pharr&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 86 — May 26, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-86/</link>
      <pubDate>Sun, 26 May 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-86/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.jendrikillner.com/article_database/&#34; target=&#34;_blank&#34; id=&#34;Graphics Programming Weekly - Database&#34;&gt;Graphics Programming Weekly - Database&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;database with articles that were previously covered in Graphics Programming Weekly&lt;/li&gt;
&lt;li&gt;central location that aims to make it easier to discover/rediscover graphics programming information&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-86/article_database.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190524041737/https://www.jendrikillner.com/article_database/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://opensource.googleblog.com/2019/05/google-and-binomial-partner-to-open.html&#34; target=&#34;_blank&#34; id=&#34;Google and Binomial Partner to Open-Source Basis Universal Texture Format&#34;&gt;Google and Binomial Partner to Open-Source Basis Universal Texture Format&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;open source release of the Basis Universal texture codec&lt;/li&gt;
&lt;li&gt;similar compression as .jpeg but allows textures to stay compressed on the GPU&lt;/li&gt;
&lt;li&gt;transcode from a common format into compressed GPU formats at runtime&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-86/Binomial_Universal_textures.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://github.com/binomialLLC/basis_universal&#34; style=&#34;color:white;&#34;&gt;code &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190525201725/https://codeload.github.com/BinomialLLC/basis_universal/zip/master&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190527030931/https://opensource.googleblog.com/2019/05/google-and-binomial-partner-to-open.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-19-24-05-2019/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 19 (24.05.2019)&#34;&gt;Technically Art: Issue 19 (24.05.2019)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of VFX tweets of the week&lt;/li&gt;
&lt;li&gt;tutorials, demos, and showcases of great looking effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-86/technically_art_19.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190527041440/https://halisavakis.com/technically-art-issue-19-24-05-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blogs.unity3d.com/2019/05/20/gpu-lightmapper-a-technical-deep-dive/&#34; target=&#34;_blank&#34; id=&#34;GPU Lightmapper: A Technical Deep Dive&#34;&gt;GPU Lightmapper: A Technical Deep Dive&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents the GPU based light mapper implemented in Unity, based on Radeon Rays&lt;/li&gt;
&lt;li&gt;how to design for GPU occupancy and efficient cache usage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-86/lightmapper.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190525201945/https://blogs.unity3d.com/2019/05/20/gpu-lightmapper-a-technical-deep-dive/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ea.com/frostbite/news/frostbite-hair-rendering-and-simulation&#34; target=&#34;_blank&#34; id=&#34;frostbite hair rendering and simulation - part 1&#34;&gt;frostbite hair rendering and simulation - part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview videos of the hair rendering in Frostbite&lt;/li&gt;
&lt;li&gt;later parts will contain details about the implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-86/frostbite_hair.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190523201144/https://www.ea.com/frostbite/news/frostbite-hair-rendering-and-simulation&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.dropbox.com/s/wnlb91fw93kggxu/Approxmiting_Global_Illumination_with_Real_Time_Ambient_Occlusion.pdf?dl=0&#34; target=&#34;_blank&#34; id=&#34;Approximating Global Illumination with Real-Time Ambient Occlusion&#34;&gt;Approximating Global Illumination with Real-Time Ambient Occlusion&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;master thesis trying to answer if raytraced real-time ambient occlusion is a viable option for games&lt;/li&gt;
&lt;li&gt;providing path tracing theory, an overview of implementation (Vulkan)&lt;/li&gt;
&lt;li&gt;presents the theory behind ambient occlusion&lt;/li&gt;
&lt;li&gt;comparison for performance and quality with existing real-time techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-86/thesis_ao.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/understanding-the-need-for-adaptive-temporal-antialiasing/&#34; target=&#34;_blank&#34; id=&#34;Understanding the Need for Adaptive Temporal Antialiasing (ATAA)&#34;&gt;Understanding the Need for Adaptive Temporal Antialiasing (ATAA)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;proposed antialiasing technique combines rasterization with ray tracing&lt;/li&gt;
&lt;li&gt;uses ray tracing to collect extra samples when information from previous frames is not available&lt;/li&gt;
&lt;li&gt;run FXAA on the fast moving parts on the edges of the screen to reduce cost&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-86/sparseRT.PNG&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190524042112/https://news.developer.nvidia.com/understanding-the-need-for-adaptive-temporal-antialiasing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=f-SklVb2MDI&#34; target=&#34;_blank&#34; id=&#34;Boost rendering performance with Variable Rate Shading | Game Developers Conference 2019&#34;&gt;Boost rendering performance with Variable Rate Shading | Game Developers Conference 2019&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Microsoft GDC 2019 presentation about variable rate shading (VRS)&lt;/li&gt;
&lt;li&gt;presents the history of techniques and what problems VRS is designed to solve&lt;/li&gt;
&lt;li&gt;how VRS works&lt;/li&gt;
&lt;li&gt;introduction into the API&lt;/li&gt;
&lt;li&gt;how it performs on Intel hardware&lt;/li&gt;
&lt;li&gt;results by Firaxis in Civilization&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-86/Variable_Rate_Shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.unrealengine.com/en-US/events/unreal-fest-europe-2019&#34; target=&#34;_blank&#34; id=&#34;unreal fest europe 2019&#34;&gt;unreal fest europe 2019&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presentation video recordings have been released&lt;/li&gt;
&lt;li&gt;a large variety of topics are covered&lt;/li&gt;
&lt;li&gt;VFX, modern rendering features for 2D games, layer materials, raytracing, color management, Vulkan and many more&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-86/unreal_fest.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190525194505/https://www.unrealengine.com/en-US/events/unreal-fest-europe-2019&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ea.com/seed/news/siggraph2019-direct-delta-mush&#34; target=&#34;_blank&#34; id=&#34;direct delta mush skinning and variants&#34;&gt;direct delta mush skinning and variants&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a new skinning algorithm that removes the need for iterative calculations from delta mush skinnings&lt;/li&gt;
&lt;li&gt;the algorithm aims to reduce the manual skinning requirements&lt;/li&gt;
&lt;li&gt;quality comparison against existing skinning techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-86/DirectDeltaMushSkinning.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190526221445/https://www.ea.com/seed/news/siggraph2019-direct-delta-mush&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://hgpu.org/?p=18911&#34; target=&#34;_blank&#34; id=&#34;Multi-GPU Rendering with Vulkan API&#34;&gt;Multi-GPU Rendering with Vulkan API&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a master thesis that demonstrates how to use multiple GPUs with Vulkan&lt;/li&gt;
&lt;li&gt;comparison of sharing work by dividing the screen or recomposition of rendering results&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-86/multi_gpu.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://bora.uib.no/bitstream/handle/1956/19628/report.pdf?sequence=1&amp;amp;isAllowed=y&#34; style=&#34;color:white;&#34;&gt;pdf &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190527032859/http://bora.uib.no/bitstream/handle/1956/19628/report.pdf?sequence=1&amp;amp;isAllowed=y&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190526221537/https://hgpu.org/?p=18911&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Jhon Adams for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 85 — May 19, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-85/</link>
      <pubDate>Sun, 19 May 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-85/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/lettier/3d-game-shaders-for-beginners&#34; target=&#34;_blank&#34; id=&#34;3D Game Shaders For Beginners&#34;&gt;3D Game Shaders For Beginners&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shader tutorial aimed at beginners that teaches shader fundamentals using Panda3D and GLSL&lt;/li&gt;
&lt;li&gt;starting with the basics of coordinate spaces, and GLSL shaders&lt;/li&gt;
&lt;li&gt;shows how to implementing texturing, lighting, normal mapping&lt;/li&gt;
&lt;li&gt;additionally outlining, fog, bloom, screen space ambient occlusion, depth of field and several stylization techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/game_shaders_for_beginners.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190514013201/https://github.com/lettier/3d-game-shaders-for-beginners&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/using-amd-freesync-2-hdr-tone-mapping/&#34; target=&#34;_blank&#34; id=&#34;Using AMD Freesync 2 HDR: Tone Mapping&#34;&gt;Using AMD Freesync 2 HDR: Tone Mapping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains tone mapping terms and how the human vision perceives changes in luminance&lt;/li&gt;
&lt;li&gt;the viewing environment has a significant influence on the perceived dynamic range&lt;/li&gt;
&lt;li&gt;shows how different display technologies deal with bright pixels and what artifacts they produce&lt;/li&gt;
&lt;li&gt;FreeSync provides information about the HDR capabilities of a connected to monitor to the application to be able to adjust the tone mapper accordingly&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/freesync2-hdr.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190514045607/https://gpuopen.com/using-amd-freesync-2-hdr-tone-mapping/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.tut.fi/vga/publications/Blockwise_Multi-Order_Feature_Regression_for_Real-Time_Path_Tracing_Reconstruction.html&#34; target=&#34;_blank&#34; id=&#34;blockwise multi-order feature regression for real-time path tracing reconstruction&#34;&gt;blockwise multi-order feature regression for real-time path tracing reconstruction&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;paper on path trace denoising&lt;/li&gt;
&lt;li&gt;aimed at interactive scenarios with 1 sample per pixel&lt;/li&gt;
&lt;li&gt;using linear regression and temporal anti-aliasing combined with many problem-domain specific improvements&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/bmfr-big.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190520081542/http://www.tut.fi/vga/publications/Blockwise_Multi-Order_Feature_Regression_for_Real-Time_Path_Tracing_Reconstruction.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://metalbyexample.com/vertex-descriptors/&#34; target=&#34;_blank&#34; id=&#34;Vertex Data and Vertex Descriptors&#34;&gt;Vertex Data and Vertex Descriptors&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Vertex Descriptors in Metal allow the programmer to describe the memory layout of vertices&lt;/li&gt;
&lt;li&gt;shader compiler inserts the necessary fetch logic to read the data correctly&lt;/li&gt;
&lt;li&gt;this allows decoupling of vertex memory layout from the usage in shaders&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/noninterleaved-attributes.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190513190155/http://metalbyexample.com/vertex-descriptors/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jsantell.com/portals-with-asymmetric-projection&#34; target=&#34;_blank&#34; id=&#34;Portals with Asymmetric Projection&#34;&gt;Portals with Asymmetric Projection&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows how to implement Asymmetric Projection&lt;/li&gt;
&lt;li&gt;adjust the projection on a render-to-texture in 3D space so that it appears as if the viewer is looking through a portal into another 3D space&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/PortalswithAsymmetricProjection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190513151700/https://jsantell.com/portals-with-asymmetric-projection&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/radeon-gpu-profiler-1-5-1/&#34; target=&#34;_blank&#34; id=&#34;Radeon GPU Profiler 1.5.1&#34;&gt;Radeon GPU Profiler 1.5.1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the new version adds support for hardware-level tracing on an instruction level&lt;/li&gt;
&lt;li&gt;now shows the ISA inside of the pipeline view too&lt;/li&gt;
&lt;li&gt;support for user markers have been added&lt;/li&gt;
&lt;li&gt;a small overview of how to interpret the provided data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/rgp_user_events.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190516024947/https://gpuopen.com/radeon-gpu-profiler-1-5-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=-QHksBzktC8&#34; target=&#34;_blank&#34; id=&#34;[video] Real Time Continuous Lever of Detail Rendering of Point Clouds&#34;&gt;[video] Real Time Continuous Lever of Detail Rendering of Point Clouds&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video for article discussed in &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-76/&#34; target=&#34;_blank&#34;&gt;issue 76&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/clod.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.sandeepnambiar.com/getting-started-with-bgfx/&#34; target=&#34;_blank&#34; id=&#34;Using the bgfx library with C&amp;#43;&amp;#43; on Ubuntu&#34;&gt;Using the bgfx library with C&amp;#43;&amp;#43; on Ubuntu&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the tutorial shows how to use BGFX running on Linux&lt;/li&gt;
&lt;li&gt;initialize BGFX, load shaders, and models and draw a cube on screen&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/bgfx_tutorial3.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190517053150/https://www.sandeepnambiar.com/getting-started-with-bgfx/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/ArturoNereu/Unity2019ShaderDevelopment&#34; target=&#34;_blank&#34; id=&#34;Unity 2019 Shader Development&#34;&gt;Unity 2019 Shader Development&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;example project for a course teaching the basics of shader development using Unity&lt;/li&gt;
&lt;li&gt;covers vertex, pixel, surface shaders&lt;/li&gt;
&lt;li&gt;additionally talks about Shader Graphs and post-processing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/unity_shader_development.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190519220837/https://github.com/ArturoNereu/Unity2019ShaderDevelopment&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-18-17-05-2019/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 18 (17.05.2019)&#34;&gt;Technically Art: Issue 18 (17.05.2019)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of VFX tweets of the week&lt;/li&gt;
&lt;li&gt;tutorials, demos, and showcases of great looking effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/technically_art_18.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190519221935/https://halisavakis.com/technically-art-issue-18-17-05-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://c0de517e.blogspot.com/2019/05/seeing-whole-physically-based-picture.html&#34; target=&#34;_blank&#34; id=&#34;Seeing the whole Physically-Based picture&#34;&gt;Seeing the whole Physically-Based picture&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents what kind of approximations are still required to be done in Physically Based Rendering&lt;/li&gt;
&lt;li&gt;opens the question that we should start looking at the approximations to determine where to focus on for the next generation of visuals&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/pbr_rendering.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190519222341/http://c0de517e.blogspot.com/2019/05/seeing-whole-physically-based-picture.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/gpuweb/gpuweb/issues/295&#34; target=&#34;_blank&#34; id=&#34;Proposal for WebGPU as a new Standard Cross-Platform Graphics API (OpenGL replacement)&#34;&gt;Proposal for WebGPU as a new Standard Cross-Platform Graphics API (OpenGL replacement)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;proposal of requirements that would allow WebGPU to be used as a common cross-platform abstraction&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190514045854/https://github.com/gpuweb/gpuweb/issues/295&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://www.deepaksurti.com&#34; target=&#34;_blank&#34;&gt;Deepak Surti&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 84 — May 12, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-84/</link>
      <pubDate>Sun, 12 May 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-84/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/bryanmcnett/aabo&#34; target=&#34;_blank&#34; id=&#34;Axis-Aligned Bounding Octahedra and The 7-Sided AABB&#34;&gt;Axis-Aligned Bounding Octahedra and The 7-Sided AABB&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;describes an alternative bounding structure that is based around axis aligned triangles&lt;/li&gt;
&lt;li&gt;starts with 2D example and extends the concepts to 3D&lt;/li&gt;
&lt;li&gt;comparison against other bound object representations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-84/horse_dual_triangle.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190512164107/https://github.com/bryanmcnett/aabo&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=EhDr3Rs5fTU&#34; target=&#34;_blank&#34; id=&#34;[video] Technical Papers Preview: SIGGRAPH 2019&#34;&gt;[video] Technical Papers Preview: SIGGRAPH 2019&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview video of papers that will be presented at SIGGRAPH 2019&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-84/technical_papers_preview.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://stephanheigl.github.io/posts/shader-compiler/&#34; target=&#34;_blank&#34; id=&#34;Cross-Platform Shader Handling&#34;&gt;Cross-Platform Shader Handling&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;describes the cross-platform shader pipeline&lt;/li&gt;
&lt;li&gt;mix of json description files for state / constants / vertex layout / &amp;hellip;&lt;/li&gt;
&lt;li&gt;code generator used to generate the final shader for compilation&lt;/li&gt;
&lt;li&gt;cross-compilation pipeline for platforms that don&amp;rsquo;t support HLSL&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-84/shaderlib.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190512164253/https://stephanheigl.github.io/posts/shader-compiler/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://android-developers.googleblog.com/2019/05/whats-new-in-android-q-beta-3-more.html&#34; target=&#34;_blank&#34; id=&#34;What’s New in Android: Q Beta 3 &amp;amp; More&#34;&gt;What’s New in Android: Q Beta 3 &amp;amp; More&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Vulkan 1.1 will be a requirement on 64-bit devices starting with Android Q&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://developer.android.com/preview/features#thermal&#34; target=&#34;_blank&#34;&gt;Thermal API&lt;/a&gt; will be added to allow games to react to thermal status changes&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-84/android_q.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190510014247/https://android-developers.googleblog.com/2019/05/whats-new-in-android-q-beta-3-more.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/tensorflow/introducing-tensorflow-graphics-computer-graphics-meets-deep-learning-c8e3877b7668&#34; target=&#34;_blank&#34; id=&#34;Introducing TensorFlow Graphics: Computer Graphics Meets Deep Learning&#34;&gt;Introducing TensorFlow Graphics: Computer Graphics Meets Deep Learning&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;tour of TensorFlow Graphics&lt;/li&gt;
&lt;li&gt;allows to define 3D scenes and run training on them&lt;/li&gt;
&lt;li&gt;system to allow bi-directional machine learning techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-84/tensor_flow_graphics.jpeg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190512152313/https://medium.com/tensorflow/introducing-tensorflow-graphics-computer-graphics-meets-deep-learning-c8e3877b7668&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.mecheye.net/2019/05/why-is-2d-graphics-is-harder-than-3d-graphics/&#34; target=&#34;_blank&#34; id=&#34;Why are 2D vector graphics so much harder than 3D?&#34;&gt;Why are 2D vector graphics so much harder than 3D?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents the history of 2D printing and font formats&lt;/li&gt;
&lt;li&gt;shows problems with implicit curve evaluations&lt;/li&gt;
&lt;li&gt;discussion of implicit surfaces in regards to 2D rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-84/intro-ras1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190512153253/https://blog.mecheye.net/2019/05/why-is-2d-graphics-is-harder-than-3d-graphics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cryengine.com/news/how-we-made-neon-noir-ray-traced-reflections-in-cryengine-and-more&#34; target=&#34;_blank&#34; id=&#34;How we made Neon Noir - Ray Traced Reflections in CRYENGINE and more!&#34;&gt;How we made Neon Noir - Ray Traced Reflections in CRYENGINE and more!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;interview describing the reflections that have been implemented in the &lt;a href=&#34;https://www.cryengine.com/news/crytek-releases-neon-noir-a-real-time-ray-tracing-demonstration-for-cryengine&#34; target=&#34;_blank&#34;&gt;Neon Noir Demo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;merging voxel and ray tracing data&lt;/li&gt;
&lt;li&gt;only tracing rays for mirror-like surfaces and the beginning of rays, otherwise tracing voxels instead&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-84/RayTracing_Making_of_blog.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190509072624/https://www.cryengine.com/news/how-we-made-neon-noir-ray-traced-reflections-in-cryengine-and-more&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.jp.square-enix.com/tech/publications.html&#34; target=&#34;_blank&#34; id=&#34;Hierarchical Russian Roulette for Vertex Connections&#34;&gt;Hierarchical Russian Roulette for Vertex Connections&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a method based on stochastic light culling&lt;/li&gt;
&lt;li&gt;hierarchical Russian Roulette using an approximate scattering lobe&lt;/li&gt;
&lt;li&gt;does not support perfectly specular surfaces&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-84/HierarchicalRussianRouletteForVertexConnections.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190512164644/http://www.jp.square-enix.com/tech/library/pdf/Hierarchical_Russian_Roulette_for_Vertex_Connections.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/fur-shader-26688516&#34; target=&#34;_blank&#34; id=&#34;Fur Shader Tutorial&#34;&gt;Fur Shader Tutorial&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;brief Unity example that shows how to render a basic fur look&lt;/li&gt;
&lt;li&gt;combination of vertex offsets and alpha blending&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-84/fur.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190512165013/https://www.patreon.com/posts/fur-shader-26688516&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gabdube.github.io/python/vulkan/2019/01/10/shader-games.html&#34; target=&#34;_blank&#34; id=&#34;Shader games with Vulkan&#34;&gt;Shader games with Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview about how to design a game to run all logic in Vulkan shaders&lt;/li&gt;
&lt;li&gt;compute shaders to run the game logic and updating the game state&lt;/li&gt;
&lt;li&gt;draw management is done using a compute shader and draw indirect is used for the final draw submission&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-84/asteroid_vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190512165040/https://gabdube.github.io/python/vulkan/2019/01/10/shader-games.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://morgan3d.github.io/articles/2019-04-01-ddgi/overview.html&#34; target=&#34;_blank&#34; id=&#34;Part 3: DDGI Overview&#34;&gt;Part 3: DDGI Overview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Dynamic Diffuse Global Illumination&lt;/li&gt;
&lt;li&gt;overview of the evolution of several indirect illumination techniques&lt;/li&gt;
&lt;li&gt;how the method tries to solve the problem of Irradiance Probes&lt;/li&gt;
&lt;li&gt;summary of the implementation and evaluation in different scene contexts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-84/x3-large-scenes.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190507231404/https://morgan3d.github.io/articles/2019-04-01-ddgi/overview.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://astralcode.blogspot.com/2019/05/reverse-engineering-rendering-of.html&#34; target=&#34;_blank&#34; id=&#34;Reverse engineering the rendering of The Witcher 3, part 14 - cirrus clouds&#34;&gt;Reverse engineering the rendering of The Witcher 3, part 14 - cirrus clouds&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;reverse-engineering the cloud rendering of The Witcher&lt;/li&gt;
&lt;li&gt;uses a texture based approach, including normal mapping the clouds&lt;/li&gt;
&lt;li&gt;uses a sky gradient to lighten the clouds close to the sun&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-84/04_after02.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190512165234/http://astralcode.blogspot.com/2019/05/reverse-engineering-rendering-of.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ronja-tutorials.com/2019/05/11/dithering.html&#34; target=&#34;_blank&#34; id=&#34;Dithering&#34;&gt;Dithering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how to apply a screenspace Bayer dithering pattern in Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-84/DitherGradient.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190512165249/https://www.ronja-tutorials.com/2019/05/11/dithering.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevicius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 83 — May 5, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-83/</link>
      <pubDate>Sun, 05 May 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-83/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://themaister.net/blog/2019/05/01/a-tour-of-granites-vulkan-backend-part-6/&#34; target=&#34;_blank&#34; id=&#34;A tour of Granite’s Vulkan backend – Part 6&#34;&gt;A tour of Granite’s Vulkan backend – Part 6&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents how Granite deals with vkPipeline management&lt;/li&gt;
&lt;li&gt;API designed for user convenience&lt;/li&gt;
&lt;li&gt;hashmaps used for control of the different state combinations&lt;/li&gt;
&lt;li&gt;pre-warmed with information from previous runs using &lt;a href=&#34;https://github.com/ValveSoftware/Fossilize&#34; target=&#34;_blank&#34;&gt;Fossilize&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-83/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190504154931/http://themaister.net/blog/2019/05/01/a-tour-of-granites-vulkan-backend-part-6/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/improved-glsl-syntax-vulkans-descriptorset-indexing/&#34; target=&#34;_blank&#34; id=&#34;Pro Tip: Improved GLSL syntax for Vulkan DescriptorSet Indexing&#34;&gt;Pro Tip: Improved GLSL syntax for Vulkan DescriptorSet Indexing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains a code generation method to generate helper functions to make indexing into unbounded resource tables more convenient&lt;/li&gt;
&lt;li&gt;uses glslang symbol information to auto-generate accessor functions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-83/glsl_indexing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190504155144/https://devblogs.nvidia.com/improved-glsl-syntax-vulkans-descriptorset-indexing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://docs.google.com/document/d/1LyznvS1OtgwE-LeeJfXgb2ifiY2Gn5Cxatw2HrrSG8Q/edit#&#34; target=&#34;_blank&#34; id=&#34;Bounding Half-Space Hierarchy&#34;&gt;Bounding Half-Space Hierarchy&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains the BHH (Bounding Half-Space Hierarchy) data-structure&lt;/li&gt;
&lt;li&gt;allows sorting of 3D objects with sublinear search&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-83/bhh.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/wkjarosz/rendering-bib&#34; target=&#34;_blank&#34; id=&#34;rendering-bib&#34;&gt;rendering-bib&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;bibliography file containing 2000+ entries, in computer graphics, rendering, transport theory, and statistics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-83/bib.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190504160102/https://github.com/wkjarosz/rendering-bib/blob/master/rendering-biblatex.bib&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://sergeneren.com/2019/05/02/integrating-gvdb-future-plans/&#34; target=&#34;_blank&#34; id=&#34;Integrating GVDB &amp;amp; Future Plans&#34;&gt;Integrating GVDB &amp;amp; Future Plans&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 3 of the volumetric cloud rendering series&lt;/li&gt;
&lt;li&gt;the code has been released on &lt;a href=&#34;https://github.com/sergeneren/Volumetric-Path-Tracer&#34; target=&#34;_blank&#34;&gt;github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Open VDB is used to store volumetric data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-83/Clouds_GVDB.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190504160201/https://sergeneren.com/2019/05/02/integrating-gvdb-future-plans/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.gamasutra.com/view/news/341847/A_brief_history_of_3D_texturing_in_video_games.php&#34; target=&#34;_blank&#34; id=&#34;A brief history of 3D texturing in video games&#34;&gt;A brief history of 3D texturing in video games&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a twitter thread that provides an overview about how games, especially in regards to texturing, have changed since the 90s&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-83/texturing.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://twitter.com/BryanRenno/status/1122880458012934146&#34; style=&#34;color:white;&#34;&gt;twitter-thread &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190504160314/https://twitter.com/BryanRenno/status/1122880458012934146&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190504160228/http://www.gamasutra.com/view/news/341847/A_brief_history_of_3D_texturing_in_video_games.php&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@jerry.ylilammi/making-of-newton-protocol-e9ccde41af30&#34; target=&#34;_blank&#34; id=&#34;Making of Newton Protocol&#34;&gt;Making of Newton Protocol&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents the rendering architecture used for the raytracing demo&lt;/li&gt;
&lt;li&gt;uses nearby pixels to fill in missing lighting information&lt;/li&gt;
&lt;li&gt;temporal reprojection is used to gather extra information from the last 6 frames&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-83/newton_demo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190503143248/https://medium.com/@jerry.ylilammi/making-of-newton-protocol-e9ccde41af30&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wiki.alopex.li/AGuideToRustGraphicsLibraries2019&#34; target=&#34;_blank&#34; id=&#34;A Guide To Rust Graphics Libraries 2019&#34;&gt;A Guide To Rust Graphics Libraries 2019&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of the state of graphics API wrappers and libraries for rust&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-83/AGuideToRustGraphicsLibraries2019.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190504160408/https://wiki.alopex.li/AGuideToRustGraphicsLibraries2019&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jsantell.com/3d-projection&#34; target=&#34;_blank&#34; id=&#34;3D Projection&#34;&gt;3D Projection&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains 3D camera projections&lt;/li&gt;
&lt;li&gt;shows the influence of the camera FoV and how it changes the perceived image&lt;/li&gt;
&lt;li&gt;presents how to calculate a perspective and orthographic projection matrix&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-83/3d_projection.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190504160512/https://jsantell.com/3d-projection&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://on-demand-gtc.gputechconf.com/gtc-quicklink/hqGEv&#34; target=&#34;_blank&#34; id=&#34;GTC 2019 - videos avaialble&#34;&gt;GTC 2019 - videos avaialble&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;videos from GTC 2019 have been released&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-83/NVIDIA-logo-BL.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/26438849&#34; target=&#34;_blank&#34; id=&#34;Birthday Post! ShaderGraph conversions (WorldPosition Textureswap/Appear/Disappear)&#34;&gt;Birthday Post! ShaderGraph conversions (WorldPosition Textureswap/Appear/Disappear)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows how to convert effects from unity shader code to use the ShaderGraph system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-83/shader_graph_conversion.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190504161206/https://www.patreon.com/posts/26438849&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://erichaines.com/&#34; target=&#34;_blank&#34;&gt;Eric Haines&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 82 — April 28, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-82/</link>
      <pubDate>Sun, 28 Apr 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-82/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://themaister.net/blog/2019/04/23/a-tour-of-granites-vulkan-backend-part-4/&#34; target=&#34;_blank&#34; id=&#34;A tour of Granite’s Vulkan backend – Part 4&#34;&gt;A tour of Granite’s Vulkan backend – Part 4&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows the window system abstraction&lt;/li&gt;
&lt;li&gt;can be used to render to a window or into an offscreen render target&lt;/li&gt;
&lt;li&gt;how to allocate temporary data that is only required for the duration of the frame&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-82/granite.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190427165902/http://themaister.net/blog/2019/04/23/a-tour-of-granites-vulkan-backend-part-4/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://medium.com/@babylonjs/a-tale-of-a-bug-ce7e84467800&#34; target=&#34;_blank&#34; id=&#34;A Tale of a Bug&#34;&gt;A Tale of a Bug&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article describes the process to locate a bug in Babylon.js PBR pipeline&lt;/li&gt;
&lt;li&gt;comparison against other rendering engines confirmed the problem&lt;/li&gt;
&lt;li&gt;caused by the difference between spherical polynomials and spherical harmonics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-82/tale_of_a_bug.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190427170254/https://medium.com/@babylonjs/a-tale-of-a-bug-ce7e84467800&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bruop.github.io/tonemapping/&#34; target=&#34;_blank&#34; id=&#34;Tone Mapping&#34;&gt;Tone Mapping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows the effect on PBR scene when no tone mapping is applied&lt;/li&gt;
&lt;li&gt;why tone mapping is required and explanation of exposure&lt;/li&gt;
&lt;li&gt;presents how to calculate luminance and the final average exposure required&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-82/lottes_per_channel.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190427170509/https://bruop.github.io/tonemapping/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://bruop.github.io/exposure/&#34; target=&#34;_blank&#34; id=&#34;Automatic Exposure Using a Luminance Histogram&#34;&gt;Automatic Exposure Using a Luminance Histogram&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents the process of tone mapping and how curves are used&lt;/li&gt;
&lt;li&gt;shows different kinds of tone mapping curves and their final result&lt;/li&gt;
&lt;li&gt;highlighting what different considerations need to be considered when deciding on a solution&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-82/grid_diagram.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190427170437/https://bruop.github.io/exposure/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-1904-23/&#34; target=&#34;_blank&#34; id=&#34;PIX 1904.23 – New Timing Capture preview and improved DXIL shader debugging&#34;&gt;PIX 1904.23 – New Timing Capture preview and improved DXIL shader debugging&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new PIX version contains a preview of a new timing view&lt;/li&gt;
&lt;li&gt;will support larger capture durations, up to hours&lt;/li&gt;
&lt;li&gt;designed to better visualize a large amount of data collected&lt;/li&gt;
&lt;li&gt;preview because a large number of features are still missing&lt;/li&gt;
&lt;li&gt;team is looking for feedback&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-82/pix_new_timing_capture_range_details_overview.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190427170548/https://devblogs.microsoft.com/pix/pix-1904-23/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://themaister.net/blog/2019/04/27/a-tour-of-granites-vulkan-backend-part-5/&#34; target=&#34;_blank&#34; id=&#34;A tour of Granite’s Vulkan backend – Part 5&#34;&gt;A tour of Granite’s Vulkan backend – Part 5&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents how render passes are expressed in the user-facing API&lt;/li&gt;
&lt;li&gt;shows how layout transition for external dependencies are handled&lt;/li&gt;
&lt;li&gt;separate logic for user-created, WSI images and transient images&lt;/li&gt;
&lt;li&gt;suggests that barriers should be treated at a higher level inside a frame graph architecture&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-82/granite2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190427170617/http://themaister.net/blog/2019/04/27/a-tour-of-granites-vulkan-backend-part-5/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://momentsingraphics.de/?page_id=228&#34; target=&#34;_blank&#34; id=&#34;i3D 2019 – Sampling Projected Spherical Caps in Real Time&#34;&gt;i3D 2019 – Sampling Projected Spherical Caps in Real Time&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a new technique for a stochastic sampling of spherical area lights that is suitable for GPU implementations&lt;/li&gt;
&lt;li&gt;able to reduce noise from unoccluded areas significantly&lt;/li&gt;
&lt;li&gt;based on cutting the projected spherical cap into disks and sampling the disks instead&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-82/MagnifiedProjected1spp.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190428054638/http://momentsingraphics.de/?page_id=228&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://sergeneren.com/2019/04/26/lighting-and-transmittance/&#34; target=&#34;_blank&#34; id=&#34;Lighting And Transmittance&#34;&gt;Lighting And Transmittance&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the second part of the volumetric cloud rendering series&lt;/li&gt;
&lt;li&gt;explains transmittance and phase functions&lt;/li&gt;
&lt;li&gt;3D path visualization that presents how phase functions influence the way rays traverse the volume&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-82/sun_light_100_depth-1.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190428054725/https://sergeneren.com/2019/04/26/lighting-and-transmittance/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://box2d.org/files/GDC2019/ErinCatto_DynamicBVH_Full.pdf&#34; target=&#34;_blank&#34; id=&#34;Dynamic Bounding Volume Hierarchies - Extended version&#34;&gt;Dynamic Bounding Volume Hierarchies - Extended version&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an extended version of the GDC 2019 talk&lt;/li&gt;
&lt;li&gt;overview of AABB and BVH&lt;/li&gt;
&lt;li&gt;shows how to build a BVH using bottom up and top down building algorithms and update dynamically&lt;/li&gt;
&lt;li&gt;presenting different strategies&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-82/DynamicBVH.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190428054947/http://box2d.org/files/GDC2019/ErinCatto_DynamicBVH_Full.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/gmodarelli&#34; target=&#34;_blank&#34;&gt;Giuseppe Modarelli&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 81 — April 21, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-81/</link>
      <pubDate>Sun, 21 Apr 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-81/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/write-up-magical-marbles/&#34; target=&#34;_blank&#34; id=&#34;Write-up: Magical Marbles&#34;&gt;Write-up: Magical Marbles&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how to create a layering parallax effect to simulate the inside of a marble using ray marching&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/marbles.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190418061447/https://halisavakis.com/write-up-magical-marbles/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://themaister.net/blog/2019/04/17/a-tour-of-granites-vulkan-backend-part-2/&#34; target=&#34;_blank&#34; id=&#34;A tour of Granite’s Vulkan backend – Part 2&#34;&gt;A tour of Granite’s Vulkan backend – Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents how memory, object lifetime and command buffers are managed&lt;/li&gt;
&lt;li&gt;resource lifetime is bound to a frame context&lt;/li&gt;
&lt;li&gt;frame context tracks which resources can be deleted once the frame has been consumed&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190420022601/http://themaister.net/blog/2019/04/17/a-tour-of-granites-vulkan-backend-part-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/gdc-2019-presentation-links/&#34; target=&#34;_blank&#34; id=&#34;GDC 2019 Presentation Links&#34;&gt;GDC 2019 Presentation Links&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;PDFs for all AMD presentations from GDC 2019 have been posted&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/gdc_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190420022705/https://gpuopen.com/gdc-2019-presentation-links/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/machine-learning-acceleration-vulkan-cooperative-matrices/&#34; target=&#34;_blank&#34; id=&#34;Machine Learning Acceleration in Vulkan with Cooperative Matrices&#34;&gt;Machine Learning Acceleration in Vulkan with Cooperative Matrices&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows the Cooperative Matrix extension for Vulkan&lt;/li&gt;
&lt;li&gt;the extension enables matrix multiplications to be computed across a subgroup&lt;/li&gt;
&lt;li&gt;enables better shader optimizations and allows the use of tensor cores on Turing GPUs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/nvidia_titan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190420022825/https://devblogs.nvidia.com/machine-learning-acceleration-vulkan-cooperative-matrices/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ronja-tutorials.com/2019/04/16/hsv-colorspace.html&#34; target=&#34;_blank&#34; id=&#34;HSV Color Space&#34;&gt;HSV Color Space&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains the HSV colorspace and how to convert it to RGB&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/FullHsvTest.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190420022932/https://www.ronja-tutorials.com/2019/04/16/hsv-colorspace.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://morad.in/2019/04/19/under-the-hood-of-shadow-of-the-tomb-raider/&#34; target=&#34;_blank&#34; id=&#34;Under the hood of Shadow of the Tomb Raider&#34;&gt;Under the hood of Shadow of the Tomb Raider&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;using a Forward+ rendering pipeline and raytracing for shadows&lt;/li&gt;
&lt;li&gt;presents a frame breakdown of the main rendering passes&lt;/li&gt;
&lt;li&gt;acceleration structure for skinned objects is updated via UAV writes from a vertex shader&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/tomb_raider.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190420023050/http://morad.in/2019/04/19/under-the-hood-of-shadow-of-the-tomb-raider/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://jsantell.com/model-view-projection&#34; target=&#34;_blank&#34; id=&#34;Model View Projection&#34;&gt;Model View Projection&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows the different spaces that are typically involved in 3D rendering&lt;/li&gt;
&lt;li&gt;how to transform between the different spaces&lt;/li&gt;
&lt;li&gt;visually shows the effect of the transformations&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/ndc.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190420023204/https://jsantell.com/model-view-projection&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://sergeneren.com/2019/04/17/sampling-a-procedural-sky/&#34; target=&#34;_blank&#34; id=&#34;Sampling A Procedural Sky&#34;&gt;Sampling A Procedural Sky&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;series on rendering of volumetric clouds&lt;/li&gt;
&lt;li&gt;shows how to sample the sky lighting contribution&lt;/li&gt;
&lt;li&gt;using a sampling scheme that places more samples in the bright sections of the sky&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/Clouds.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190418130145/https://sergeneren.com/2019/04/17/sampling-a-procedural-sky/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://flaxengine.com/blog/flax-facts-25-vulkan/&#34; target=&#34;_blank&#34; id=&#34;Flax Facts #25 – Vulkan&#34;&gt;Flax Facts #25 – Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Flax engine now fully supports a Vulkan backend&lt;/li&gt;
&lt;li&gt;better performance than the D3D12 implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/Post_FlaxFacts026.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190416072946/https://flaxengine.com/blog/flax-facts-25-vulkan/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/background-shader-optimizations/&#34; target=&#34;_blank&#34; id=&#34;New in D3D12 – background shader optimizations&#34;&gt;New in D3D12 – background shader optimizations&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;D3D12 is starting to allow GPU drivers to implement shader optimization in a background thread&lt;/li&gt;
&lt;li&gt;provides an API to control the driver behavior&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/d3d12.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190417113513/https://devblogs.microsoft.com/directx/background-shader-optimizations/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://software.intel.com/en-us/articles/intel-graphics-performance-analyzers-assist-snow-simulation-in-frostpunk&#34; target=&#34;_blank&#34; id=&#34;Intel® Graphics Performance Analyzers Assist Snow Simulation in Frostpunk*&#34;&gt;Intel® Graphics Performance Analyzers Assist Snow Simulation in Frostpunk*&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents how the snow simulation has been implemented and how it was optimized for Intel GPUs&lt;/li&gt;
&lt;li&gt;supports dynamic melting and build up of snow&lt;/li&gt;
&lt;li&gt;tesselation stage is used to generate the snow mesh&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/frostpunk.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190420044704/https://software.intel.com/en-us/articles/intel-graphics-performance-analyzers-assist-snow-simulation-in-frostpunk&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://themaister.net/blog/2019/04/20/a-tour-of-granites-vulkan-backend-part-3/&#34; target=&#34;_blank&#34; id=&#34;A tour of Granite’s Vulkan backend – Part 3&#34;&gt;A tour of Granite’s Vulkan backend – Part 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents the shader binding model used by granite&lt;/li&gt;
&lt;li&gt;user binds resources to sets and bind points on a per-resource basis&lt;/li&gt;
&lt;li&gt;Vulkan descriptor set management is not exposed to the user&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190420220051/http://themaister.net/blog/2019/04/20/a-tour-of-granites-vulkan-backend-part-3/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://reedbeta.com&#34; target=&#34;_blank&#34;&gt;Nathan Reed&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 80 — April 14, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-80/</link>
      <pubDate>Sun, 14 Apr 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-80/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://feresignum.com/debugging-vk_error_device_lost-with-nvidia-device-diagnostics/&#34; target=&#34;_blank&#34; id=&#34;Debugging VK_ERROR_DEVICE_LOST with Nvidia Device Diagnostics&#34;&gt;Debugging VK_ERROR_DEVICE_LOST with Nvidia Device Diagnostics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;vulkan extension that allows progress markers to be inserted into the Vulkan command stream&lt;/li&gt;
&lt;li&gt;these can be used to detect the range of draw commands that have caused a GPU device error&lt;/li&gt;
&lt;li&gt;a short overview of how it is used in X-Plane&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-80/vulkan_gpu_debug.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190412201512/https://feresignum.com/debugging-vk_error_device_lost-with-nvidia-device-diagnostics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://drive.google.com/file/d/12ahbqGXNfY3V-1Gj5cvne2AH4BFWZHGD/view&#34; target=&#34;_blank&#34; id=&#34;GPU Architectures&#34;&gt;GPU Architectures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a brief overview of the rasterization process&lt;/li&gt;
&lt;li&gt;look at the logical rendering pipeline model&lt;/li&gt;
&lt;li&gt;presents the different components that are used to implement pipeline in hardware&lt;/li&gt;
&lt;li&gt;implementation details about the different stages&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-80/GPU_architectures.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.realtimerendering.com/blog/rtg-free-on-kindle-consider-google-play-for-books/&#34; target=&#34;_blank&#34; id=&#34;RTG free on Kindle; consider Google Play for books&#34;&gt;RTG free on Kindle; consider Google Play for books&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Ray Tracing Gems is now also available as a free Kindle version&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-80/ray_tracing_gems.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190412202549/http://www.realtimerendering.com/blog/rtg-free-on-kindle-consider-google-play-for-books/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://morad.in/2019/03/27/observations-about-the-rendering-of-metro-exodus/&#34; target=&#34;_blank&#34; id=&#34;Observations about the rendering of Metro: Exodus&#34;&gt;Observations about the rendering of Metro: Exodus&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents an overview of the general flow of a frame of the game&lt;/li&gt;
&lt;li&gt;a more detailed look at the acceleration structures used for the raytraced GI implementation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-80/AccStruct2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190412202659/http://morad.in/2019/03/27/observations-about-the-rendering-of-metro-exodus/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://morad.in/2019/04/05/more-observations-in-metro-exodus/&#34; target=&#34;_blank&#34; id=&#34;More observations in Metro: Exodus&#34;&gt;More observations in Metro: Exodus&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;looks at the composition of transparent objects, lens flares and at terrain tessellation&lt;/li&gt;
&lt;li&gt;presents more images from the acceleration structures and problems discovered with it&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-80/LensFlareComposite-1-768x436.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190412202824/http://morad.in/2019/04/05/more-observations-in-metro-exodus/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://microsoft.github.io/DirectX-Specs/&#34; target=&#34;_blank&#34; id=&#34;DirectX-Specs&#34;&gt;DirectX-Specs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Microsoft released the engineering specification for Direct3D 11 and 12 including DXR&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-80/D3D11_3_TriRast.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190412202930/https://microsoft.github.io/DirectX-Specs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://developer.nvidia.com/gdc19-show-guide-nvidia&#34; target=&#34;_blank&#34; id=&#34;GDC19 show guide from NVIDIA&#34;&gt;GDC19 show guide from NVIDIA&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;all GDC content from Nvidia is now available for download (free login required)&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-80/NVIDIA-logo-BL.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190412203146/https://developer.nvidia.com/gdc19-show-guide-nvidia&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://giordi91.github.io/post/vegaisa/&#34; target=&#34;_blank&#34; id=&#34;AMD GCN ISA: a first dive&#34;&gt;AMD GCN ISA: a first dive&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows which tools are available to look at the shader disassembly for AMD GPUs&lt;/li&gt;
&lt;li&gt;presents the instructions generated for a simple shader and overview of some of the instructions used&lt;/li&gt;
&lt;li&gt;shows the effect of code changes to the code generation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-80/gcn_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190415125511/https://giordi91.github.io/post/vegaisa/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ea.com/seed/news/i3d2019-dynamic-ao&#34; target=&#34;_blank&#34; id=&#34;high-quality object-space dynamic ambient occlusion for characters&#34;&gt;high-quality object-space dynamic ambient occlusion for characters&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;preprint of I3D paper that will be presented in May&lt;/li&gt;
&lt;li&gt;AO calculations are split into large-scale interactions based on sphere approximations&lt;/li&gt;
&lt;li&gt;finer details are created using linear interpolation from key points on the spheres&lt;/li&gt;
&lt;li&gt;both components are trained against ground truth data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-80/object_space_ambient_occlusion.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://media.contentapi.ea.com/content/dam/ea/seed/presentations/ble-high-quality-object-space-dynamic-ambient-occlusion-for-characters-using-bi-level-regression-web.pdf&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190415125720/https://media.contentapi.ea.com/content/dam/ea/seed/presentations/ble-high-quality-object-space-dynamic-ambient-occlusion-for-characters-using-bi-level-regression-web.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190415125651/https://www.ea.com/seed/news/i3d2019-dynamic-ao&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://on-demand.gputechconf.com/gtc/2019/presentation/_/s9909-nvidia-vulkan-features-update.pdf&#34; target=&#34;_blank&#34; id=&#34;[pdf] - nvidia vulkan update - GTC 2019&#34;&gt;[pdf] - nvidia vulkan update - GTC 2019&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of the latest extensions added to Vulkan on Nvidia GPUs&lt;/li&gt;
&lt;li&gt;mesh shader motivation, execution model and how to use them&lt;/li&gt;
&lt;li&gt;barycentric coordinates extension&lt;/li&gt;
&lt;li&gt;subgroup overview and tensor core access&lt;/li&gt;
&lt;li&gt;texture space shading&lt;/li&gt;
&lt;li&gt;derivatives in compute shaders&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-80/mesh_shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190415044505/https://on-demand.gputechconf.com/gtc/2019/presentation/_/s9909-nvidia-vulkan-features-update.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://themaister.net/blog/2019/04/14/a-tour-of-granites-vulkan-backend-part-1/&#34; target=&#34;_blank&#34; id=&#34;A tour of Granite’s Vulkan backend – Part 1&#34;&gt;A tour of Granite’s Vulkan backend – Part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses the authors&amp;rsquo; thoughts about abstraction levels in graphics APIs&lt;/li&gt;
&lt;li&gt;presents the motivation for the design of the granite engine API&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-80/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190415043214/http://themaister.net/blog/2019/04/14/a-tour-of-granites-vulkan-backend-part-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/postgoodism&#34; target=&#34;_blank&#34;&gt;Cort Stratton&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 79 — April 7, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-79/</link>
      <pubDate>Sun, 07 Apr 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-79/</guid>
      <description>&lt;p&gt;Missed the content for March? Don’t worry. Monthly summaries are availbale on my patreon: &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;https://www.patreon.com/jendrikillner&lt;/a&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://fabiensanglard.net/3dfx_sst1/index.html&#34; target=&#34;_blank&#34; id=&#34;THE STORY OF THE 3DFX VOODOO1&#34;&gt;THE STORY OF THE 3DFX VOODOO1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;provides a look at the 3DFX VOODOO1 GPU from the mid-90s&lt;/li&gt;
&lt;li&gt;shows how the hardware and rendering pipeline was designed&lt;/li&gt;
&lt;li&gt;comprising between the visual result of the software renderer and the GPU acceleration&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-79/3dfx_Voodoo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190405121514/http://fabiensanglard.net/3dfx_sst1/index.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://roystan.net/articles/grass-shader.html&#34; target=&#34;_blank&#34; id=&#34;Unity - Grass Shader&#34;&gt;Unity - Grass Shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a tutorial that explains how to render grass using Unity&lt;/li&gt;
&lt;li&gt;uses a mix of geometry and tesselation shaders&lt;/li&gt;
&lt;li&gt;covers how to generate geometry from the geometry shader, explains tangent space, and adds vertex attributes&lt;/li&gt;
&lt;li&gt;tesselation shader is used to control the density of the grass&lt;/li&gt;
&lt;li&gt;wind is applied to make the grass move&lt;/li&gt;
&lt;li&gt;lighting and shadows are added&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-79/grass-complete.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190405123028/https://roystan.net/articles/grass-shader.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/25814544&#34; target=&#34;_blank&#34; id=&#34;2d Raymarched Smoke&#34;&gt;2d Raymarched Smoke&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;walkthrough of a simple cloud shading setup using the Unity shader graph system&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-79/smoke.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190405123146/https://www.patreon.com/posts/25814544&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://techcommunity.microsoft.com/t5/Containers/Bringing-GPU-acceleration-to-Windows-containers/ba-p/393939&#34; target=&#34;_blank&#34; id=&#34;Bringing GPU acceleration to Windows containers&#34;&gt;Bringing GPU acceleration to Windows containers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;with Windows Server 2019 or Windows 10, version 1809 GPU acceleration for Direct3D based workloads is now supported in Docker&lt;/li&gt;
&lt;li&gt;also enabled Windows ML hardware acceleration&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-79/overview-diagram.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190405123225/https://techcommunity.microsoft.com/t5/Containers/Bringing-GPU-acceleration-to-Windows-containers/ba-p/393939&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://zero-radiance.github.io/post/split-sum/&#34; target=&#34;_blank&#34; id=&#34;Alternative Take on the Split Sum Approximation for Cubemap Pre-filtering&#34;&gt;Alternative Take on the Split Sum Approximation for Cubemap Pre-filtering&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;describes how cubemap pre-filtering for image-based lighting is done in Unity’s HD Render Pipeline&lt;/li&gt;
&lt;li&gt;derivation of the filtering equation and comparison against the &lt;a href=&#34;https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf&#34; target=&#34;_blank&#34;&gt;split sum approximation&lt;/a&gt; used in UE4&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-79/split_sum.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190405123402/https://zero-radiance.github.io/post/split-sum/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/gbv-for-shader-model-6-x/&#34; target=&#34;_blank&#34; id=&#34;New in D3D12 – GPU-Based Validation (GBV) is now available for Shader Model 6.x&#34;&gt;New in D3D12 – GPU-Based Validation (GBV) is now available for Shader Model 6.x&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;windows update 19H1 supports GPI based validation with shader model 6, generated by the &lt;a href=&#34;https://github.com/Microsoft/DirectXShaderCompiler&#34; target=&#34;_blank&#34;&gt;DXC&lt;/a&gt; compiler&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-79/d3d12.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190405123441/https://devblogs.microsoft.com/directx/gbv-for-shader-model-6-x/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ourmachinery.com/post/creation-graphs/&#34; target=&#34;_blank&#34; id=&#34;Creation Graphs&#34;&gt;Creation Graphs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents the Creation Graph&lt;/li&gt;
&lt;li&gt;a graph-based system that allows the definition of functionality, which mixes GPU and CPU based work in a single graph&lt;/li&gt;
&lt;li&gt;examples presented: cubemap filtering for image-based lighting and skybox rendering&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-79/creation-graph-skybox.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190405174451/https://ourmachinery.com/post/creation-graphs/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-12-05-04-2019/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 12 (05.04.2019)&#34;&gt;Technically Art: Issue 12 (05.04.2019)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of tweets related to a variety of tech art articles&lt;/li&gt;
&lt;li&gt;many great looking effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-79/technically_art_12_sot.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190405175334/https://halisavakis.com/technically-art-issue-12-05-04-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.gdcvault.com/browse/gdc-19&#34; target=&#34;_blank&#34; id=&#34;GDC 2019 - Vault&#34;&gt;GDC 2019 - Vault&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;videos and slides for GDC 2019 have been released on the vault&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-79/gdc_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://stevekarolewics.com/articles/anti-ghosting-taa.html&#34; target=&#34;_blank&#34; id=&#34;Anti-Ghosting with Temporal Anti-Aliasing&#34;&gt;Anti-Ghosting with Temporal Anti-Aliasing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents techniques used to alleviate ghosting in the TAA solution of &amp;ldquo;The Grand Tour Game&amp;rdquo;&lt;/li&gt;
&lt;li&gt;uses the stencil to mark object groups and does not blend between with history buffer pixels when the stencils differ&lt;/li&gt;
&lt;li&gt;uses per-pixel depth and velocity to disable TAA so as to further reduce ghosting on shadows&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-79/grand_tour.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190407125903/http://stevekarolewics.com/articles/anti-ghosting-taa.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://hacksoflife.blogspot.com/2019/04/keeping-blue-side-up-coordinate.html&#34; target=&#34;_blank&#34; id=&#34;Keeping the Blue Side Up: Coordinate Conventions for OpenGL, Metal and Vulkan&#34;&gt;Keeping the Blue Side Up: Coordinate Conventions for OpenGL, Metal and Vulkan&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents the coordinate conventions for Metal, OpenGL and Vulkan&lt;/li&gt;
&lt;li&gt;how they differ and how to deal with the difference in a mixed API scenario&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190408112443/http://hacksoflife.blogspot.com/2019/04/keeping-blue-side-up-coordinate.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://astralcode.blogspot.com/2019/04/reverse-engineering-rendering-of.html&#34; target=&#34;_blank&#34; id=&#34;Reverse engineering the rendering of The Witcher 3, part 13a - witcher senses (objects &amp;amp; intensity map)&#34;&gt;Reverse engineering the rendering of The Witcher 3, part 13a - witcher senses (objects &amp;amp; intensity map)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;series part 1 of the reverse engineering of The Witcher senses&lt;/li&gt;
&lt;li&gt;explains how objects are selected using the stencil buffer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-79/07_final.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190408112606/http://astralcode.blogspot.com/2019/04/reverse-engineering-rendering-of.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://astralcode.blogspot.com/2019/04/reverse-engineering-rendering-of_74.html&#34; target=&#34;_blank&#34; id=&#34;Reverse engineering the rendering of The Witcher 3, part 13b - witcher senses (outline map)&#34;&gt;Reverse engineering the rendering of The Witcher 3, part 13b - witcher senses (outline map)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;reverse engineering of The Witcher sense effect&lt;/li&gt;
&lt;li&gt;show how the outline for objects is generated&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-79/before.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190408112648/http://astralcode.blogspot.com/2019/04/reverse-engineering-rendering-of_74.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://astralcode.blogspot.com/2019/04/reverse-engineering-rendering-of_6.html&#34; target=&#34;_blank&#34; id=&#34;Reverse engineering the rendering of The Witcher 3, part 13c - witcher senses (fisheye effect &amp;amp; final combining)&#34;&gt;Reverse engineering the rendering of The Witcher 3, part 13c - witcher senses (fisheye effect &amp;amp; final combining)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how the inputs from part 1 and 2 of the series are combined using a fullscreen effect&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-79/color_intermediate_01.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190409050542/http://astralcode.blogspot.com/2019/04/reverse-engineering-rendering-of_6.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://twitter.com/maxandonuts&#34; target=&#34;_blank&#34;&gt;Max R.R. Collada&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Would you like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 78 — March 31, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-78/</link>
      <pubDate>Sun, 31 Mar 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-78/</guid>
      <description>&lt;p&gt;Missed the content for March? Don’t worry. The summary is now availbale on my patreon: &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;https://www.patreon.com/jendrikillner&lt;/a&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://blog.three-eyed-games.com/2019/03/18/gpu-path-tracing-in-unity-part-3/&#34; target=&#34;_blank&#34; id=&#34;GPU Path Tracing in Unity – Part 3&#34;&gt;GPU Path Tracing in Unity – Part 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 3 of tutorial series in building a path tracer in Unity&lt;/li&gt;
&lt;li&gt;shows how to trace a ray against a triangle and extends this by integration of Unity mesh interactions from the scene&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/bunny-reflecting.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190330185107/http://blog.three-eyed-games.com/2019/03/18/gpu-path-tracing-in-unity-part-3/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/nvidia-announces-nsight-graphics-2019-2/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Announces Nsight Graphics 2019.2!&#34;&gt;NVIDIA Announces Nsight Graphics 2019.2!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new Nsight graphics release adds improved DXR support, D3D12 fence visualization and Vulkan support for the range profiler&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/dxr_debug.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190330185347/https://news.developer.nvidia.com/nvidia-announces-nsight-graphics-2019-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://autodesk.github.io/standard-surface/&#34; target=&#34;_blank&#34; id=&#34;Autodesk - A Surface Standard&#34;&gt;Autodesk - A Surface Standard&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;whitepaper presenting the Autodesk uber surface shader based on the Arnold shading model&lt;/li&gt;
&lt;li&gt;based on ten components that are layered and mixed hierarchical to form the final surface appearance&lt;/li&gt;
&lt;li&gt;defines a &amp;ldquo;preview&amp;rdquo; model that simplifies the shading model for real-time use&lt;/li&gt;
&lt;li&gt;shows the effect of the individual components and exposed parameters&lt;/li&gt;
&lt;li&gt;partial Open Shading Language implementation is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/surface_layers.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://github.com/Autodesk/standard-surface/blob/master/standard_surface_reference.osl&#34; style=&#34;color:white;&#34;&gt;OSL shader &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190330185638/https://github.com/Autodesk/standard-surface/blob/master/standard_surface_reference.osl&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34;&gt;
            &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                &lt;a href=&#34;https://github.com/Autodesk/standard-surface&#34; style=&#34;color:white;&#34;&gt;github &lt;/a&gt; 
            &lt;/button&gt;
            
        &lt;/div&gt;
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190330185457/https://autodesk.github.io/standard-surface/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wwwtyro.net/2019/03/21/advanced-map-shading.html&#34; target=&#34;_blank&#34; id=&#34;Advanced Map Shading&#34;&gt;Advanced Map Shading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents how to render maps using WebGL&lt;/li&gt;
&lt;li&gt;shows how to convert color maps to elevation&lt;/li&gt;
&lt;li&gt;generate normal maps from a height map&lt;/li&gt;
&lt;li&gt;apply soft shadows, ambient lighting and combine with color map information&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/good-tiled.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190330072030/https://wwwtyro.net/2019/03/21/advanced-map-shading.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://interplayoflight.wordpress.com/2019/03/21/game-developers-conference-2019-links/&#34; target=&#34;_blank&#34; id=&#34;game developers conference 2019 links&#34;&gt;game developers conference 2019 links&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of links to presentations from GDC 2019&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/gdc_logo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190330224931/https://interplayoflight.wordpress.com/2019/03/21/game-developers-conference-2019-links/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://stephaniehurlburt.com/blog/2019/3/25/resources-for-learning-graphics-programming&#34; target=&#34;_blank&#34; id=&#34;Resources for Learning Graphics Programming&#34;&gt;Resources for Learning Graphics Programming&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of resources aimed at helping beginners get started with graphics programming&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190326014857/http://stephaniehurlburt.com/blog/2019/3/25/resources-for-learning-graphics-programming&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/variable-rate-shading-a-scalpel-in-a-world-of-sledgehammers/&#34; target=&#34;_blank&#34; id=&#34;Variable Rate Shading: a scalpel in a world of sledgehammers&#34;&gt;Variable Rate Shading: a scalpel in a world of sledgehammers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of Variable Rate Shading which is starting to become part of the D3D12 API&lt;/li&gt;
&lt;li&gt;will have a two-tier hardware support level&lt;/li&gt;
&lt;li&gt;tier 1: per draw shading rate changes&lt;/li&gt;
&lt;li&gt;tier 2: can vary shading rate within a draw, with a screenspace image or per-primitive&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/VRS-Tier-2-ssimage.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190330132152/https://devblogs.microsoft.com/directx/variable-rate-shading-a-scalpel-in-a-world-of-sledgehammers/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/dxr-library-subobjects/&#34; target=&#34;_blank&#34; id=&#34;New in D3D12 – DirectX Raytracing (DXR) now supports library subobjects&#34;&gt;New in D3D12 – DirectX Raytracing (DXR) now supports library subobjects&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;next Windows update will add support for library subobjects&lt;/li&gt;
&lt;li&gt;these allow configuring raytracing pipeline state from HLSL, removing the need for boilerplate C++ code&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/d3d12.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190330225525/https://devblogs.microsoft.com/directx/dxr-library-subobjects/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/playlist?list=PLYO7XTAX41FNx5LraG2CE48DBUla3Su_m&#34; target=&#34;_blank&#34; id=&#34;[video] Khronos - 2019 GDC&#34;&gt;[video] Khronos - 2019 GDC&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;youtube playlist with all Khronos talks from GDC 2019&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/Khronos-GDC-19-Events.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://auzaiffe.wordpress.com/2019/03/26/a-hybrid-rendering-pipeline-for-realtime-rendering-when-is-raytracing-worth-it/&#34; target=&#34;_blank&#34; id=&#34;A hybrid rendering pipeline for realtime rendering: (When) is raytracing worth it?&#34;&gt;A hybrid rendering pipeline for realtime rendering: (When) is raytracing worth it?&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the author presents his thoughts on the current state of raytracing in games&lt;/li&gt;
&lt;li&gt;where it can bring an advantage, weaknesses and the need for hybrid solutions&lt;/li&gt;
&lt;li&gt;how it might influence art direction&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/image-2-1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190330230146/https://auzaiffe.wordpress.com/2019/03/26/a-hybrid-rendering-pipeline-for-realtime-rendering-when-is-raytracing-worth-it/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://caseymuratori.com/blog_0036&#34; target=&#34;_blank&#34; id=&#34;stable filtering  —  part 2&#34;&gt;stable filtering  —  part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explores a stable filter further&lt;/li&gt;
&lt;li&gt;presents a new test that can be used to validate the filter quality better&lt;/li&gt;
&lt;li&gt;performs experiments to find a filter that is stable and introduces less blurring than the filter discussed in part 1&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/stable_filtering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190326084602/https://caseymuratori.com/blog_0036&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/blog/arm-releases-vulkan-best-practices-for-mobile-developers&#34; target=&#34;_blank&#34; id=&#34;Arm Releases Vulkan Best Practices for Mobile Developers&#34;&gt;Arm Releases Vulkan Best Practices for Mobile Developers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;ARM released a best practice guide for Vulkan&lt;/li&gt;
&lt;li&gt;consists of runnable samples that show best-practices and shows common performance pitfalls&lt;/li&gt;
&lt;li&gt;on-screen information visualizes the performance impact of different methods&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/Vulkan-Best-Practices.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190330230422/https://www.khronos.org/blog/arm-releases-vulkan-best-practices-for-mobile-developers&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://astralcode.blogspot.com/2019/03/reverse-engineering-rendering-of_17.html&#34; target=&#34;_blank&#34; id=&#34;Reverse engineering the rendering of The Witcher 3, part 12 - stupid sky tricks&#34;&gt;Reverse engineering the rendering of The Witcher 3, part 12 - stupid sky tricks&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;look at the disassembly for parts of the skydome, sun, and stars shader from The Witcher&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/sun_an_sky_witcher.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190330230525/http://astralcode.blogspot.com/2019/03/reverse-engineering-rendering-of_17.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/using-amd-freesync-2-hdr-color-spaces/&#34; target=&#34;_blank&#34; id=&#34;Using AMD FreeSync 2 HDR: Color Spaces&#34;&gt;Using AMD FreeSync 2 HDR: Color Spaces&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;covers overview of color theory, color spaces, and encoding&lt;/li&gt;
&lt;li&gt;presents what problems FreeSync 2 solves and what guidelines it requires hardware manufacturers to follow&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/fs2_explanation.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190330230634/https://gpuopen.com/using-amd-freesync-2-hdr-color-spaces/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.nvidia.com/rtx-best-practices/&#34; target=&#34;_blank&#34; id=&#34;Tips and Tricks: Ray Tracing Best Practices&#34;&gt;Tips and Tricks: Ray Tracing Best Practices&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;list of best practices for ray tracing&lt;/li&gt;
&lt;li&gt;how to manage the acceleration structure construction and building efficiently&lt;/li&gt;
&lt;li&gt;how to manage pipeline objects, shaders, and resources&lt;/li&gt;
&lt;li&gt;denoisers and memory budget&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/raytracing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190330070242/https://devblogs.nvidia.com/rtx-best-practices/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-1903-26/&#34; target=&#34;_blank&#34; id=&#34;PIX 1903.26 – Occupancy for Turing GPUs and Variable Rate Shading&#34;&gt;PIX 1903.26 – Occupancy for Turing GPUs and Variable Rate Shading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;occupancy graph is now supported on Turing GPUs too&lt;/li&gt;
&lt;li&gt;Variable Rate Shading is supported&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/occupancy.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190330230956/https://devblogs.microsoft.com/pix/pix-1903-26/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.saschawillems.de/blog/2019/03/29/flipping-the-vulkan-viewport/&#34; target=&#34;_blank&#34; id=&#34;Flipping the Vulkan viewport&#34;&gt;Flipping the Vulkan viewport&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a small article explaining the difference in the viewport coordinate system when using Vulkan compared to OpenGL&lt;/li&gt;
&lt;li&gt;shows how to flip the viewport to match OpenGL convention&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/example_vk.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190330231059/https://www.saschawillems.de/blog/2019/03/29/flipping-the-vulkan-viewport/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.selfshadow.com/2019/03/30/multi-faceted-part-4/&#34; target=&#34;_blank&#34; id=&#34;A Multi-Faceted Exploration (Part 4)&#34;&gt;A Multi-Faceted Exploration (Part 4)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents how to precalculate an energy preserving microfacet BRDF with a diffuse-like lobe&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/ggx.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190331053134/https://blog.selfshadow.com/2019/03/30/multi-faceted-part-4/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://c0de517e.blogspot.com/2019/03/an-unbiased-look-at-real-time-raytracing.html&#34; target=&#34;_blank&#34; id=&#34;An unbiased look at real-time raytracing&#34;&gt;An unbiased look at real-time raytracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents the authors&amp;rsquo; views on &amp;ldquo;do&amp;rdquo;&amp;rsquo;s &amp;ldquo;do not&amp;rdquo;&amp;rsquo;s for the future use of raytracing in games&lt;/li&gt;
&lt;li&gt;how RTX gives new opportunities and also challenges&lt;/li&gt;
&lt;li&gt;performance vs. quality tradeoffs will still be required, and raytracing will not make this simpler&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/Call-of-Duty-Infinite-Warfare.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190331110148/http://c0de517e.blogspot.com/2019/03/an-unbiased-look-at-real-time-raytracing.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.unrealengine.com/en-US/tech-blog/unreal-engine-gdc-2019-tech-talks-now-available-online&#34; target=&#34;_blank&#34; id=&#34;Unreal Engine GDC 2019 tech talks now available online&#34;&gt;Unreal Engine GDC 2019 tech talks now available online&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;unreal tech talks from GDC 2019 are available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-78/unreal_gdc_2019.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190401130052/https://www.unrealengine.com/en-US/tech-blog/unreal-engine-gdc-2019-tech-talks-now-available-online&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;http://metalbyexample.com/&#34; target=&#34;_blank&#34;&gt;Warren Moore&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;You would like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 77 — March 17, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-77/</link>
      <pubDate>Sun, 17 Mar 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-77/</guid>
      <description>&lt;p&gt;There will be no newsletter next week. I am at GDC all week.
Will be returning as usual on April 1st.&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/directx/world-of-warcraft-uses-directx-12-running-on-windows-7/&#34; target=&#34;_blank&#34; id=&#34;World of Warcraft uses DirectX 12 running on Windows 7&#34;&gt;World of Warcraft uses DirectX 12 running on Windows 7&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the latest update adds support to run the D3D12 game on windows 7&lt;/li&gt;
&lt;li&gt;user mode d3d12 implementation without win10 kernel level optimizations&lt;/li&gt;
&lt;li&gt;no public information about the implementation details yet&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-77/wow_d3d12.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20190314122056/https://devblogs.microsoft.com/directx/world-of-warcraft-uses-directx-12-running-on-windows-7/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/Apress/ray-tracing-gems&#34; target=&#34;_blank&#34; id=&#34;Source Code for Ray Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIs&#34;&gt;Source Code for Ray Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;source code for the Ray Tracing Gems has been released&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-77/ray_tracing_gems.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pharr.org/matt/blog/2019/03/13/triangle-sampling-1.5.html&#34; target=&#34;_blank&#34; id=&#34;Adventures in Sampling Points on Triangles (Part 1.5): Reader Mail and Followups&#34;&gt;Adventures in Sampling Points on Triangles (Part 1.5): Reader Mail and Followups&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;follow up to the post discussed in &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-75/&#34;&gt;issue 75&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;presents a way to speed up the presented technique by 2.34x&lt;/li&gt;
&lt;li&gt;discussion of the rendering error using the Eric Heitz method discussed above&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-77/owen-tri-rendered.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190317085356/https://pharr.org/matt/blog/2019/03/13/triangle-sampling-1.5.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://devblogs.microsoft.com/pix/pix-1903-12/&#34; target=&#34;_blank&#34; id=&#34;PIX 1903.12 – High Frequency Counters&#34;&gt;PIX 1903.12 – High Frequency Counters&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;pix for windows now supports High-Frequency Counters&lt;/li&gt;
&lt;li&gt;This allows that hardware counters are sampled multiple times per draw/dispatch and allows further insight into GPU activity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-77/pix_counters.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190317090020/https://devblogs.microsoft.com/pix/pix-1903-12/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://reindernijhoff.net/2019/03/wolfenstein-raytracing-on-using-webgl1/&#34; target=&#34;_blank&#34; id=&#34;Wolfenstein: Ray Tracing On using WebGL1&#34;&gt;Wolfenstein: Ray Tracing On using WebGL1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a ray tracing system for Wolfenstein 3D using only WebGL 1&lt;/li&gt;
&lt;li&gt;a hybrid approach, raytraced shadows, diffuse GI and reflections&lt;/li&gt;
&lt;li&gt;overview of the implementation for the different elements&lt;/li&gt;
&lt;li&gt;how to apply temporal stability and noise reduction filters&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-77/wolfenstein.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.3dgep.com/learning-directx-12-4/&#34; target=&#34;_blank&#34; id=&#34;Learning DirectX 12 – Lesson 4 – Textures&#34;&gt;Learning DirectX 12 – Lesson 4 – Textures&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains the concepts of textures, mip-mapping, sampling&lt;/li&gt;
&lt;li&gt;shows the different filtering, addressing mode available on texture samplers&lt;/li&gt;
&lt;li&gt;describes how to use DirectXTex to load textures and upload them into GPU memory&lt;/li&gt;
&lt;li&gt;introduction into compute shaders and how to use them to generate mipmaps&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-77/mipmapping_d3d12.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190317090533/https://www.3dgep.com/learning-directx-12-4/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://drive.google.com/file/d/1J-183vt4BrN9wmqItECIjjLIKwm29qSg/view&#34; target=&#34;_blank&#34; id=&#34;A Low-Distortion Map Between Triangle and Square&#34;&gt;A Low-Distortion Map Between Triangle and Square&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a new low distortion mapping between squares and triangles that is also cheap to compute&lt;/li&gt;
&lt;li&gt;can be used for random sampling of points with a uniform density&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-77/mapping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://i3dsymposium.github.io/2019/program.html&#34; target=&#34;_blank&#34; id=&#34;i3D 2019 - Program&#34;&gt;i3D 2019 - Program&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;program for the I3D conference in Montreal has been published&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190317080230/http://i3dsymposium.github.io/2019/program.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://psgraphics.blogspot.com/2019/03/making-your-bvh-faster.html&#34; target=&#34;_blank&#34; id=&#34;Making your BVH faster&#34;&gt;Making your BVH faster&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents 3 optimizations that can be applied to BVH to increase performance

&lt;ul&gt;
&lt;li&gt;usage of inverse ray direction, ray traversal early-out and surface area heuristic for construction of the BVH&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;the comments contain a few more tips for increased performance&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190317085254/https://psgraphics.blogspot.com/2019/03/making-your-bvh-faster.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://pharr.org/matt&#34; target=&#34;_blank&#34;&gt;Matt Pharr&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;You would like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 76 — March 10, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-76/</link>
      <pubDate>Sun, 10 Mar 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-76/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.cg.tuwien.ac.at/research/publications/2019/schuetz-2019-CLOD/&#34; target=&#34;_blank&#34; id=&#34;Real-Time Continuous Level of Detail Rendering of Point Clouds&#34;&gt;Real-Time Continuous Level of Detail Rendering of Point Clouds&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a new technique for continuous level of detail generation of point clouds, designed for VF applications&lt;/li&gt;
&lt;li&gt;additive point storage, each point is assigned to one level&lt;/li&gt;
&lt;li&gt;compute shader used to iterate over all points, time-sliced over multiple frames, and builds a new vertex buffer that only contains required points&lt;/li&gt;
&lt;li&gt;each point is classified into distinct LOD levels + a random factor, this makes it possible to allow the set to be changed continuously&lt;/li&gt;
&lt;li&gt;points have a blend zone to reduce aliasing, in this zone point sizes are adjusted so that they gradually are blended to the final extent as the camera approaches the points&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-76/clod.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.cg.tuwien.ac.at/research/publications/2019/schuetz-2019-CLOD/schuetz-2019-CLOD-paper_preprint.pdf&#34; style=&#34;color:white;&#34;&gt;pdf &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190311024002/https://www.cg.tuwien.ac.at/research/publications/2019/schuetz-2019-CLOD/schuetz-2019-CLOD-paper_preprint.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20190306164608/https://www.cg.tuwien.ac.at/research/publications/2019/schuetz-2019-CLOD/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://astralcode.blogspot.com/2019/03/reverse-engineering-rendering-of.html&#34; target=&#34;_blank&#34; id=&#34;Reverse engineering the rendering of The Witcher 3, part 11 - lightnings&#34;&gt;Reverse engineering the rendering of The Witcher 3, part 11 - lightnings&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how the lightning effect in The Witcher 3 has been implemented&lt;/li&gt;
&lt;li&gt;based on a tree-like mesh that is expanded based on the normals and additive blending&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-76/witcher3_lightning.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190311024158/https://astralcode.blogspot.com/2019/03/reverse-engineering-rendering-of.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://caseymuratori.com/blog_0035&#34; target=&#34;_blank&#34; id=&#34;stable filtering  —  part 1&#34;&gt;stable filtering  —  part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explanation of half-pel filters&lt;/li&gt;
&lt;li&gt;shows properties of different filters common in video compression and how they perform when applied multiple times&lt;/li&gt;
&lt;li&gt;common filters are &amp;ldquo;unstable&amp;rdquo; when executed multiple times&lt;/li&gt;
&lt;li&gt;the feedback loop causes the results to be oversharpened until the results become unrecognizable&lt;/li&gt;
&lt;li&gt;presents a filter that does not have a feedback loop problem and converges to a slightly softened but stable result&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-76/stable_filter.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20190308021642/https://caseymuratori.com/blog_0035&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://docs.google.com/forms/d/e/1FAIpQLScnOfDT8GZ5sjYC7doPiNPSjRya04UYTm9nsfwLK1e1aoLVXw/viewform&#34; target=&#34;_blank&#34; id=&#34;Vulkan Memory Allocator Survey March 2019&#34;&gt;Vulkan Memory Allocator Survey March 2019&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;survey about the Vulkan memory allocator library&lt;/li&gt;
&lt;li&gt;how it is used, how the experience is and what features are you used or are missing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-76/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://dev.to/pperon/hello-bgfx-4dka&#34; target=&#34;_blank&#34; id=&#34;Hello, bgfx!&#34;&gt;Hello, bgfx!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;getting started guide that shows how to use the bgfx library&lt;/li&gt;
&lt;li&gt;initialize the library and render a cube to the window&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-76/bgfx.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://gist.github.com/pperon/5df815df55d6c39db004f46f6cb9837b&#34; style=&#34;color:white;&#34;&gt;code &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190311024847/https://gist.github.com/pperon/5df815df55d6c39db004f46f6cb9837b&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190311024800/https://dev.to/pperon/hello-bgfx-4dka&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gfx-rs.github.io/2019/03/06/wgpu&#34; target=&#34;_blank&#34; id=&#34;The rise of wgpu&#34;&gt;The rise of wgpu&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of the state of graphics APIs in Rust&lt;/li&gt;
&lt;li&gt;presents wgpu-rs, a higher level API based on the &lt;a href=&#34;https://www.w3.org/community/gpu/&#34; target=&#34;_blank&#34;&gt;WebGPU&lt;/a&gt; API that is being designed for use in the browser&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-76/wgpu-shadow.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190311024948/https://gfx-rs.github.io/2019/03/06/wgpu&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blogs.unity3d.com/2019/03/06/visual-effect-graph-samples/&#34; target=&#34;_blank&#34; id=&#34;Visual Effect Graph Samples&#34;&gt;Visual Effect Graph Samples&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of particle system samples that have been created with the Visual Effect Graph in Unity&lt;/li&gt;
&lt;li&gt;including small video demonstrations of most effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-76/particles_unity.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20190310203153/https://blogs.unity3d.com/2019/03/06/visual-effect-graph-samples/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.realtimerendering.com/raytracinggems/&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing Gems&#34;&gt;Ray Tracing Gems&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;an unofficial updated version of Ray Tracing Gems with fixes for the errors found in the original book&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-76/raytracing_gems.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190311025232/http://www.realtimerendering.com/raytracinggems/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.saschawillems.de/?p=3182&#34; target=&#34;_blank&#34; id=&#34;Getting a Vulkan application up and running on a low-spec device with buggy drivers&#34;&gt;Getting a Vulkan application up and running on a low-spec device with buggy drivers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents how to find a GPU crash on a low-end Vulkan device&lt;/li&gt;
&lt;li&gt;caused by a GPU driver timeout, requiring the work to be split into smaller submits&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-76/vulkan_example.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190311025353/https://www.saschawillems.de/?p=3182&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpuopen.com/gdc-2019-presentations/&#34; target=&#34;_blank&#34; id=&#34;GDC 2019 Presentations&#34;&gt;GDC 2019 Presentations&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of all sessions AMD is involved with during GDC 2019&lt;/li&gt;
&lt;li&gt;will later also include links to the slides as they become available&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-76/gdc_logo_gpuopen.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190311025535/https://gpuopen.com/gdc-2019-presentations/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to &lt;a href=&#34;https://aras-p.info/&#34; target=&#34;_blank&#34;&gt;Aras Pranckevicius&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;You would like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 75 — March 3, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-75/</link>
      <pubDate>Sun, 03 Mar 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-75/</guid>
      <description>&lt;p&gt;Missed the content for Feburary? Don&amp;rsquo;t worry. The summary is now availbale on my patreon: &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;https://www.patreon.com/jendrikillner&lt;/a&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ea.com/seed/news/hybrid-rendering-for-real-time-ray-tracing&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing Gems - hybrid rendering for real-time ray tracing&#34;&gt;Ray Tracing Gems - hybrid rendering for real-time ray tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the chapter describes the hybrid rendering pipeline used in the PICA PICA demo&lt;/li&gt;
&lt;li&gt;uses a mix of rasterization and raytracing techniques to generate the final image&lt;/li&gt;
&lt;li&gt;talks about opaque and transparent shadows, reflections, ambient occlusion, transparency, translucency, and GI techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-75/hybrid-pipeline.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://media.contentapi.ea.com/content/dam/ea/seed/presentations/2019-ray-tracing-gems-chapter-25-barre-brisebois-et-al.pdf&#34; style=&#34;color:white;&#34;&gt;pdf &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190304011437/https://media.contentapi.ea.com/content/dam/ea/seed/presentations/2019-ray-tracing-gems-chapter-25-barre-brisebois-et-al.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190304011357/https://www.ea.com/seed/news/hybrid-rendering-for-real-time-ray-tracing&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://link.springer.com/book/10.1007/978-1-4842-4427-2&#34; target=&#34;_blank&#34; id=&#34;Ray Tracing Gems&#34;&gt;Ray Tracing Gems&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Ray Tracing Gems is now available as open access book&lt;/li&gt;
&lt;li&gt;the whole book is available as single pdf, but individual chapters can be downloaded too&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-75/ray_tracing_gems.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://link.springer.com/content/pdf/10.1007%2F978-1-4842-4427-2.pdf&#34; style=&#34;color:white;&#34;&gt;pdf &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190304013319/https://link.springer.com/book/10.1007/978-1-4842-4427-2&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pharr.org/matt/blog/2019/02/27/triangle-sampling-1.html&#34; target=&#34;_blank&#34; id=&#34;Adventures in Sampling Points on Triangles (Part 1)&#34;&gt;Adventures in Sampling Points on Triangles (Part 1)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a method to distribute sampling points within a triangle taking advantage of sub-triangles to guide the distribution&lt;/li&gt;
&lt;li&gt;able to reduce variance in the test scene by 2.17x&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-75/owen-tri-rendered.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190304012133/https://pharr.org/matt/blog/2019/02/27/triangle-sampling-1.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/Atrix256/SampleZoo&#34; target=&#34;_blank&#34; id=&#34;SampleZoo - Simple implementations of sampling patterns, with objective tests to compare them&#34;&gt;SampleZoo - Simple implementations of sampling patterns, with objective tests to compare them&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;collection of different sampling patterns&lt;/li&gt;
&lt;li&gt;explains the patterns and the characteristic of each&lt;/li&gt;
&lt;li&gt;provides C++ implementations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-75/Doc_CalculateDiscrepancy.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://codeload.github.com/Atrix256/SampleZoo/zip/master&#34; style=&#34;color:white;&#34;&gt;code &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190304012749/https://codeload.github.com/Atrix256/SampleZoo/zip/master&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190304012721/https://github.com/Atrix256/SampleZoo&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://jcgt.org/published/0008/01/04/&#34; target=&#34;_blank&#34; id=&#34;Efficient Generation of Points that Satisfy Two-Dimensional Elementary Intervals&#34;&gt;Efficient Generation of Points that Satisfy Two-Dimensional Elementary Intervals&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a new algorithm that allows to efficiently and incrementally generate stratified sample points&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-75/point_sampling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://jcgt.org/published/0008/01/04/paper.pdf&#34; style=&#34;color:white;&#34;&gt;pdf &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190304010738/http://jcgt.org/published/0008/01/04/paper.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190304010504/http://jcgt.org/published/0008/01/04/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.patreon.com/posts/24996282&#34; target=&#34;_blank&#34; id=&#34;Shader Convertion Part 2 (Liquid, Triplanar, Waterfall)&#34;&gt;Shader Convertion Part 2 (Liquid, Triplanar, Waterfall)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows how to implement a fluid like movement inside an object, tri-planar mapping and a animated waterfall shader using the Unity Shader Graph&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-75/shader_graph.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190304012445/https://www.patreon.com/posts/24996282&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ronja-tutorials.com/2019/03/02/halftone-shading.html&#34; target=&#34;_blank&#34; id=&#34;Halftone Shading&#34;&gt;Halftone Shading&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows how to implement halftone toon shading with Unity&lt;/li&gt;
&lt;li&gt;a technique that uses a binary lighting style that is modified by sampling screenspace signed distance fields to customize the edge between lit and unlit area&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-75/halftone_shading.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190304012613/https://www.ronja-tutorials.com/2019/03/02/halftone-shading.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://asawicki.info/news_1703_programming_hdr_monitor_support_in_direct3d.html&#34; target=&#34;_blank&#34; id=&#34;Programming HDR monitor support in Direct3D&#34;&gt;Programming HDR monitor support in Direct3D&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;documents the experiments with HDR support using all 3 different hardware vendors&lt;/li&gt;
&lt;li&gt;shows what HDR information is reported from DXGI and compares against manufacture APIs&lt;/li&gt;
&lt;li&gt;all vendors seem to indicate very different information about the same monitor connected&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-75/hdr_color_spaces.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190304012940/http://asawicki.info/news_1703_programming_hdr_monitor_support_in_direct3d.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://asawicki.info/news_1704_programming_freesync_2_support_in_direct3d.html&#34; target=&#34;_blank&#34; id=&#34;Programming FreeSync 2 support in Direct3D&#34;&gt;Programming FreeSync 2 support in Direct3D&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents how FreeSync2 supports HDR and variable refresh rate&lt;/li&gt;
&lt;li&gt;explains what variable refresh is and what is required to use it&lt;/li&gt;
&lt;li&gt;FreeSync HDR allows the game to collect capabilities from the monitor to adjust the tone mapping accordingly&lt;/li&gt;
&lt;li&gt;shows how to use the AMD library to create and request the device&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-75/freesync2.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190304013111/http://asawicki.info/news_1704_programming_freesync_2_support_in_direct3d.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.magnum.graphics/backstage/gfx-api-enum-mapping/&#34; target=&#34;_blank&#34; id=&#34;How Magnum does GFX API enum mapping&#34;&gt;How Magnum does GFX API enum mapping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows the method used to abstract pixel formats between OpenGL and Vulkan using an external enum format&lt;/li&gt;
&lt;li&gt;using C++ preprocessor to provide abstraction and testing support&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-75/enum_mapping.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20190228201627/https://blog.magnum.graphics/backstage/gfx-api-enum-mapping/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blogs.unity3d.com/2019/02/28/srp-batcher-speed-up-your-rendering/&#34; target=&#34;_blank&#34; id=&#34;SRP Batcher: Speed up your rendering!&#34;&gt;SRP Batcher: Speed up your rendering!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains the design of the new Unity batching system&lt;/li&gt;
&lt;li&gt;designed to enable better matching in situations where many materials are used, but they are using a small number of shader variations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-75/batcher.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190304012221/https://blogs.unity3d.com/2019/02/28/srp-batcher-speed-up-your-rendering/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Steven Cannavan &lt;a href=&#34;https://twitter.com/pedanticcoder&#34; target=&#34;_blank&#34;&gt;@PedanticCoder&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;You would like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 74 — February 24, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-74/</link>
      <pubDate>Sun, 24 Feb 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-74/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://ciechanow.ski/color-spaces/&#34; target=&#34;_blank&#34; id=&#34;Color Spaces&#34;&gt;Color Spaces&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;in-depth discussion of color spaces&lt;/li&gt;
&lt;li&gt;shows how the color response curve influences which color absolute values are referring to&lt;/li&gt;
&lt;li&gt;explains how to match colors between different color spaces&lt;/li&gt;
&lt;li&gt;how to represent color spaces visually&lt;/li&gt;
&lt;li&gt;what negative color values represent&lt;/li&gt;
&lt;li&gt;defines the standard CIE XYZ and RGB color space and how they have been defined relative to human perception capabilities&lt;/li&gt;
&lt;li&gt;look at the sRGB color space related to all the information covered in the article&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-74/color_spaces.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190225012949/https://ciechanow.ski/color-spaces/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.lunarg.com/wp-content/uploads/2019/02/GPU-Assisted-Validation.pdf&#34; target=&#34;_blank&#34; id=&#34;Vulkan GPU - Assisted Validation&#34;&gt;Vulkan GPU - Assisted Validation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;whitepaper explains how to enable GPU assisted validation&lt;/li&gt;
&lt;li&gt;how it is implemented, performance implicatications&lt;/li&gt;
&lt;li&gt;what issues it is a ble to detect and known problems&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-74/vulkan.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190225011814/https://www.lunarg.com/wp-content/uploads/2019/02/GPU-Assisted-Validation.pdf&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wickedengine.net/2019/02/24/thoughts-on-light-culling-stream-compaction-vs-flat-bit-arrays/&#34; target=&#34;_blank&#34; id=&#34;Thoughts on light culling: stream compaction vs flat bit arrays&#34;&gt;Thoughts on light culling: stream compaction vs flat bit arrays&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;walkthrough of two algorithms for forward culling techniques&lt;/li&gt;
&lt;li&gt;stream compaction and flat bit arrays&lt;/li&gt;
&lt;li&gt;presents how to implement scalarazation to reduce atomics overhead and achieve higher occupancy&lt;/li&gt;
&lt;li&gt;presents performance comparisions of the approaches with lights and decals&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-74/bistro_heatmap-1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190225014542/https://wickedengine.net/2019/02/24/thoughts-on-light-culling-stream-compaction-vs-flat-bit-arrays/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ea.com/seed/news/texture-level-of-detail-strategies-for-real-time-ray-tracing&#34; target=&#34;_blank&#34; id=&#34;texture level of detail strategies for real-time ray tracing&#34;&gt;texture level of detail strategies for real-time ray tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents multiple approaches to calculate MIP mapping textures when using raytracing&lt;/li&gt;
&lt;li&gt;includes performance comparisons for the different methods&lt;/li&gt;
&lt;li&gt;DXR shader implementation of the RayCones mip selection algorithm&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-74/cone.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://media.contentapi.ea.com/content/dam/ea/seed/presentations/2019-ray-tracing-gems-chapter-20-akenine-moller-et-al.pdf&#34; style=&#34;color:white;&#34;&gt;pdf &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;http://web.archive.org/web/20190225014023/https://media.contentapi.ea.com/content/dam/ea/seed/presentations/2019-ray-tracing-gems-chapter-20-akenine-moller-et-al.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190225013945/https://www.ea.com/seed/news/texture-level-of-detail-strategies-for-real-time-ray-tracing&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.stevestreeting.com/2019/02/22/enemy-health-bars-in-1-draw-call-in-unity/&#34; target=&#34;_blank&#34; id=&#34;Enemy health bars in 1 draw call in Unity&#34;&gt;Enemy health bars in 1 draw call in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how to use GPU instancing&lt;/li&gt;
&lt;li&gt;to render health bars for individual objects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-74/healthbarsdemo.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190225012228/https://www.stevestreeting.com/2019/02/22/enemy-health-bars-in-1-draw-call-in-unity/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://onemanmmo.com/index.php?cmd=newsitem&amp;amp;comment=news.1.427.0&#34; target=&#34;_blank&#34; id=&#34;Scalable Ambient Obscurance for the Mathematically Uninclined&#34;&gt;Scalable Ambient Obscurance for the Mathematically Uninclined&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;implementation walkthrough of the OpenGL Scalable Ambient Obscurance (SAO) algorithm&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-74/SAO6_Lo.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190225012548/http://onemanmmo.com/index.php?cmd=newsitem&amp;amp;comment=news.1.427.0&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/my-take-on-shaders-parallax-effect-part-i/&#34; target=&#34;_blank&#34; id=&#34;My take on shaders: Parallax effect (Part I)&#34;&gt;My take on shaders: Parallax effect (Part I)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows how to implement a parallax effect in the pixel shader&lt;/li&gt;
&lt;li&gt;allows the appearance of depth in materials that is not backed by actual geoemtry&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-74/parallax.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190225012826/https://halisavakis.com/my-take-on-shaders-parallax-effect-part-i/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/KhronosGroup/Vulkan-Docs/issues/923&#34; target=&#34;_blank&#34; id=&#34;Turing - Tensor Core Extension - VK_NV_cooperative_matrix&#34;&gt;Turing - Tensor Core Extension - VK_NV_cooperative_matrix&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Vulkan extension that exposes NVIDIA Tensor Cores on Turing GPUs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-74/turing.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=EgTr7O6yrHk&#34; target=&#34;_blank&#34; id=&#34;[Video] MicroSplat StochasticTextureClusters&#34;&gt;[Video] MicroSplat StochasticTextureClusters&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video, author presents his approach to reducing of tiling artifacts in terrain textures using a height based approach&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-74/stochastic_texturing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://renderdiagrams.org/2019/02/17/introduction-to-convolution-integrals/&#34; target=&#34;_blank&#34; id=&#34;Introduction to Convolution Integrals&#34;&gt;Introduction to Convolution Integrals&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;great visual explanation of Convolution Integrals&lt;/li&gt;
&lt;li&gt;many examples that allow to gain a visual understanding of filters commonly used in computer graphics&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-74/filtering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190225014357/https://renderdiagrams.org/2019/02/17/introduction-to-convolution-integrals/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Vivitsu Maharaja &lt;a href=&#34;https://twitter.com/vivitsum&#34; target=&#34;_blank&#34;&gt;@vivitsum&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;You would like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 73 — February 17, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-73/</link>
      <pubDate>Sun, 17 Feb 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-73/</guid>
      <description>&lt;p&gt;This series can now be supported on &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt;.
Vote on the roadmap and monthly summaries for December and January are available as reward tier.&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.ea.com/frostbite/news/interactive-light-map-and-irradiance-volume-preview-in-frostbite&#34; target=&#34;_blank&#34; id=&#34;Interactive light map and irradiance volume preview in Frostbite&#34;&gt;Interactive light map and irradiance volume preview in Frostbite&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;chapter from the &lt;a href=&#34;http://www.realtimerendering.com/raytracinggems/&#34; target=&#34;_blank&#34;&gt;Ray Tracing Gems&lt;/a&gt; book&lt;/li&gt;
&lt;li&gt;describes the real-time GI preview system developed for the Frostbite engine, runs on the GPU asynchronously to the editor&lt;/li&gt;
&lt;li&gt;uses an irradiance cache light map approach with denoising applied&lt;/li&gt;
&lt;li&gt;presents performance and results of different acceleration techniques&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/frostbite_gi_system.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://media.contentapi.ea.com/content/dam/eacom/frostbite/files/2019-ray-tracing-gems-chapter-23-apers-edblom-derousiers-hillaire.pdf&#34; style=&#34;color:white;&#34;&gt;pdf &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;http://web.archive.org/web/20190218140110/https://media.contentapi.ea.com/content/dam/eacom/frostbite/files/2019-ray-tracing-gems-chapter-23-apers-edblom-derousiers-hillaire.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190218143827/https://www.ea.com/frostbite/news/interactive-light-map-and-irradiance-volume-preview-in-frostbite&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.gamasutra.com/blogs/RomanTersky/20190215/336349/Rendering_process_in_Shadow_Fight_3.php&#34; target=&#34;_blank&#34; id=&#34;Rendering process in Shadow Fight 3&#34;&gt;Rendering process in Shadow Fight 3&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows the frame breakdown of Shadow Fight 3&lt;/li&gt;
&lt;li&gt;rendering approach designed to reduce the number of draw calls&lt;/li&gt;
&lt;li&gt;explains how the rendering system was designed to take advantage of the game design constraints to find very cheap solutions for lighting, shadows, and reflections&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/shadow_fight_3.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20190215095943/http://www.gamasutra.com/blogs/RomanTersky/20190215/336349/Rendering_process_in_Shadow_Fight_3.php&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://factorio.com/blog/post/fff-281&#34; target=&#34;_blank&#34; id=&#34;Friday Facts #281 - For a Few Frames More&#34;&gt;Friday Facts #281 - For a Few Frames More&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents performance optimizations done for the 2D rendering system&lt;/li&gt;
&lt;li&gt;reducing overdraw for blended objects&lt;/li&gt;
&lt;li&gt;discussion of texture compression formats for detailed 2D pixel art&lt;/li&gt;
&lt;li&gt;using &lt;a href=&#34;https://www.nvidia.com/object/real-time-ycocg-dxt-compression.html&#34; target=&#34;_blank&#34;&gt;YCoCg-DXT compression&lt;/a&gt; to split luma and chrominance&lt;/li&gt;
&lt;li&gt;requires two textures instead of 1 but still a performance win for the game&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/fff_texture_compression.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20190209035113/https://factorio.com/blog/post/fff-281&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://wwwtyro.net/2019/02/10/camera.html&#34; target=&#34;_blank&#34; id=&#34;Camera Rays&#34;&gt;Camera Rays&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows how to set up full-screen quad geometry data so that attribute interpolation can be used to generate the camera rays in a vertex and pixel shader with few instructions&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/perspective.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190218135535/https://wwwtyro.net/2019/02/10/camera.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://patriciogonzalezvivo.github.io/PixelSpiritDeck/&#34; target=&#34;_blank&#34; id=&#34;Pixel Spirit cards&#34;&gt;Pixel Spirit cards&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;card deck that introduces visual shapes and GLSL code required to create them&lt;/li&gt;
&lt;li&gt;combined with &lt;a href=&#34;https://thebookofshaders.com&#34; target=&#34;_blank&#34;&gt;The Book of Shaders&lt;/a&gt; (by the same author) it provides a good starting point for artistic shader projects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/PixelSpirit.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190218131736/https://patriciogonzalezvivo.github.io/PixelSpiritDeck/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://gpfault.net/posts/opengl-command-buffers-2.txt.html&#34; target=&#34;_blank&#34; id=&#34;Emulating Command Buffers in OpenGL - Part 2&#34;&gt;Emulating Command Buffers in OpenGL - Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a brief look at the performance of emulating a custom command buffer format on top of OpenGL&lt;/li&gt;
&lt;li&gt;notices a 7% overhead from the command buffer parsing&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/opengl_command_buffers.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20190212221605/https://gpfault.net/posts/opengl-command-buffers-2.txt.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blogs.unity3d.com/2019/02/12/creating-an-interactive-vertex-effect-using-shader-graph/&#34; target=&#34;_blank&#34; id=&#34;Creating an Interactive Vertex Effect using Shader Graph&#34;&gt;Creating an Interactive Vertex Effect using Shader Graph&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how to create a pulsating vertex effect using Unity Shader Graph and the lightweight rendering pipeline&lt;/li&gt;
&lt;li&gt;shows how to set up the shader node graph and control parameters it from C# scripts&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/vertex_effect_unity.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190218134154/https://blogs.unity3d.com/2019/02/12/creating-an-interactive-vertex-effect-using-shader-graph/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://software.intel.com/en-us/articles/shader-debugging-for-bgfx-rendering-engine&#34; target=&#34;_blank&#34; id=&#34;Shader Debugging for BGFX Rendering Engine&#34;&gt;Shader Debugging for BGFX Rendering Engine&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows how debug compute shaders when using BGFX&lt;/li&gt;
&lt;li&gt;a brief introduction into what is necessary to compile the project&lt;/li&gt;
&lt;li&gt;explains how to compile shaders so that debug information is available and can be used with RenderDoc and the Visual Studio Graphics Debugger&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/bgfx_debugging.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20190214022217/https://software.intel.com/en-us/articles/shader-debugging-for-bgfx-rendering-engine&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.phoronix.com/scan.php?page=news_item&amp;amp;px=RadeonSI-Prim-Culling-Async-Com&#34; target=&#34;_blank&#34; id=&#34;RadeonSI Picks Up Primitive Culling With Async Compute For Performance Wins&#34;&gt;RadeonSI Picks Up Primitive Culling With Async Compute For Performance Wins&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;open-source AMD Linux driver adds support to use async compute to cull primitives before the vertex shader stage&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/driver_primitive_culling.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190218135303/https://www.phoronix.com/scan.php?page=news_item&amp;amp;px=RadeonSI-Prim-Culling-Async-Com&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://forums.unrealengine.com/unreal-engine/announcements-and-releases/1583659-unreal-engine-4-22-preview&#34; target=&#34;_blank&#34; id=&#34;Unreal Engine 4.22 Preview&#34;&gt;Unreal Engine 4.22 Preview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;added support for ray and path tracing for the D3D12 backend&lt;/li&gt;
&lt;li&gt;low-level abstractions and high levels features have been implemented&lt;/li&gt;
&lt;li&gt;includes GI path-tracer to generate reference images directly in the editor&lt;/li&gt;
&lt;li&gt;preview for render graph API&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/unreal_422.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190218135413/https://forums.unrealengine.com/unreal-engine/announcements-and-releases/1583659-unreal-engine-4-22-preview&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blogs.unity3d.com/2019/02/14/procedural-stochastic-texturing-in-unity/&#34; target=&#34;_blank&#34; id=&#34;Procedural Stochastic Texturing in Unity&#34;&gt;Procedural Stochastic Texturing in Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Unity provides a plugin that implements the tiling stochastic texturing approach presented in issue &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-68/&#34; target=&#34;_blank&#34;&gt;68&lt;/a&gt; and &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-45/&#34; target=&#34;_blank&#34;&gt;45&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;source code for shader and offline precomputation step is provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/wood_tiling.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190218135711/https://blogs.unity3d.com/2019/02/14/procedural-stochastic-texturing-in-unity/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.unrealengine.com/en-US/events/experience-everything-unreal-and-more-at-gdc-2019&#34; target=&#34;_blank&#34; id=&#34;Experience everything Unreal and more at GDC 2019&#34;&gt;Experience everything Unreal and more at GDC 2019&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;list of Unreal events/talks/presentations that will take place at GDC&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/unreal_gdc_2019.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190218135841/https://www.unrealengine.com/en-US/events/experience-everything-unreal-and-more-at-gdc-2019&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://architosh.com/2019/02/webgl-2-0-why-its-the-path-to-stable-open-standards-based-3d-web-graphics/&#34; target=&#34;_blank&#34; id=&#34;WebGL 2.0—Why It’s the Path to Stable Open Standards-based 3D Web Graphics&#34;&gt;WebGL 2.0—Why It’s the Path to Stable Open Standards-based 3D Web Graphics&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a brief history of the development of WebGL and it&amp;rsquo;s adoption&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/architosh_webGL.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190218140454/https://architosh.com/2019/02/webgl-2-0-why-its-the-path-to-stable-open-standards-based-3d-web-graphics/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://psgraphics.blogspot.com/2019/02/adding-point-and-directional-lights-to.html&#34; target=&#34;_blank&#34; id=&#34;Adding point and directional lights to a physically based renderer&#34;&gt;Adding point and directional lights to a physically based renderer&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents the equations necessary to express point- and directional lights when only area lights are supported&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190218134832/http://psgraphics.blogspot.com/2019/02/adding-point-and-directional-lights-to.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://psgraphics.blogspot.com/2019/02/lazy-persons-tone-mapping.html&#34; target=&#34;_blank&#34; id=&#34;Lazy person&amp;#39;s tone mapping&#34;&gt;Lazy person&amp;#39;s tone mapping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a simplistic approach to tone mapping results from a renderer&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190218140346/http://psgraphics.blogspot.com/2019/02/lazy-persons-tone-mapping.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to Angel Ortiz &lt;a href=&#34;https://twitter.com/aortizelguero&#34; target=&#34;_blank&#34;&gt;@aortizelguero&lt;/a&gt; for support of this series.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;You would like to see your name here too? Become a &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt; of this series.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 72 — February 10, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-72/</link>
      <pubDate>Sun, 10 Feb 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-72/</guid>
      <description>&lt;p&gt;This series can now be supported on &lt;a href=&#34;https://www.patreon.com/jendrikillner&#34; target=&#34;_blank&#34;&gt;Patreon&lt;/a&gt;.
Vote on the roadmap and monthly summaries for December and January are available as reward tier.&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://agraphicsguy.wordpress.com/2018/11/29/basic-color-science-for-graphics-engineers/&#34; target=&#34;_blank&#34; id=&#34;Basic Color Science for Graphics Engineers&#34;&gt;Basic Color Science for Graphics Engineers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents how the RGB color representation is based on human vision&lt;/li&gt;
&lt;li&gt;shows how to visualize the visual color range in chromaticity diagrams&lt;/li&gt;
&lt;li&gt;presents the Rec. 709, sRGB, Rec. 2020 and XYZ color space&lt;/li&gt;
&lt;li&gt;shows which color ranges can and cannot be represented in each space&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-72/rec_2020.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20190209171622/https://agraphicsguy.wordpress.com/2018/11/29/basic-color-science-for-graphics-engineers/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.dropbox.com/sh/8voy1umqyzb8m70/AAD1sswWvVIrbS8mv45UFEvJa?dl=0&#34; target=&#34;_blank&#34; id=&#34;Crytek Presentations&#34;&gt;Crytek Presentations&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;Crytek removed all presentations from their website&lt;/li&gt;
&lt;li&gt;a user has uploaded a backup copy of many presentations to his dropbox&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-72/crytek.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.mpc-rnd.com/unity-gpu-culling-experiments-part2-optimizations/&#34; target=&#34;_blank&#34; id=&#34;Unity GPU culling experiments Part2 – optimizations&#34;&gt;Unity GPU culling experiments Part2 – optimizations&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents how to optimize the compaction pass in a GPU culling pipeline&lt;/li&gt;
&lt;li&gt;reduce memory bandwidth usage by taking advantage of shared memory and compression of data that needs to be processed&lt;/li&gt;
&lt;li&gt;wrap level and shuffle instructions allow further optimizations&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-72/gpu_culling_pass_overview.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190210231833/https://www.mpc-rnd.com/unity-gpu-culling-experiments-part2-optimizations/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://donw.io/post/sphere-indexing-2/&#34; target=&#34;_blank&#34; id=&#34;Fast, Constant Time Sphere Indexing, Part 2&#34;&gt;Fast, Constant Time Sphere Indexing, Part 2&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows how to simplify the math for constant time sphere indexing (the technique was described in issue &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-64/&#34;&gt;64&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-72/sphere_indexing.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20190210232006/http://donw.io/post/sphere-indexing-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://news.developer.nvidia.com/nvidia-announces-nsight-graphics-2019-1/&#34; target=&#34;_blank&#34; id=&#34;NVIDIA Announces Nsight Graphics 2019.1&#34;&gt;NVIDIA Announces Nsight Graphics 2019.1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;enables debugging of GPU hangs with D3D12 using Nvidia aftermath&lt;/li&gt;
&lt;li&gt;allows trace comparison&lt;/li&gt;
&lt;li&gt;Support D3D12 NVAPI Metacommand enabling &lt;a href=&#34;https://news.developer.nvidia.com/dlss-what-does-it-mean-for-game-developers/&#34; target=&#34;_blank&#34;&gt;DLSS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-72/trace_comparision.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190210232218/https://news.developer.nvidia.com/nvidia-announces-nsight-graphics-2019-1/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.eidosmontreal.com/en/news/the-rendering-techniques-of-deus-ex-mankind-divided-and-rise-of-the-tomb-raider&#34; target=&#34;_blank&#34; id=&#34;the rendering techniques of deus ex and tomb raider&#34;&gt;the rendering techniques of deus ex and tomb raider&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presentations from Siggraph 2015 have been published&lt;/li&gt;
&lt;li&gt;Deus Ex: Mankind Divided presentations covers:

&lt;ul&gt;
&lt;li&gt;shield and skin VFX,&lt;/li&gt;
&lt;li&gt;parallax occlusion mapping&lt;/li&gt;
&lt;li&gt;hair simulation and rendering&lt;/li&gt;
&lt;li&gt;motion blur&lt;/li&gt;
&lt;li&gt;color correction that allows changing the effect depending on the distance to the camera&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Rise of the Tomb Raider presentation covers:

&lt;ul&gt;
&lt;li&gt;volumetric lights&lt;/li&gt;
&lt;li&gt;sunlight shadows&lt;/li&gt;
&lt;li&gt;ambient occlusion&lt;/li&gt;
&lt;li&gt;procedural snow deformation&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-72/eido_siggraph_2015.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://www.slideshare.net/EidosMontreal/rendering-techniques-in-deus-ex-mankind-divided?ref=https://www.eidosmontreal.com/en/news/the-rendering-techniques-of-deus-ex-mankind-divided-and-rise-of-the-tomb-raider&#34; style=&#34;color:white;&#34;&gt;Deus Ex: Mankind Divided &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190210232723/https://www.slideshare.net/EidosMontreal/rendering-techniques-in-deus-ex-mankind-divided?ref=https://www.eidosmontreal.com/en/news/the-rendering-techniques-of-deus-ex-mankind-divided-and-rise-of-the-tomb-raider&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34;&gt;
            &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                &lt;a href=&#34;https://www.slideshare.net/EidosMontreal/labs-siggraph15trxno-videos?ref=https://www.eidosmontreal.com/en/news/the-rendering-techniques-of-deus-ex-mankind-divided-and-rise-of-the-tomb-raider&#34; style=&#34;color:white;&#34;&gt;Rise of the Tomb Raider &lt;/a&gt; 
            &lt;/button&gt;
            
            &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                &lt;a href=&#34;https://web.archive.org/web/20190210232824/https://www.slideshare.net/EidosMontreal/labs-siggraph15trxno-videos?ref=https://www.eidosmontreal.com/en/news/the-rendering-techniques-of-deus-ex-mankind-divided-and-rise-of-the-tomb-raider&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
            &lt;/button&gt;
            
        &lt;/div&gt;
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20190206054722/https://www.eidosmontreal.com/en/news/the-rendering-techniques-of-deus-ex-mankind-divided-and-rise-of-the-tomb-raider&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blogs.msdn.microsoft.com/directx/2019/02/05/direct3d-11-on-12-updates/&#34; target=&#34;_blank&#34; id=&#34;Direct3D 11 on 12 Updates&#34;&gt;Direct3D 11 on 12 Updates&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;overview of improvements to the system that allows D3D11 applications to be run using D3D12&lt;/li&gt;
&lt;li&gt;improved threading behavior&lt;/li&gt;
&lt;li&gt;new APIs will allow the underlying D3D12 resources to be requested from the D3D11 objects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-72/d3d12_1.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20190209000846/https://blogs.msdn.microsoft.com/directx/2019/02/05/direct3d-11-on-12-updates/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://asawicki.info/news_1701_thoughts_on_graphics_apis_and_libraries.html&#34; target=&#34;_blank&#34; id=&#34;Thoughts on graphics APIs and libraries&#34;&gt;Thoughts on graphics APIs and libraries&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses author&amp;rsquo;s view on the state of low-level graphics APIs (Vulkan, D3D12, Metal)&lt;/li&gt;
&lt;li&gt;presents how the abstraction level might not be the right one&lt;/li&gt;
&lt;li&gt;too low-level for ease of use but too high-level to guarantee predictable performance on all platforms&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-72/graphics_apis.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190210233241/http://asawicki.info/news_1701_thoughts_on_graphics_apis_and_libraries.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.realtimerendering.com/blog/ray-tracing-gems-preprints-available-part-by-part-this-month/&#34; target=&#34;_blank&#34; id=&#34;“Ray Tracing Gems” preprints available part by part this month&#34;&gt;“Ray Tracing Gems” preprints available part by part this month&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;every few days a new preprint article from the &amp;ldquo;Ray Tracing Gems&amp;rdquo; book will be released&lt;/li&gt;
&lt;li&gt;requires a free Nvidia developer account&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-72/ray_tracing_gems.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://developer.nvidia.com/books/raytracing/raytracing_gems_preview&#34; style=&#34;color:white;&#34;&gt;book &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;http://web.archive.org/web/20190209170124/https://developer.nvidia.com/books/raytracing/raytracing_gems_preview&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20190209001655/http://www.realtimerendering.com/blog/ray-tracing-gems-preprints-available-part-by-part-this-month/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://alextardif.com/D3D11To12P2.html&#34; target=&#34;_blank&#34; id=&#34;Learning D3D12 from D3D11 - Part 2: GPU Resources, Heaps, and Descriptors&#34;&gt;Learning D3D12 from D3D11 - Part 2: GPU Resources, Heaps, and Descriptors&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;part 2 of getting started with D3D12 for programmers with D3D11 experience, part 1 discussed in week &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-70/&#34;&gt;70&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;shows to create vertex and constant buffers&lt;/li&gt;
&lt;li&gt;explanation of memory management and binding model&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-72/d3d12.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190210234100/http://alextardif.com/D3D11To12P2.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/my-take-on-shaders-ui-sdf-icon-shader/&#34; target=&#34;_blank&#34; id=&#34;My take on shaders: UI SDF Icon shader&#34;&gt;My take on shaders: UI SDF Icon shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows how to sample a signed distance field in a Unity UI shader&lt;/li&gt;
&lt;li&gt;signed distance field UI shaders allow the UI to be resolution independent&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-72/sdf_generation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190210234230/https://halisavakis.com/my-take-on-shaders-ui-sdf-icon-shader/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 71 — February 3, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-71/</link>
      <pubDate>Sun, 03 Feb 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-71/</guid>
      <description>&lt;p&gt;The results of the survey have been published &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-survey-2018-results/&#34;&gt;here&lt;/a&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blog.uhawkvr.com/rendering/approximate-terrain-reflections/&#34; target=&#34;_blank&#34; id=&#34;Approximating water effects using terrain height maps part 1: Reflections&#34;&gt;Approximating water effects using terrain height maps part 1: Reflections&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;discusses screen space reflection and planar reflections techniques&lt;/li&gt;
&lt;li&gt;presented technique for reflections uses ray-marching against the terrain height map to calculate the reflections&lt;/li&gt;
&lt;li&gt;show that the technique could be extended to trace against signed distances fields to add reflection for other objects too&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-71/terraincolor.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190204135318/https://blog.uhawkvr.com/rendering/approximate-terrain-reflections/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://xdpixel.com/decoding-a-projection-matrix/&#34; target=&#34;_blank&#34; id=&#34;Decoding a projection matrix&#34;&gt;Decoding a projection matrix&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;show how a projection matrix is formed&lt;/li&gt;
&lt;li&gt;explains GPU clipping and how it relates to the projection matrix&lt;/li&gt;
&lt;li&gt;many videos explain the significance of each component visually&lt;/li&gt;
&lt;li&gt;provides a calculator to help gain a more intuitive understanding&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-71/renderdoc-clipping-example.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://www.xdpixel.com/wp-content/uploads/2019/01/Unity%20Projection%20Matrix%20Simulator.xlsx&#34; style=&#34;color:white;&#34;&gt;calculator &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190204142039/http://www.xdpixel.com/wp-content/uploads/2019/01/Unity%20Projection%20Matrix%20Simulator.xlsx&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190204135727/http://xdpixel.com/decoding-a-projection-matrix/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://twitter.com/erkaman2/status/1090645031227191296&#34; target=&#34;_blank&#34; id=&#34;[twitter] texture minification using mip-mapping&#34;&gt;[twitter] texture minification using mip-mapping&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;twitter thread discussing mip-map selection algorithms&lt;/li&gt;
&lt;li&gt;comparison between the custom shader implementation and hardware solution&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-71/minification.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190204135026/https://twitter.com/erkaman2/status/1090645031227191296&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.grayolson.me/blog/posts/pbr-intro/&#34; target=&#34;_blank&#34; id=&#34;An Intro to Physically Based Rendering for Artists and Programmers - Part 1&#34;&gt;An Intro to Physically Based Rendering for Artists and Programmers - Part 1&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;introduction into physically based shading&lt;/li&gt;
&lt;li&gt;presents how light  is reflected and refracted when it comes into contact with surfaces&lt;/li&gt;
&lt;li&gt;shows how metal and dielectrics (non-metals, insulators) interact with light differently and how this forms the visual perception of different materials&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-71/diffspec.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190204140751/https://www.grayolson.me/blog/posts/pbr-intro/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://extremelearning.com.au/evenly-distributing-points-in-a-triangle/&#34; target=&#34;_blank&#34; id=&#34;Evenly Distributing Points in a Triangle&#34;&gt;Evenly Distributing Points in a Triangle&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;presents a technique to distribute an infinite sequence of points on the surface of an arbitrary triangle evenly&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-71/triangle_points.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190204140503/http://extremelearning.com.au/evenly-distributing-points-in-a-triangle/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://giordi91.github.io/post/gammatextures/&#34; target=&#34;_blank&#34; id=&#34;De-gamma your texture kid!&#34;&gt;De-gamma your texture kid!&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article points out that albedo textures are commonly stored in sRGB color space and need to be converted into linear color space before using in shading&lt;/li&gt;
&lt;li&gt;achieved using the correct SRGB texture format&lt;/li&gt;
&lt;li&gt;comparison images present the differences between sRGB and non-sRGB color formats&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-71/gamma_correct.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190204141134/https://giordi91.github.io/post/gammatextures/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.dropbox.com/s/38jujz7vhrruoap/Realistic%20Rendering%20Approaches%20for%20Snow%20Covers.pdf?dl=0&#34; target=&#34;_blank&#34; id=&#34;Realistic Rendering Approaches for Snow Covers&#34;&gt;Realistic Rendering Approaches for Snow Covers&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;thesis presentation covering snow rendering&lt;/li&gt;
&lt;li&gt;presents the visual features of snow with real-world reference pictures&lt;/li&gt;
&lt;li&gt;an overview of existing techniques&lt;/li&gt;
&lt;li&gt;defines 4 defining characteristics for snow shading and develops a BRDF from them&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-71/snow_brdf.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://aras-p.info/blog/2019/02/01/Infinite-sky-shader-for-Unity/&#34; target=&#34;_blank&#34; id=&#34;&amp;#39;Infinite&amp;#39; sky shader for Unity&#34;&gt;&amp;#39;Infinite&amp;#39; sky shader for Unity&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;a short post that shows how to make an object appear infinitely large without clipping artifacts&lt;/li&gt;
&lt;li&gt;adjusts the vertex position in the vertex shader so that they are mapped onto the far plane&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-71/infinite-sky.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://aras-p.info/img/blog/2019/InfiniteSkyUnityProject.zip&#34; style=&#34;color:white;&#34;&gt;example project &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190204141604/https://aras-p.info/blog/2019/02/01/Infinite-sky-shader-for-Unity/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://catlikecoding.com/unity/tutorials/scriptable-render-pipeline/directional-shadows/&#34; target=&#34;_blank&#34; id=&#34;Directional Shadows Cascaded Maps&#34;&gt;Directional Shadows Cascaded Maps&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;extends the custom scriptable rendering pipeline, the previous part was covered in &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-66/&#34;&gt;issue 66&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;now adds support for directional shadows, such as sun shadows&lt;/li&gt;
&lt;li&gt;shows how to deal with common shadow artifacts&lt;/li&gt;
&lt;li&gt;implements cascaded shadow mapping for the main directional light&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-71/tutorial-image.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190204141348/https://catlikecoding.com/unity/tutorials/scriptable-render-pipeline/directional-shadows/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://halisavakis.com/technically-art-issue-3-01-02-2019/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 3 (01.02.2019)&#34;&gt;Technically Art: Issue 3 (01.02.2019)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;weekly series with twitter posts about tech art techniques and ideas&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-71/tech_art_issue_3.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190204140859/https://halisavakis.com/technically-art-issue-3-01-02-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://lindenreid.wordpress.com/2019/01/30/getting-started-learning-tech-art-unity-shader-writing/&#34; target=&#34;_blank&#34; id=&#34;Getting Started Learning Tech Art &amp;amp; Unity Shader Writing&#34;&gt;Getting Started Learning Tech Art &amp;amp; Unity Shader Writing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;summary of resource about getting started with tech art&lt;/li&gt;
&lt;li&gt;mainly unity shader focused&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190204140636/https://lindenreid.wordpress.com/2019/01/30/getting-started-learning-tech-art-unity-shader-writing/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blogs.msdn.microsoft.com/pix/2019/02/01/pix-1901-28/&#34; target=&#34;_blank&#34; id=&#34;PIX 1901.28 – Timing Data Improvements and support for new GPUs&#34;&gt;PIX 1901.28 – Timing Data Improvements and support for new GPUs&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;new PIX for windows version&lt;/li&gt;
&lt;li&gt;performance counters are now supported on AMD Radeon 7 GPUs and NVIDIA Turing GPUs&lt;/li&gt;
&lt;li&gt;more consistent and reliable timing data on all GPUs&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-71/nvidia_turing_event_list_counters.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190204141029/https://blogs.msdn.microsoft.com/pix/2019/02/01/pix-1901-28/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 70 — January 27, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-70/</link>
      <pubDate>Sun, 27 Jan 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-70/</guid>
      <description>&lt;p&gt;Thanks for everyone who filled out the survey.
I closed the survey. I am analyzing the results and will post them later this week.&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://blogs.msdn.microsoft.com/directx/2019/01/24/dred/&#34; target=&#34;_blank&#34; id=&#34;New in D3D12 – DRED helps developers diagnose GPU faults&#34;&gt;New in D3D12 – DRED helps developers diagnose GPU faults&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;D3D12 adds support for DRED (device removed extended data) in the latest windows insider preview build&lt;/li&gt;
&lt;li&gt;writes an auto-incrementing counter after each render-operation into memory that is persistent across device removed events&lt;/li&gt;
&lt;li&gt;this allows the GPU progress to be inspected during post-mortem analysis&lt;/li&gt;
&lt;li&gt;the overhead is around 2 to 5 % for a frame of a AAA game, therefore defaults to off and needs to be enabled explicitly&lt;/li&gt;
&lt;li&gt;additionally allows better tracking of page faults&lt;/li&gt;
&lt;li&gt;tries to detect access to recently deleted objects&lt;/li&gt;
&lt;li&gt;shows the API to enable and how to use it to enable and inspect provided data&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-70/d3d12.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190128031718/https://blogs.msdn.microsoft.com/directx/2019/01/24/dred/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.jcgt.org/published/0008/01/03/&#34; target=&#34;_blank&#34; id=&#34;A Multiple-Scattering Microfacet Model for Real-Time Image Based Lighting&#34;&gt;A Multiple-Scattering Microfacet Model for Real-Time Image Based Lighting&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;extension to real-time image based lighting models&lt;/li&gt;
&lt;li&gt;adding support for multi-scattering shading using the precomputed integrals from single scattering models&lt;/li&gt;
&lt;li&gt;accomplishes energy conversation&lt;/li&gt;
&lt;li&gt;the paper derives the GGX approximation for 3 classes of objects (perfect reflectors, generic metals, and  dielectrics)&lt;/li&gt;
&lt;li&gt;presents comparisons against single scattering models in a furnace test&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-70/multi_scattering.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://www.jcgt.org/published/0008/01/03/paper.pdf&#34; style=&#34;color:white;&#34;&gt;pdf &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190128030808/http://www.jcgt.org/published/0008/01/03/paper.pdf&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190128030618/http://www.jcgt.org/published/0008/01/03/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/DassaultSystemes-Technology/EnterprisePBRShadingModel&#34; target=&#34;_blank&#34; id=&#34;Enterprise PBR Shading Model&#34;&gt;Enterprise PBR Shading Model&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains the PBR shading model&lt;/li&gt;
&lt;li&gt;a combination of 3 BSDFs that allow expressing a large number of materials&lt;/li&gt;
&lt;li&gt;including the derived formulas and illustrates the exposed parameters&lt;/li&gt;
&lt;li&gt;user guide describes how to use the system and provides examples of the different effects that can be achieved&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-70/enterprise_pbr.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://dassaultsystemes-technology.github.io/EnterprisePBRShadingModel/spec.md.html&#34; style=&#34;color:white;&#34;&gt;spec &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190128031129/https://dassaultsystemes-technology.github.io/EnterprisePBRShadingModel/spec.md.html&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34;&gt;
            &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                &lt;a href=&#34;https://dassaultsystemes-technology.github.io/EnterprisePBRShadingModel/user_guide.md.html&#34; style=&#34;color:white;&#34;&gt;user guide &lt;/a&gt; 
            &lt;/button&gt;
            
            &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                &lt;a href=&#34;https://web.archive.org/web/20190128031231/https://dassaultsystemes-technology.github.io/EnterprisePBRShadingModel/user_guide.md.html&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
            &lt;/button&gt;
            
        &lt;/div&gt;
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190128031003/https://github.com/DassaultSystemes-Technology/EnterprisePBRShadingModel&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://github.com/ajweeks/RaymarchingWorkshop&#34; target=&#34;_blank&#34; id=&#34;Raymarching Workshop Course&#34;&gt;Raymarching Workshop Course&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shader workshop that uses Shadertoy to teach raymarching techniques&lt;/li&gt;
&lt;li&gt;the workshop starts with basic 2D shape marching&lt;/li&gt;
&lt;li&gt;in the end explains how to define 3D scenes with support for lighting, gamma correction, shadows and materials with tri-planar texture mapping&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-70/raymarching-blending.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190128031500/https://github.com/ajweeks/RaymarchingWorkshop&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://vulkan.lunarg.com/doc/sdk/1.1.97.0/windows/gpu_validation.html&#34; target=&#34;_blank&#34; id=&#34;Vulkan - GPU-Assisted Validation&#34;&gt;Vulkan - GPU-Assisted Validation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;latest Vulkan SDK version (1.1.97.0) adds GPU assisted validation&lt;/li&gt;
&lt;li&gt;validates at runtime that shaders are not accessing any descriptors out of bounds&lt;/li&gt;
&lt;li&gt;this is achieved by adding instrumentation into the SPIR-V&lt;/li&gt;
&lt;li&gt;the document explains the constraints of the layer, known issues and an overview of the implementation details&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-70/lunarg-vulkan-sdk.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190128032026/https://vulkan.lunarg.com/doc/sdk/1.1.97.0/windows/gpu_validation.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://pharr.org/matt/blog/2019/01/26/an-introduction-to-ray-tracing.html&#34; target=&#34;_blank&#34; id=&#34;Re-reading An Introduction to Ray Tracing&#34;&gt;Re-reading An Introduction to Ray Tracing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the article discusses his favorite chapters and insights when looking back at the original &amp;ldquo;An Introduction to Ray Tracing&amp;rdquo; (book is now free) from today&amp;rsquo;s perspective&lt;/li&gt;
&lt;li&gt;mentions which chapter are still relevant today and which information has not aged as well&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-70/intro-rt.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190128032521/https://pharr.org/matt/blog/2019/01/26/an-introduction-to-ray-tracing.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shadertoyunofficial.wordpress.com/2019/01/26/classical-corner-cases/&#34; target=&#34;_blank&#34; id=&#34;Classical corner cases&#34;&gt;Classical corner cases&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;list of common  problems encountered when using Shadertoy and how to solve them&lt;/li&gt;
&lt;li&gt;texel center issue, loading texture data, resolution changes,  mipmap discontinuities&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-70/shadertoy.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190128032617/https://shadertoyunofficial.wordpress.com/2019/01/26/classical-corner-cases/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.khronos.org/events/2019-gdc&#34; target=&#34;_blank&#34; id=&#34;Khronos GDC 2019 - Activity Overview&#34;&gt;Khronos GDC 2019 - Activity Overview&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;list of sessions by Khronos and related talks that will be taking place during GDC this year&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-70/Khronos-GDC-19-Events.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190128031333/https://www.khronos.org/events/2019-gdc&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://halisavakis.com/technically-art-issue-2-25-01-2019/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 2 (25.01.2019)&#34;&gt;Technically Art: Issue 2 (25.01.2019)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;issue 2 of weekly tech art series, contains a collection of twitter post showing interesting art and effects&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-70/technically_art_2.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190128031926/http://halisavakis.com/technically-art-issue-2-25-01-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 69 — January 20, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-69/</link>
      <pubDate>Sun, 20 Jan 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-69/</guid>
      <description>
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://halisavakis.com/my-take-on-shaders-color-grading-with-look-up-textures-lut/&#34; target=&#34;_blank&#34; id=&#34;My take on shaders: Color grading with Look-up Textures (LUT)&#34;&gt;My take on shaders: Color grading with Look-up Textures (LUT)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;describes lookup table based (LUT) color grading in LDR color space&lt;/li&gt;
&lt;li&gt;shows how to represent the 3D color space in a 2D image&lt;/li&gt;
&lt;li&gt;LUT is embedded into the picture during color grading and later used to apply the transform at runtime&lt;/li&gt;
&lt;li&gt;walkthrough of the implementation using Unity&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-69/colorgrading_lut.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190121122401/http://halisavakis.com/my-take-on-shaders-color-grading-with-look-up-textures-lut/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.raywenderlich.com/9211-moving-from-opengl-to-metal&#34; target=&#34;_blank&#34; id=&#34;Moving from OpenGL to Metal&#34;&gt;Moving from OpenGL to Metal&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how to port an existing iOS OpenGL application to use Metal&lt;/li&gt;
&lt;li&gt;shows everything required for a spinning 3D cube on screen&lt;/li&gt;
&lt;li&gt;including shader authoring, render pipeline creation, uploading of data from the CPU to the GPU and draw call execution&lt;/li&gt;
&lt;li&gt;providing resources for future steps at the end of the article&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-69/OpenGLMetal.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190121122911/https://www.raywenderlich.com/9211-moving-from-opengl-to-metal&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.willusher.io/webgl/2019/01/13/volume-rendering-with-webgl&#34; target=&#34;_blank&#34; id=&#34;Volume Rendering with WebGL&#34;&gt;Volume Rendering with WebGL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;implementation of ray marching&lt;/li&gt;
&lt;li&gt;renders the back faces of the bounding volume to determine on which pixels raymarching needs to be done&lt;/li&gt;
&lt;li&gt;simplified absorption model, ignoring the scattering effects&lt;/li&gt;
&lt;li&gt;the vertex shader is used to calculate the ray direction and pass it to the pixel-shader&lt;/li&gt;
&lt;li&gt;lookup texture is used to color to the greyscale information from the 3D volume texture&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-69/volume_rendering_webgl.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190121123210/https://github.com/Twinklebear/webgl-volume-raycaster&#34; style=&#34;color:white;&#34;&gt;code &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190121123210/https://www.willusher.io/webgl/2019/01/13/volume-rendering-with-webgl&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://jcgt.org/published/0008/01/02/&#34; target=&#34;_blank&#34; id=&#34;Implementation of Fast and Adaptive Procedural Cellular Noise&#34;&gt;Implementation of Fast and Adaptive Procedural Cellular Noise&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;cellular noise created from a quadtree grid structure&lt;/li&gt;
&lt;li&gt;presents a method that calculates the optimal order in which neighboring cells need to be visited in 2D&lt;/li&gt;
&lt;li&gt;introduces how to generalize this into higher dimensions and provides a python script can generate lookup tables to store the optimal visit order&lt;/li&gt;
&lt;li&gt;the technique reduces computation time by around 15%&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-69/cellular_noise.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;http://jcgt.org/published/0008/01/02/optimal_cellular_noise_video.mp4&#34; style=&#34;color:white;&#34;&gt;video &lt;/a&gt; 
                &lt;/button&gt;
                
                &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                    &lt;a href=&#34;https://web.archive.org/web/20190121123455/http://jcgt.org/published/0008/01/02/optimal_cellular_noise_video.mp4&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34;&gt;
            &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                &lt;a href=&#34;http://jcgt.org/published/0008/01/02/code.zip&#34; style=&#34;color:white;&#34;&gt;sample code &lt;/a&gt; 
            &lt;/button&gt;
            
            &lt;button type=&#34;button&#34; class=&#34;btn btn-secondary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px; &#34;&gt;
                &lt;a href=&#34;https://web.archive.org/web/20190121131933/http://jcgt.org/published/0008/01/02/code.zip&#34; style=&#34;color:black;&#34;&gt;archive&lt;/a&gt; 
            &lt;/button&gt;
            
        &lt;/div&gt;
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190121123256/http://jcgt.org/published/0008/01/02/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://astralcode.blogspot.com/2019/01/reverse-engineering-rendering-of.html&#34; target=&#34;_blank&#34; id=&#34;Reverse engineering the rendering of The Witcher 3, part 10 - distant rain shafts&#34;&gt;Reverse engineering the rendering of The Witcher 3, part 10 - distant rain shafts&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how the distant rain shafts in The Witcher 3 are implemented&lt;/li&gt;
&lt;li&gt;large cylinders in the distant use noise textures with UV distortion&lt;/li&gt;
&lt;li&gt;reading back the scene depth buffer is used to fade out the effect on distance objects&lt;/li&gt;
&lt;li&gt;reverse engineered source code provided&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-69/rain_shafts.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190121125737/https://astralcode.blogspot.com/2019/01/reverse-engineering-rendering-of.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.realtimerendering.com/blog/an-introduction-to-ray-tracing-is-now-free-for-download/&#34; target=&#34;_blank&#34; id=&#34;“An Introduction to Ray Tracing” is now free for download&#34;&gt;“An Introduction to Ray Tracing” is now free for download&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;the first book on raytracing &amp;ldquo;An Introduction to Ray Tracing&amp;rdquo; from 1989 is now freely available as PDF&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-69/raytracing_book.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20190121124516/http://www.realtimerendering.com/blog/an-introduction-to-ray-tracing-is-now-free-for-download/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://brechpunkt.de/q2vkpt/&#34; target=&#34;_blank&#34; id=&#34;Q2VKPT&#34;&gt;Q2VKPT&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;full path tracing implementation of Quake 2&lt;/li&gt;
&lt;li&gt;implemented Vulkan and the RTX raytracing extension&lt;/li&gt;
&lt;li&gt;uses an adaptive temporal filter for light transport paths to reduce noise&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-69/q2vkpt_0001.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://github.com/cschied/q2vkpt/&#34; style=&#34;color:white;&#34;&gt;code &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190121125448/http://brechpunkt.de/q2vkpt/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://halisavakis.com/technically-art-issue-1-18-01-2019/&#34; target=&#34;_blank&#34; id=&#34;Technically Art: Issue 1 (18.01.2019)&#34;&gt;Technically Art: Issue 1 (18.01.2019)&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;start of weekly curation of tweets about 3D (technical) art, shaders, and VFX&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-69/tech_art_weekly.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190121124844/http://halisavakis.com/technically-art-issue-1-18-01-2019/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Graphics Programming weekly - Issue 68 — January 13, 2019</title>
      <link>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-68/</link>
      <pubDate>Sun, 13 Jan 2019 21:00:00 +0000</pubDate>
      
      <guid>https://www.jendrikillner.com/post/graphics-programming-weekly-issue-68/</guid>
      <description>&lt;p&gt;I am running a small survey to be able to improve the series further this year.&lt;/p&gt;

&lt;p&gt;If you have two minutes to spare, please fill out the survey &lt;a href=&#34;https://goo.gl/forms/nNPzrRpiMERIgtBl2&#34; target=&#34;_blank&#34;&gt;https://goo.gl/forms/nNPzrRpiMERIgtBl2&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;This week also contains articles that have been published during my vacation since issue &lt;a href=&#34;https://www.jendrikillner.com/post/graphics-programming-weekly-issue-67/&#34; target=&#34;_blank&#34;&gt;67&lt;/a&gt;&lt;/p&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://alextardif.com/D3D11To12P1.html&#34; target=&#34;_blank&#34; id=&#34;Learning D3D12 from D3D11 - Part 1: Getting Started, Command Queues, and Fencing&#34;&gt;Learning D3D12 from D3D11 - Part 1: Getting Started, Command Queues, and Fencing&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;start of series for programmers with D3D11 experience starting to learn D3D12&lt;/li&gt;
&lt;li&gt;explains what command queues are, how they express different GPU execution timelines and how fences allow synchronization between CPU and GPU&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-68/d3d12.jpg&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190114040732/http://alextardif.com/D3D11To12P1.html&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;http://www.chinedufn.com/3d-webgl-basic-water-tutorial/&#34; target=&#34;_blank&#34; id=&#34;WebGL &amp;#43; Rust: Basic Water Tutorial&#34;&gt;WebGL &amp;#43; Rust: Basic Water Tutorial&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;explains how to render water using WebGL, Rust, and WebAssembly&lt;/li&gt;
&lt;li&gt;water supports reflection and refraction&lt;/li&gt;
&lt;li&gt;reflections are rendered using a reflection plane technique, that mirrors the world and clips fragments if they are below the water plane&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-68/WebGL_Rust_Basic_Water_Tutorial.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;http://web.archive.org/web/20190107144941/http://chinedufn.com/3d-webgl-basic-water-tutorial/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://amesyta.wordpress.com/2019/01/10/ice-shader-hard-edges-in-vertex-shader/&#34; target=&#34;_blank&#34; id=&#34;Ice Shader – Hard Edges in Vertex Shader&#34;&gt;Ice Shader – Hard Edges in Vertex Shader&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;shows how to use screen space derivatives to create hard edges on a mesh in the pixel shader&lt;/li&gt;
&lt;li&gt;how to calculate greyscale from colors&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-68/hard_edges.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190112020006/https://amesyta.wordpress.com/2019/01/10/ice-shader-hard-edges-in-vertex-shader/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://www.youtube.com/watch?v=eo_MTI-d28s&#34; target=&#34;_blank&#34; id=&#34;An Explanation of the Rendering Equation&#34;&gt;An Explanation of the Rendering Equation&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;video explaining the rendering equation in an easy to understand and visual way&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-68/rendering_equation.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://shadertoyunofficial.wordpress.com/2019/01/02/programming-tricks-in-shadertoy-glsl/&#34; target=&#34;_blank&#34; id=&#34;Programming tricks in Shadertoy / GLSL&#34;&gt;Programming tricks in Shadertoy / GLSL&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;list of common patterns for shadertoy programming&lt;/li&gt;
&lt;li&gt;included are: normalizing screen coordinates, color management (hue, sRGB), line drawing, antialiasing, blending, vector math, and random value generation&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-68/shadertoy.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190112020640/https://shadertoyunofficial.wordpress.com/2019/01/02/programming-tricks-in-shadertoy-glsl/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;


&lt;div class=&#34;post_container&#34;&gt;
    &lt;div class=&#34;post_header&#34;&gt;
		&lt;hr&gt;
		&lt;h2&gt; &lt;a href=&#34;https://eheitzresearch.wordpress.com/738-2/&#34; target=&#34;_blank&#34; id=&#34;Procedural Stochastic Textures by Tiling and Blending&#34;&gt;Procedural Stochastic Textures by Tiling and Blending&lt;/a&gt;&lt;/h2&gt;
    &lt;/div&gt;
    &lt;div class=&#34;post_content&#34;&gt;
     &lt;ul&gt;
&lt;li&gt;preprint of the article to appear in GPU Zen 2 talking about the implementation details (C++ and GLSL)&lt;/li&gt;
&lt;li&gt;replaces the 3D histogram transformation with three 1D histogram transformations&lt;/li&gt;
&lt;li&gt;improves quality of the result under mipmapping and shows how to generate correct results with compressed texture formats&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
    &lt;div class=&#34;post_image&#34;&gt;
            &lt;img src=&#34;https://www.jendrikillner.com/img/posts/graphics-programming-weekly-68/hpn2018_teaser.png&#34; style=&#34;margin:0px&#34;/&gt;
			
    &lt;/div&gt;
    &lt;div class=&#34;post_footer_left&#34;&gt;
        
            &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34; &gt;
                &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                    &lt;a href=&#34;https://drive.google.com/open?id=1QecekuuyWgw68HU9tg6ENfrCTCVIjm6l&#34; style=&#34;color:white;&#34;&gt;paper &lt;/a&gt; 
                &lt;/button&gt;
                
            &lt;/div&gt;
        
        
        &lt;div class=&#34;btn-group&#34; role=&#34;group&#34; style=&#34;padding-top: 2px; padding-bottom: 2px;&#34;&gt;
            &lt;button type=&#34;button&#34; class=&#34;btn btn-primary&#34;style=&#34;padding-top: 0px; padding-bottom: 0px;&#34;&gt;
                &lt;a href=&#34;https://drive.google.com/file/d/1ZvTax661MMi63cp2cPGS6iEvq7VCi0wr/view&#34; style=&#34;color:white;&#34;&gt;OpenGL demo &lt;/a&gt; 
            &lt;/button&gt;
            
        &lt;/div&gt;
        
        
    &lt;/div&gt;
    
    &lt;div class=&#34;post_footer_right&#34;&gt;
        &lt;a href=&#34;https://web.archive.org/web/20190112020759/https://eheitzresearch.wordpress.com/738-2/&#34;&gt;
			wayback-archive
		&lt;/a&gt;
    &lt;/div&gt;
	
&lt;/div&gt;

&lt;p&gt;
&lt;div class=&#34;post_container&#34;&gt;
 